回 帖 发 新 帖 刷新版面

主题:还有一个问题待高手帮助!先谢

有10个一样的组件(SpeedBitbnt),点任意一个,就能得到该组件的caption?
例如:这10个组件的单击事件都指向第一个组件的单击事件,它们自身无代码;(为了节省同样代码的重复)
很急,谢谢帮忙了!
[em8]

回复列表 (共6个回复)

沙发

假设其中组件事件Click已有代码,将其它组件的事件Click属性选中有代码的组件事件Click即可.

板凳

请教 作者:wealthy :
代码怎么写?比如 

SpeedBitbtn1.Click;
var st:string;
begin
         st:=SpeedBitbtn1.caption;  
end;

请问,如果我其他组件Click全部指向它是什么结果?(全部等于SpeedBitbtn1.caption;就毫无意义了)

3 楼

先建立一个虚组件代码如
***** 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 楼

还是要先谢谢兄弟!!!
现在来说明问题:你写的代码,我晓得,最先我也这样写,但是相当累赘(如果有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 楼

哦.
var
st:string;
aa:TSpeedBitBtn;
begin
 //aa:=TSpeedBitBtn.Create(self);       
   st:=aa.caption;   
end;这是动态创建组件,如果你的组件已点击添加了,不能得到已点击添加的caption的,我也想出最小代码的好办法,暂只能按上面的办法一个写

6 楼

TSpeedBitbnt(Sender).caption;

我来回复

您尚未登录,请登录后再回复。点此登录或注册