重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Delphi XE5 Starter、Windows8.1を使用しています。
Formに図形(円、四角)を書き、その内外にマウスを動かして動作させるプログラムを作っています。
Formのマウスイベントを使った場合、図形上ではFormにマウスイベントが送られないのですが、送られるようにする方法はありますか?
(図形のマウスイベントを使えば、なんとかなるようですが、まとめて簡単に扱いたいのです)

A 回答 (1件)

ApplicationのOnMessageを使えば出来ます。


次のコードは、フォーム上でマウスを押したときと、移動したときの位置をフォームタイトルに表示します。

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := ApplicationEventsMessage;
end;

procedure TForm1.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
var
Pt : TPoint;
begin
if Msg.message = WM_LBUTTONDOWN then begin
GetCursorPos(Pt);
Pt := ScreenToClient(Pt);
Caption := 'LButtonDown: ' + IntToStr(Pt.X) + ' , ' + IntToStr(Pt.Y);
end
else if Msg.message = WM_MOUSEMOVE then begin
GetCursorPos(Pt);
Pt := ScreenToClient(Pt);
Caption := 'MouseMove: ' + IntToStr(Pt.X) + ' , ' + IntToStr(Pt.Y);
end;
end;
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
うまくいきました。

お礼日時:2015/05/19 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!