关于“动态建立”组件的有关问题

关于“动态建立”组件的问题
本帖最后由 rxf2010sz 于 2014-08-30 15:10:24 编辑
大家好!
       窗体中有1个TComboBox组件、4个TEdit组件、1个TGroupBox、1个按钮组件。我现在想实现这样的目的:
       1、设置TComboBox组件的选项为1~10,运行后,选择2,则在TGroupBox组件中动态建立2行TLabel组件,每行3个TLabel。选择10,则在TGroupBox组件中动态建立10行TLabel组件,每行3个TLabel组件。
       2、在第1个TEdit组件中输入文本内容,并且在另3个TEdit组件中输入数字内容,单击按钮后,如果是第1次输入,则将第1个TEdit组件Text(文本)做为第1行第1个TLabel组件的Caption,将另3个TEdit组件的Text(数字)进行计算,并将计算结果做为第1行第3个TLabel组件的Caption;如果是第2次输入,则按以上规则分别修改第2行的TLabel组件,每行第2个TLabel组件的Caption属性为固定,在动态建立时确定。

       我现在已经实现第1步了,第2步不会实现了。如果在代码中加入Continue或Break,则只修改第1行的TLabel组件(第1个和第3个);如果不在代码中加入Continue或Break,则所有行的TLabel组件(第1个和第3个)都修改了。我不知道该怎么修改才能实现这个目的,请大家帮我看看这个问题并提供帮助。

      我的代码如下:

 K := 0;
 L := 0;
 With GroupBox13 Do
  begin
   For j := 0 To ControlCount -1 Do
    begin
     IF Controls[j] IS TLabel Then
      begin
       IF TLabel(Controls[j]).Tag  = K + 10 Then
        begin
         TLabel(Controls[j]).Caption := edtMinName.Text + '的风量计算结果为:';
         Continue;
         Inc(K);
        end;
      end;
    end;

   For j := 0 To ControlCount -1 Do
    begin
     IF Controls[j] IS TLabel Then
      begin
       IF TLabel(Controls[j]).Tag  = L + 30 Then
        begin
         TLabel(Controls[j]).Caption := FormatFloat('.00',StrToFloat(FormatFloat('.0', WindQuantity_Weath))) + ' m3/min';
         Continue;
         Inc(L);
        end;
      end;
    end;
  end;

  我已经将第1行的TLabel组件的Tag属性设定为10~19的数、第2行的TLabel组件的Tag属性设定为20~29的数、第3行的TLabel组件的Tag属性设定为30~39的数。
------解决思路----------------------
兄弟,这种要求,完全就应该用TStrngGrid来实现。拉一个Edit在界面上,说明需要输入几组测试数据,然后根据这个值来指定StringGrid的行数(列数嘛,我猜应该是4)。然后在每一行的前三个单元格里手工录入实验数据,最后放一个按钮在窗体上,点击时进行计算,并把计算结果放到第4列单元格中。