edit:array[1..20] of tedit; ... for i:= 1 to 20 do edit[i].text:='';
edit:array[1..20] of Tedit 的声明在哪儿声明啊,我在form的控件变量里声明编译报错, 在当前过程里声明运行时报错
procedure Tform1.button1Click(sender:TObject) var newedit:array[1..20] of TEdit; begin for i:= 1 to 20 do newedit[i].text:='';//抄袭 firetoucher(风焱) 老兄 end;
如此就可以。procedure TForm1.Button1Click(Sender: TObject); var i: integer; edit:array[1..20] of tedit; begin for i:= 1 to 20 do edit[i].text:=''; end;
procedure AssignEdits(aParentWinControl: TWinControl); var I: Integer; vEditNo: Integer; vEdit: TEdit; begin for I := 0 to aParentWinControl.ControlCount - 1 do begin if aParentWinControl.Controls[I] is TEdit then begin vEdit := TEdit(aParentWinControl.Controls[I]); vEditNo := StrToIntDef(Copy(vEdit.Name, 5, 2), 0); if vEditNo in [1..20] then TEdit(vEdit).Text := 'haha'; end; end; end;
...
for i:= 1 to 20 do
edit[i].text:='';
在当前过程里声明运行时报错
var newedit:array[1..20] of TEdit;
begin
for i:= 1 to 20 do newedit[i].text:='';//抄袭 firetoucher(风焱) 老兄
end;
var
i: integer;
edit:array[1..20] of tedit;
begin
for i:= 1 to 20 do
edit[i].text:='';
end;
var
I: Integer;
vEditNo: Integer;
vEdit: TEdit;
begin
for I := 0 to aParentWinControl.ControlCount - 1 do
begin
if aParentWinControl.Controls[I] is TEdit then
begin
vEdit := TEdit(aParentWinControl.Controls[I]);
vEditNo := StrToIntDef(Copy(vEdit.Name, 5, 2), 0);
if vEditNo in [1..20] then
TEdit(vEdit).Text := 'haha';
end;
end;
end;
他们的方法必须动态创建TEdit,不适用我写了个函数,你可以直接用,如改变Form1上的Edit,就这样调用
AssignEdits(Form1);
(frmmain.findcomponet('checkbox' + inttostr(i)) as Tcheckbox).checked := true ;
函数findComponent的参数是字符型的控件名,这样就可以操纵数组了!当然,楼上各位的方法也行,只是那样只能在运行时动态创建,如果在设计时创建的话就不好办了