当前位置:编程学习 > Delphi >>

delphi中怎样判断事件触发

我动态创建多个label,当我电击某个label时判断:
for i:=1 to Componentcount do
begin

if Component is TLabel then

begin

if Tlabel[i].click then //这里怎样判断??

begin

//相应的操作

end;

end;
end;

if语句怎样判断??
答案:我现在来总结楼上两位说的吧:
说白了 OnClick 是一个指针 它可以指向你所为它指定的 过程; 你需要在动态创建Label 的时候将创建出来的Label 的Onclick 事件分配给 一个TNotifyEvent格式 事件. 如
procedure Form1.LabelsClicked(Sender: TObject);
begin

end;
注意它的参数: Sender
其实它是一个指针。 而Sender 此时事实上就是 这个指向你单击的Label 的地址。但是它的类型却是TObject(对象类) 所以,你要手动的将其强制转换为 TLabel类。
这样,你才可以使用TLabel 的方法。
那么你 就按照一楼的办法 将创建的每一个Label 的Onclick 事件都指定给一个函数。比如说: LabelsClicked,那么 接下来。你只需要确定 你点的是那个Label你的办法好像是用Component的Index.那么我可以根据你提供的资料,写出以下代码:
procedure Form1.LabelsClicked(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ComponentCount - 1 do begin

if Components[i] = (Sender As TComponent) //注意这里要将 Sender 转换为TComponent 类型 才可以比较


then begin


//当前点击的Label 的Index 为i 执行你需要的代码
Break;

end;
end;
end;

上一个:怎样触发delphi 中的progressbar
下一个:delphi资源调用生成问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,