Pascal递增文本框的变量名

时间:2018-08-14 11:39:57

标签: loops variables for-loop increment pascal

我正在使用数组来管理我的数据和输出。

我的问题是我需要从连续增加1的文本框中输入或输出,所以我的数组从1开始到31结束。我的变量是文本数组,不能是数组,其名称类似于memo67。 。-memo97。

是否可以使用tmepcounter?所以我想在for循环中使用诸如memo(a + 66)之类的东西。这样,我就可以用文本数组[a] 1到31填充文本框。

礼物

1 个答案:

答案 0 :(得分:0)

正如Andreas所说,通常在这种情况下使用数组。但是,如果您喜欢我喜欢快速复制和过去的操作,则可以通过一个步骤使用TComponent功能来填充此类数组:

Type 
   TForm1 = class
              editsset1 : array of tedit;  
             end;



type     TControlDynArray      = Array of TControl;


procedure loadarray (root:tcomponent;var x : TControlDynArray;basename:string;i1,i2:integer);
var l,i : integer;
begin
 l:=i2-i1+1;
 setlength(x,l);
 for i := i1 to i2 do
   begin
     x[i-i1]:=tcontrol(root.FindComponent(basename+inttostr(i)));
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // loads edit1..31 into  editsset1[0] ... editsset[30]
  loadarray(self,TControlDynArray(editsset1),'Edit',1,31);
end;

免责声明:上面的代码是从工作代码中拼凑而成的,但是我没有测试最终结果

相关问题