0
私は、実行時にラベルオブジェクトを作成するボタン付きの単純な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.
ありがとう:ここ
は自分のフォームのコードです。
'Button1Click'イベントの中に' LabelObject.OnDblClick'を割り当てます。 –
@LURD完璧、ありがとうございます! – lindziwiggins
フォームのダブルクリックハンドラ内のラベルにダブルクリックハンドラを割り当てると、フォームをダブルクリックした後にラベルがダブルクリックに反応するだけで驚くべきではありません。 –