名前 題名 ▼ Mr.XRAYさん > ▼ 空色の渚さん > > > マウスが去った後のイベントがないんですね。 > > Delphi 2007 以上なら OnMouseLeave イベントがあるんですけどね. > ない時は作る,ですね. > > type > TMyButton = class(TButton) > protected > procedure WMMouseleave(var Message: TMessage); message WM_MOUSELEAVE; > procedure Click; override; > end; > > TForm1 = class(TForm) > Memo1: TMemo; > procedure FormCreate(Sender: TObject); > private > { Private 宣言 } > MyButton1 : TMyButton; > public > { Public 宣言 } > end; > > var > Form1: TForm1; > > implementation > > {$R *.dfm} > > procedure TForm1.FormCreate(Sender: TObject); > begin > MyButton1 := TMyButton.Create(Self); > MyButton1.Parent := Self; > MyButton1.Left := 20; > MyButton1.Top := 10; > end; > > { TMyButton } > > procedure TMyButton.Click; > begin > inherited; > ShowMessage('クリック'); > end; > > procedure TMyButton.WMMouseleave(var Message: TMessage); > begin > inherited; > Form1.Memo1.Lines.Add('Leave'); > end; > > これだと,実行時に生成ですから,必要なら,コンポーネントとして > 登録できるようにコードを追加する. > > あるいは,実行時に,フォームに配置したボタンと交換するかですね. > [派生元のコンポーネントと交換する方法] > http://mrxray.on.coocan.jp/Delphi/CompoInstall/CompInstallDD.htm#03 > > あるいは,サブクラス化,あるいは,WndProc で処理する. > あるいは,TApplicationEvents の OnMessage イベントで処理するか, > 等々,いろいろ方法はありますです. > コーディング的にいいと思われるのは,コンポーネントの生成でしょう. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link