怎样写一个函数或过程,对同类型并有一定命名规则控件进行循环操作(200分)

  • 主题发起人 主题发起人 silvermaggie
  • 开始时间 开始时间
S

silvermaggie

Unregistered / Unconfirmed
GUEST, unregistred user!
经常一个form中需要使用到的edit和label太多,想写一个函数或过程,作用是可以通过输入
需要操作的起止控件名为参数,然后对这些同类的控件进行循环操作
前提是这些同类型的控件都已经存在,并且命名使用默认名称

例如:从edit1、edit2。。。到edit50,他们各自的text赋值为label1、label2。。。label50的caption
又如:从edit51、edit52。。。到edit99,他们各自的text赋值为51、52。。。99

关键是利用edit或label后面那个整数进行循环,并利用这个整数反过来控制该edit或label。
难的应该是后半部分吧。问过一些同行,其中vb可以实现,但在delphi中行不通,希望你能帮帮忙。谢谢!
[:)]
 
定义他们的taborder .tag

(sender as tedit).text:='label'+intostr((sender as tedit).taborder)
 
var
I,K,ControlIndex,ControlStart,ControlEnd:Integer;
begin
ControlStart := 1;
ControlEnd := 3;//参数从ControlStart到ControlEnd

ControlIndex := ControlStart;
For I:=0 to Form1.ControlCount-1 do
begin
if(Form1.Controls is TEdit)and(Controls.Name='Edit'{被赋值的控件}+Inttostr(ControlIndex))then
begin
For K:=0 to Form1.ControlCount-1 do
begin
if(Form1.Controls[K] is TLabel)then
if(Form1.Controls[K].Name='Label'{赋值的控件}+Inttostr(ControlIndex))then
begin
TEdit(Form1.Controls).Text := TLabel(Form1.Controls[K]).Caption;
Break;
end;
end;
inc(ControlIndex);
if(ControlIndex>ControlEnd)then Break;
end;
end;
end;
如果你还有什么问题可到Http://delphi.ok100.net去问
 
呵呵,不用去Http://delphi.ok100.net去问了。

其实很简单,也不用遍历

var i:integer;
begin
for i:=1 to 50 do
TEdit(FindComponent('Edit'+IntToStr(i))).Text:=TLabel(FindComponent('Label'+IntToStr(i))).caption;
for i:=51 to 99 do
TEdit(FindComponent('Edit'+IntToStr(i))).Text:=IntToStr(i)
end;

 
供你参考:
将LABEL1-LABEL10 赋值为:'TEST_VAL'
FOR I:=1 TO 10 DO
TLabel(FindComponent('Label'+IntToStr(i))).Caption := 'TEST_VAL'
 
实现啦~~~~~~谢谢!
问题又来了,200不够分咧!
kiss一下算了吧,哈哈哈
以上四位告诉我你们要几分吧,要是不够,先欠着,以后一定还,两天后还没答复我才
再分吧,OK?
开心过头有点失礼了,呵呵~~~~~~~
 
呵呵,要几分?

谁的答案对你有帮助,或者你用的是谁的解决办法,就给谁呀。应该是你分,不是我们要。
你的问题如果是散分的,我是不会进来的
 
既然你这样说,呵呵,介意交个朋友吗?
my qq num:2411845
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部