フォームの移動中にイベントを取得するには?


ながぐつ  2005-03-23 19:28:43  No: 13909

タイトルバーをドラッグしてフォームを移動させているときにマウスの位置を随時取得したいのですが?

下記サイトの「OleDrag&Drop」コンポーネントも試したのですが、
私が求めるものではありませんでした。

http://www.eonet.ne.jp/~takao-n/download/index.html

どなたかご教授おねがいします。


りおりお  2005-03-23 19:42:33  No: 13910

{ 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;


ながぐつ  2005-03-23 20:17:11  No: 13911

りおりお様
ありがとうございます。
早速、頂いたソースを実行してみました。
うまく作動します。

>Label1.Caption :=
>   Format(' x = %d  y = %d',[Mouse.CursorPos.x,Mouse.CursorPos.y]);

このときLabel1.Captionがマウスの移動と同期して表示を更新させる方法はありますでしょうか?


メラトニン  2005-03-24 02:29:19  No: 13912

動いているときもでしたらこれでどうでしょう?
procedure WMMove(var Msg:TMessage);message WM_MOVE;


ながぐつ  2005-03-24 03:02:19  No: 13913

メラトニン様
ありがとうございます。

procedure TForm1.WMMOVE(var Message: TMessage);
var
    FCursorPos:TPoint;
begin
    GetCursorPos(FCursorPos);
    FCursorPos.X:=FCursorPos.X+1;
    Label1.Caption:=IntToStr(FCursorPos.X);
end;

上記のようにしたのですが、
フォームやツールバーをタイトルバーをドラッグして
移動する場合にうまくいきません。

他に方法はないでしょうか?


メラトニン  2005-03-24 03:16:13  No: 13914

いや…私の環境ではフォームのタイトルバーをドラッグ移動している最中もこのメッセージは流れますが。
OSはなんでしょうか?
ちなみに私はXPで確認しました。


メラトニン  2005-03-24 03:18:36  No: 13915

WM_MOVING;でも同じですね…
知りませんでした。


ながぐつ  2005-03-24 03:31:20  No: 13916

メラトニン様
ありがとうございます。

>OSはなんでしょうか?
Win98です。(古いです)

勉強のため単機能なドッキングツールバーみたいなものを
作ってみようとしているのですが、、、。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加