Pascal 递增文本框的变量名称
Pascal incrementing variable names of textboxes
我正在使用数组来管理我的数据输入和输出。
我的问题是我需要 i/o 来自或进入不断递增 1 的文本框 - 所以我的数组从 1 开始到 31 结束。我的文本框是变量,不能是数组,被命名为像 memo67... - memo97.
我可以使用 tmepcounter 吗?所以我想在 for 循环中使用类似 memo(a+66) 的东西。有了这个我可以用我的数组[a] 1到31填充我的文本框。
问候
正如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;
免责声明:以上代码是从工作代码拼凑而成,但我没有测试最终结果
我正在使用数组来管理我的数据输入和输出。
我的问题是我需要 i/o 来自或进入不断递增 1 的文本框 - 所以我的数组从 1 开始到 31 结束。我的文本框是变量,不能是数组,被命名为像 memo67... - memo97.
我可以使用 tmepcounter 吗?所以我想在 for 循环中使用类似 memo(a+66) 的东西。有了这个我可以用我的数组[a] 1到31填充我的文本框。
问候
正如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;
免责声明:以上代码是从工作代码拼凑而成,但我没有测试最终结果