高手來說---最簡單的問題 ( 积分: 50 )

  • 主题发起人 主题发起人 liaodm
  • 开始时间 开始时间
L

liaodm

Unregistered / Unconfirmed
GUEST, unregistred user!
如何將控件定義成變量就如下面一樣:
說明:窗體內放有11個TComboBox控件,依次為ComboBox1..ComboBox11
var
myarry :array [0..10] of TSringList;
i:integer;
begin
i:=0;
while i<11 do
begin
myarry:=TStringList.Create;
myarry.Clear;
myarry.AddStrings(ComboBox1.Items);//我希望這裡的ComboBox1換成一個變量
i=i+1;
end;

 
如何將控件定義成變量就如下面一樣:
說明:窗體內放有11個TComboBox控件,依次為ComboBox1..ComboBox11
var
myarry :array [0..10] of TSringList;
i:integer;
begin
i:=0;
while i<11 do
begin
myarry:=TStringList.Create;
myarry.Clear;
myarry.AddStrings(ComboBox1.Items);//我希望這裡的ComboBox1換成一個變量
i=i+1;
end;

 
建立一个TComboBox类型的变量,一个个赋值啊!
 
我不明白你的意思,你是不是把combobox裡的值存放在一個變量裡
 
你可以通循環來做呀,combobox.item.string[0]可以做到的
 
我想我应该看懂你的意思了:
var
myarry :array [0..10] of TSringList;
i:integer;
begin
i:=0;
while i<11 do
begin
myarry:=TStringList.Create;
myarry.Clear;
// myarry.AddStrings(ComboBox1.Items);//你原来的写法
//把上面的这句改成下面的,应该合乎你的意思了
myarry.AddStrings(TComboBox(FindComponent('ComboBox'+IntToStr(i))).Items)
//注意写法TComboBox(FindComponent('ComboBox'+IntToStr(i))).Items,你看看帮助
i=i+1;
end;
 
楼上的意见完全正确。
 
再看看下面的例子帮助你理解问题,
如给100个LABEL标签赋值1——100
for i := 1 to 100 do
TLabel(FindComponent('Label'+IntToStr(i))).Caption := inttostr(i)
 
tianrei 大哥你真行,搞定!
 
呵呵,谢谢你的表扬
哈哈,该给分了哈!
 
后退
顶部