在表单上我有两个分组框,两个复选框和一个按钮。在按钮代码中,我目前有以下两行:
if CheckBox1.Checked then GroupBox1.Show;
if CheckBox2.Checked then GroupBox2.Show;
我想拥有的是什么;点击按钮后,
如果选中复选框1,则应显示groupbox1和IF复选框2 如果选中则会出现groupbox2。
但是还有两个令我困惑的要求:
Version of delphi is 7.
答案 0 :(得分:2)
试试这个:
GroupBox1.Visible := CheckBox1.Checked;
GroupBox2.Visible := CheckBox2.Checked;
答案 1 :(得分:1)
由于你的2个GroupBox位于同一个位置,我使用单选按钮代替复选框,因为2个分组框无法同时显示...
以下是一个例子:
// Click event for a radiogroup see DFM below
procedure TForm1.rg1Click(Sender: TObject);
begin
gb1.Visible := False;
gb2.Visible := False;
if rg1.ItemIndex = 0 then
gb1.Visible := True
else
gb2.Visible := True;
end;
表单设计如下(您可以查看我设置的不同属性):
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form6'
ClientHeight = 337
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object gb1: TGroupBox
Left = 40
Top = 60
Width = 185
Height = 105
Caption = 'gb1'
TabOrder = 0
Visible = False
end
object gb2: TGroupBox
Left = 40
Top = 60
Width = 185
Height = 105
Caption = 'gb2'
TabOrder = 1
Visible = False
end
object rg1: TRadioGroup
Left = 40
Top = 8
Width = 185
Height = 33
Caption = 'rg1'
Columns = 2
Items.Strings = (
'GB1'
'GB2')
TabOrder = 2
OnClick = rg1Click
end
end
答案 2 :(得分:1)
表格
中不应显示两个groupbox
在编译程序之前,在Delphi Object Inspector中将.Visible设置为false
你有没有看过.Show的帮助?它提到了财产。看看其他部分 http://docwiki.embarcadero.com/Libraries/XE2/en/Vcl.Controls.TControl.Show
坦率地说,更简洁的是listbox.visible:= checkbox.checked
应出现在表单的完全相同位置
那么,你不能在同一个地方同时出示它们?
如果两个复选框都打开,你想如何显示它们?
我相信你应该删除复选框并输入单选按钮,而只能按下一个或另一个。
尝试TRadioGroup
http://docwiki.embarcadero.com/Libraries/XE2/en/Vcl.ExtCtrls.TRadioGroup.ItemIndex
~~~~~~~~~~~~~~~~~~~
| ( ) No lists |
| (*) List 1 |
| ( ) List 2 |
~~~~~~~~~~~~~~~~~~~
RadioGrououp.OnClick:= ...(* 程序.... List1.Visible:= RadioGroup.ItemIndex = 1; List2.Visible:= RadioGroup.ItemIndex = 2; 结束。 *)
两个分组框应出现在完全相同的位置
1)使用TNotebook并将它们放在不同的页面上。切换页面而不是切换可见性。这种方法可以让你做更多的控制,而不仅仅是那些。你可以轻松地将它们放在不同页面上的相同坐标上。
2)in form.OnShow:List2.Top:= List1.Top和左,宽和高的相同