1. delphi中怎样判断事件触发
我现在来总结楼上两位说的吧:
说白了 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;
2. Delphi中的按键触发事件如何完成
key确实没有定义啊
3. 用时钟触发事件delphi
用timer控件吧
先将timer.interval属性调成100(100ms)
然后再写ontimer时间
例如:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if XXXX = true then form1.close;
end;
注意先将timer.enable属性设为true
4. Delphi DBGrid记录移动是触发什么事件?
DBgrid记录移动一定会触发datasource的ondatachange事件
5. delphi中,我想按字母a,触发一个事件,怎么写?
在Form窗口添加一个事件,代码中会自动添加
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
end;
然后在begin和end中间写上
if key = #65 then application.MessageBox('你人品不好,请按“确定”','提示',16);
就可以了
6. delphi里TreeView1Change怎么用按钮来触发这个事件呢
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeView1Change(Sender,nil);
end;
7. 利用delphi中radiobutton的选择改变来触发事件。
始终保持一个变量为十进制
然后分别转换,转换的代码百度一下一大把,搜一下吧。
8. delphi form位置移动时触发事件
覆盖窗体的 WndProc方法
procedure TForm1.WndProc(var Msg: TMessage);
begin
if Msg.Msg = WM_MOVE then //left: Msg.LParamLo top:Msg.LParamHi
begin
//这里做你想做的事情
Memo1.Lines.Add('坐标 : ' + IntToStr(Msg.LParamLo) + ':' + IntToStr(Msg.LParamHi));
end;
inherited;
end;