怎样用变量名访问控件?(100分)

  • 主题发起人 主题发起人 qqwu
  • 开始时间 开始时间
Q

qqwu

Unregistered / Unconfirmed
GUEST, unregistred user!
我在IFormDesinger写getComponent('button1') 和getObject('button1)s时,编译能通过但不能通过运行。请求帮助!
我要实现的功能是通过变量名访问控件。。。。。。:
就是知道'button1'字符串访问button1控件。。。。
Thx.
我只有200分,只能给100分。


 
findcomponent
 
IFormDesigner是在ide下设计时才有的,
你得用findcomponent(button1) as Tbutton才行
 
被cAkk抢我前面去了,wuwu~~~~~
 
能不能详细一点,我试了findcomponent('button1')还是不行。。我的代码是:
(我的form1中只有两个控件button1、button2)
with Tcomponent.FindComponent('button1') as TButton do
begin
caption:='pp';//访问button1
end;
error:This form method call only allowed for the class methods.
请问大虾怎么回事?
我加了个变量c:TComponent.
with c.FindComponent('button1') as TButton do
begin
caption:='pp';//访问button1
end;
编译可以通过,但button1的caption没有变化,也就是没有访问到button1.
我查了一下帮助,
Indicates whether or not a given component is owned by the component.
function FindComponent(const AName: string): TComponent;
是不是只有own关系的控件才能找到?
谢谢解答。。。。。。。。
 
你的
with Tcomponent.FindComponent('button1') as TButton do
~~~~~~~~~~~错误
begin
caption:='pp';//访问button1
end;

我的
with FindComponent('button1') as TButton do
begin
caption:='pp';//访问button1
end;
ok
 
//Tcomponent.FindComponent
你写出这样的代码说明你对对象方法的使用还不清楚.
大多数对象方法必须用实例去调用.只有用class关键字声明的过程和方法才允许
用对象名去访问.
 
可用Form的Controls和ControlCount属性解决

s为表示控件的名称的字符串
i:=0;
while (i<ControlCount)and(Controls.name<>s) do i:=i+1;
if i<ControlCount then
with Controls as TButton do
begin
.........;
end;
如果只用TControl已定义的属性, Controls as TButton 都可以省
 
天哪,我的东西怎么成了这个模样!只好再写一遍

s为表示控件的名称的字符串
i:=0;
while (i<ControlCount)and(Controls<>s) do i:=i+1;
if i<ControlCount then
begin
Controls就是你要找的控件,听你处置了.
end;
 
我见鬼了.不知各位受到的邮件是否与贴上去的一样?
 
i:=0; while (i<ControlCount) and (Controls.name<>s) do i:=i+1;
if i<ControlCount then
 
我的I<CONTROLCOUNT AND CONTROLS.NAME<>S怎么总换成(is)
 
i:=0;
如果i小于ControlCount且Controls.name不等于s,那么i加1;
上述while语句结束后,
如果i小于ControlCount那么Controls就是你要的控件.处理吧.

累死我了
 
哈哈,kang ,你用了大于号和小于号,那是Html标记啊!
 
为什么这个问题我已经分配了分数问题还能继续下去,
并要我重新分配分数。。。
难道我真的要冲重新分配吗?

大富翁新手问。。。。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部