有窗体上有20个combobox控件,置初值visible:=false;
因为打开本窗体时,根据传来的参数n,要显示不同数量的combobox,不知道如何控制?
for i:=1 to n do
if self.Components[i] is Tcombobox then
begin
tcombobox(self.Components[i]).Visible:=true;
tcombobox(self.Components[i]).Text:='';
end;
n是传来的显示个数参数,结果当然是不正确的。
如果 n 改为Self.ComponentCount - 1 ,它又把所有的combobox处理了,不是我想要的。
如果改成顺序结构又好麻烦,请高手帮帮我。
因为打开本窗体时,根据传来的参数n,要显示不同数量的combobox,不知道如何控制?
for i:=1 to n do
if self.Components[i] is Tcombobox then
begin
tcombobox(self.Components[i]).Visible:=true;
tcombobox(self.Components[i]).Text:='';
end;
n是传来的显示个数参数,结果当然是不正确的。
如果 n 改为Self.ComponentCount - 1 ,它又把所有的combobox处理了,不是我想要的。
如果改成顺序结构又好麻烦,请高手帮帮我。
Var
i,ret:integer;
begin
ret := 0; For i := 0 To Self.ComponentCount - 1 Do
Begin
If ret > n Then
Exit; If (self.Components[i] is Tcombobox) then
Begin
Tcombobox(self.Components[i]).Visible:=true;
Tcombobox(self.Components[i]).Text:='';
End; ret := ret + 1;
End;
end;
Var
i,ret:integer;
begin
ret := 0;
For i := 0 To Self.ComponentCount - 1 Do
Begin
If (self.Components[i] is Tcombobox) then
Begin
Tcombobox(self.Components[i]).Visible:=true;
Tcombobox(self.Components[i]).Text:='';
ret := ret + 1;
If ret > n Then
Exit;
End;
End;
end;
改成这样就是我需要的了,谢谢了。