Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 分组框1或2;根据单击按钮后选择的复选框_Delphi_Delphi 7_Delphi 2010 - Fatal编程技术网

Delphi 分组框1或2;根据单击按钮后选择的复选框

Delphi 分组框1或2;根据单击按钮后选择的复选框,delphi,delphi-7,delphi-2010,Delphi,Delphi 7,Delphi 2010,在表单上,我有两个分组框、两个复选框和一个按钮。在按钮代码中,我当前有以下两行: if CheckBox1.Checked then GroupBox1.Show; if CheckBox2.Checked then GroupBox2.Show; 我想要的是;我点击按钮后 如果选中复选框1,则应显示groupbox1,如果选中复选框2 如果选中,则应显示groupbox2 但是,还有两项要求让我感到困惑: 在我按下上面提到的按钮之前,两个groupbox都不应该显示在表单上 两个Group

在表单上,我有两个分组框、两个复选框和一个按钮。在按钮代码中,我当前有以下两行:

if CheckBox1.Checked then GroupBox1.Show; 
if CheckBox2.Checked then GroupBox2.Show;
我想要的是;我点击按钮后

如果选中复选框1,则应显示groupbox1,如果选中复选框2 如果选中,则应显示groupbox2

但是,还有两项要求让我感到困惑:

  • 在我按下上面提到的按钮之前,两个groupbox都不应该显示在表单上
  • 两个GroupBox(如前所述,显示哪一个取决于哪个 在按钮点击后选中复选框)应出现在准确的屏幕上 表单的相同位置。但我无法确定确切的位置2 不同的元素(在我的例子中是GroupBox)
  • 版本的delphi是7。

    尝试以下方法:

    GroupBox1.Visible := CheckBox1.Checked;
    GroupBox2.Visible := CheckBox2.Checked;
    
    试试这个:

    GroupBox1.Visible := CheckBox1.Checked;
    GroupBox2.Visible := CheckBox2.Checked;
    

    由于您的2个GroupBox位于同一位置,我将使用radiobutton而不是复选框,因为2个GroupBox不能同时显示

    以下是一个例子:

    // 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;
    
    表单的设计如下(您可以查看我设置的不同属性):


    由于您的2个GroupBox位于同一位置,我将使用radiobutton而不是复选框,因为2个GroupBox不能同时显示

    以下是一个例子:

    // 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;
    
    表单的设计如下(您可以查看我设置的不同属性):

    两个groupbox都不应显示在表单上

    编译程序之前,在Delphi对象检查器中将.Visible设置为false

    你看过《秀》上的《帮助》了吗?它提到了这个属性。请参见第节

    坦率地说,listbox.visible:=checkbox.checked更简洁


    应显示在表单的同一位置

    你不能在同一时间在同一地点展示它们

    如果两个复选框都处于启用状态,您希望如何显示这两个复选框

    我认为你应该去掉复选框,放上单选按钮,而不是只能按下一个或另一个

    试试TRadioGroup

    RadioRouGroup.OnClick:=。。。(* 程序 List1.Visible:=RadioGroup.ItemIndex=1; 列表2.Visible:=RadioGroup.ItemIndex=2; 完.*)


    两个分组框应显示在完全相同的位置

    1) 使用TNotebook并将它们放在不同的页面上。切换页面,而不是切换可见性。这种方法将允许您进行更多的控制,而不仅仅是那些。你可以很容易地在不同的页面上的相同坐标上使用它们

    2) 在form.OnShow:List2.Top:=List1.Top中,左边的宽度和高度相同

    两个groupbox都不应显示在表单上

    编译程序之前,在Delphi对象检查器中将.Visible设置为false

    你看过《秀》上的《帮助》了吗?它提到了这个属性。请参见第节

    坦率地说,listbox.visible:=checkbox.checked更简洁


    应显示在表单的同一位置

    你不能在同一时间在同一地点展示它们

    如果两个复选框都处于启用状态,您希望如何显示这两个复选框

    我认为你应该去掉复选框,放上单选按钮,而不是只能按下一个或另一个

    试试TRadioGroup

    RadioRouGroup.OnClick:=。。。(* 程序 List1.Visible:=RadioGroup.ItemIndex=1; 列表2.Visible:=RadioGroup.ItemIndex=2; 完.*)


    两个分组框应显示在完全相同的位置

    1) 使用TNotebook并将它们放在不同的页面上。切换页面,而不是切换可见性。这种方法将允许您进行更多的控制,而不仅仅是那些。你可以很容易地在不同的页面上的相同坐标上使用它们


    2) 在form.OnShow:List2.Top:=List1.Top和Left相同的情况下,宽度和高度不起作用。这两个GroupBox在运行时仍然不隐藏,在编译程序之前仍然不在formchange的同一区域IDE中可见///IDE中任何属性的更改都可以在程序运行后在代码中更改。在代码中更改的大多数属性可以在程序编译失败之前在IDE中更改。这两个GroupBox在运行时仍然不隐藏,在编译程序之前仍然不在formchange的同一区域IDE中可见///IDE中任何属性的更改都可以在程序运行后在代码中更改。代码中的大多数属性可以在程序编译之前在IDE中更改我用两个单选按钮替换了两个复选框,但以下两个代码都不起作用:
    GroupBox1.Visible:=RadioButton1.Checked;GroupBox2.可见:=RadioButton2.选中或`GroupBox1.Visible:=False;GroupBox2.Visible:=False;如果RadioButton1.ItemIndex=0,则GroupBox1.Visible:=True,否则GroupBox2.Visible:=True;终止˙阅读有关单选按钮及其行为的文档和教程。或者只使用radiogroup-对于您的案例和您将代码放在哪里更简单、更有效???在那里放置一个断点,看看代码是否执行过?如果codde从未执行过,它就永远不会改变任何事情。我在上面告诉过你代码和哪个事件应该为radiogroup调用它。我不能使用radiogroup,因为两个GroupBox中的一个必须根据按钮单击后按下的radiobutton发生,但是使用这两个代码中的任何一个,我甚至不能运行软件-它有一些wird错误。哪个按钮?使按钮禁用radiogroup,以便在按下按钮之前,没有人可以单击radiogroup。我将两个复选框替换为两个单选按钮,但以下两个代码均不起作用:
    GroupBox1.Visible:=RadioButton1.Checked;GroupBox2.可见:=RadioButton2.选中或`GroupBox1.Visible:=False;GroupBox2.Visible:=False;如果RadioButton1.ItemIndex=0,则GroupBox1.Visible:=True,否则GroupBox2.Visible:=True;终止˙阅读有关单选按钮及其行为的文档和教程。或者干脆用r