主题:还有一个问题待高手帮助!先谢
我爱白狗狗
[专家分:10] 发布于 2006-11-07 09:36:00
有10个一样的组件(SpeedBitbnt),点任意一个,就能得到该组件的caption?
例如:这10个组件的单击事件都指向第一个组件的单击事件,它们自身无代码;(为了节省同样代码的重复)
很急,谢谢帮忙了!
[em8]
回复列表 (共6个回复)
沙发
wealthy [专家分:1840] 发布于 2006-11-07 09:45:00
假设其中组件事件Click已有代码,将其它组件的事件Click属性选中有代码的组件事件Click即可.
板凳
我爱白狗狗 [专家分:10] 发布于 2006-11-07 10:10:00
请教 作者:wealthy :
代码怎么写?比如
SpeedBitbtn1.Click;
var st:string;
begin
st:=SpeedBitbtn1.caption;
end;
请问,如果我其他组件Click全部指向它是什么结果?(全部等于SpeedBitbtn1.caption;就毫无意义了)
3 楼
wealthy [专家分:1840] 发布于 2006-11-07 10:19:00
先建立一个虚组件代码如
***** form1.yyyyyyyyyonclick(sender:tobject);
begin
if SpeedBitbtn1.click then
begin
SpeedBitbtn1.caption:='88888';
end else if SpeedBitbtn2.click then
begin
SpeedBitbtn2.caption:='11111';
end;
else if ........ then
begin
..........
end;
再将你上面的10个组件的onclick属性选为yyyyyyyyyonclick
4 楼
我爱白狗狗 [专家分:10] 发布于 2006-11-07 10:31:00
还是要先谢谢兄弟!!!
现在来说明问题:你写的代码,我晓得,最先我也这样写,但是相当累赘(如果有60多个组件,不是太麻烦了吗);我是想这样实现:
var
st:string;
aa:TSpeedBitBtn;
begin
//aa:=TSpeedBitBtn.Create(self);
st:=aa.caption;
end;
(测试显示,st确实可以得到同类组件的Caption;但是编译时警告信息显示"aa未初使化",并且无法将st进行赋值;但是,如果加 aa:=TSpeedBitBtn.Create(self);警告提示消除,不过,Caption也变成空值)
5 楼
wealthy [专家分:1840] 发布于 2006-11-07 10:44:00
哦.
var
st:string;
aa:TSpeedBitBtn;
begin
//aa:=TSpeedBitBtn.Create(self);
st:=aa.caption;
end;这是动态创建组件,如果你的组件已点击添加了,不能得到已点击添加的caption的,我也想出最小代码的好办法,暂只能按上面的办法一个写
6 楼
dodolon [专家分:400] 发布于 2006-11-11 16:24:00
TSpeedBitbnt(Sender).caption;
我来回复