如何用循环语句优化"结构一致,仅系列号不同"的程序????(50分)

参与

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi实际编程中经常会遇到这样的问题.
例:Label1.Caption := 'aaa';
Label2.Caption := 'aaa';
.....
Label100.Caption := 'aaa';
怎样用循环语句优化该程序??
请不吝赐教,谢谢!!
 
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
用 function FindComponent(const AName: string): TComponent

e.g.

for ii := 1 to 100 do
TLabel(FindComponent('Label'+IntToStr(ii))).Caption := 'aaa';
 
S

Shy

Unregistered / Unconfirmed
GUEST, unregistred user!
我曾经使用过Foxpro 3.0,其中有一个宏代换指令&,用它可以脱去一层引号,就可以解决上述问题.
例如 &('Label'+'3') == Label3
请问在Delphi中有没有此类指令???

请不吝赐教,谢谢!!
 
D

dwwang

Unregistered / Unconfirmed
GUEST, unregistred user!
不可能的,编译的语言怎么能够这样呢?
 

参与

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么不可能,请解释的更清楚一点??
不知还有没有其他方法能解决上述问题??
请赐教!!
 
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
再给个提示:<a href="/delphi/attachments/delphin.zip">下载这个程序自己研究吧</a>,
它能解释和执行您当场键入的Pascal指令, 是不是很 Cool ?!
 

参与

Unregistered / Unconfirmed
GUEST, unregistred user!
我不能下载yysun的程序,请yysun书面程序解释吧!!
在Delphi中有没有宏代换指令,解决我的问题????
 
D

dwwang

Unregistered / Unconfirmed
GUEST, unregistred user!
Foxpro中的宏代换指令是在运行时通过解释器解释的,
因此如果变量值是一条语句,解释后执行便可以成为一条命令.
编译的语言的指令都是编译时生成并唯一确定的,是不可能动
态生成指令的.
只有用解释器才能完成这种功能,例如老孙提供的程序.
 
P

pegasus

Unregistered / Unconfirmed
GUEST, unregistred user!
Label1,
Label2,
...
XiXi, 那还不使用控件数组!
 
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
我是功力不够,精力不够,自己都无法通读推荐的那个程序。
它居然能读入 *.dfm和*.pas, 先显示Form, 然后解释执行 *.pas,
它的例子是一个数字计算器的 dfm+pas !

(Really amazing!)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
757
import
I
顶部