在 运行 时间创建的对象上的双击事件 - Delphi
Double click event on object created at run time - Delphi
我创建了一个带有按钮的简单 Delphi 表单,当按下该按钮时,会在 运行 时间内创建一个标签对象。我为在屏幕上显示消息的标签创建了一个双击事件。问题是在创建标签后,我必须在双击事件对标签起作用之前双击表单。显然,这并不理想,因为我希望能够双击标签并触发事件,而不必先双击表单。
这是我的表单代码:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure MyLabelDblClick(Sender:TObject);
private
{ Private declarations }
LabelObject: TLabel;
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
LabelObject := TLabel.Create(Self);
LabelObject.Left := 100;
LabelObject.Top := 100;
LabelObject.Width := 200;
LabelObject.Height := 20;
LabelObject.Visible := True;
LabelObject.Parent := Self;
LabelObject.Caption := 'My Run Time Label';
LabelObject.Cursor := crHandPoint;
end;
procedure TForm4.FormDblClick(Sender: TObject);
begin
LabelObject.OnDblClick := MyLabelDblClick;
end;
procedure TForm4.MyLabelDblClick(Sender: TObject);
begin
showmessage('You double clicked My Run Time Label');
end;
end.
在此先感谢您对此事的任何帮助。
The problem is that after creating the label, I have to double click on the form before the double click event works on the label.
在创建标签时分配 LabelObject.OnDblClick
,即在 Button1Click
事件中。
我创建了一个带有按钮的简单 Delphi 表单,当按下该按钮时,会在 运行 时间内创建一个标签对象。我为在屏幕上显示消息的标签创建了一个双击事件。问题是在创建标签后,我必须在双击事件对标签起作用之前双击表单。显然,这并不理想,因为我希望能够双击标签并触发事件,而不必先双击表单。
这是我的表单代码:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure MyLabelDblClick(Sender:TObject);
private
{ Private declarations }
LabelObject: TLabel;
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
LabelObject := TLabel.Create(Self);
LabelObject.Left := 100;
LabelObject.Top := 100;
LabelObject.Width := 200;
LabelObject.Height := 20;
LabelObject.Visible := True;
LabelObject.Parent := Self;
LabelObject.Caption := 'My Run Time Label';
LabelObject.Cursor := crHandPoint;
end;
procedure TForm4.FormDblClick(Sender: TObject);
begin
LabelObject.OnDblClick := MyLabelDblClick;
end;
procedure TForm4.MyLabelDblClick(Sender: TObject);
begin
showmessage('You double clicked My Run Time Label');
end;
end.
在此先感谢您对此事的任何帮助。
The problem is that after creating the label, I have to double click on the form before the double click event works on the label.
在创建标签时分配 LabelObject.OnDblClick
,即在 Button1Click
事件中。