タイトルバーをドラッグしてフォームを移動させているときにマウスの位置を随時取得したいのですが?
下記サイトの「OleDrag&Drop」コンポーネントも試したのですが、
私が求めるものではありませんでした。
http://www.eonet.ne.jp/~takao-n/download/index.html
どなたかご教授おねがいします。
{ Private 宣言 }
public
procedure WMMoving(var Msg:TMessage);message WM_MOVING;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMMoving(var Msg:TMessage);
begin
inherited;
Label1.Caption :=
Format(' x = %d y = %d',[Mouse.CursorPos.x,Mouse.CursorPos.y]);
end;
りおりお様
ありがとうございます。
早速、頂いたソースを実行してみました。
うまく作動します。
>Label1.Caption :=
> Format(' x = %d y = %d',[Mouse.CursorPos.x,Mouse.CursorPos.y]);
このときLabel1.Captionがマウスの移動と同期して表示を更新させる方法はありますでしょうか?
動いているときもでしたらこれでどうでしょう?
procedure WMMove(var Msg:TMessage);message WM_MOVE;
メラトニン様
ありがとうございます。
procedure TForm1.WMMOVE(var Message: TMessage);
var
FCursorPos:TPoint;
begin
GetCursorPos(FCursorPos);
FCursorPos.X:=FCursorPos.X+1;
Label1.Caption:=IntToStr(FCursorPos.X);
end;
上記のようにしたのですが、
フォームやツールバーをタイトルバーをドラッグして
移動する場合にうまくいきません。
他に方法はないでしょうか?
いや…私の環境ではフォームのタイトルバーをドラッグ移動している最中もこのメッセージは流れますが。
OSはなんでしょうか?
ちなみに私はXPで確認しました。
WM_MOVING;でも同じですね…
知りませんでした。
メラトニン様
ありがとうございます。
>OSはなんでしょうか?
Win98です。(古いです)
勉強のため単機能なドッキングツールバーみたいなものを
作ってみようとしているのですが、、、。
ツイート | ![]() |