ウィンドウやパネルのドラッグ移動 ~Delphiソースコード集
プロジェクトの作成
Delphi IDEを起動し、「ファイル」⇒「Windows VCLアプリケーション -Delphi」をクリックします。フォームにTPanelをドラッグ&ドロップします。
ソースコードの記述
左上の「構造」ペインの[Form1]をクリックします。左の「オブジェクト インスペクタ」ペインの[イベント]タブをクリックします。
左の「オブジェクト インスペクタ」ペインの[OnMouseDown]イベントの右側の何もないところをダブルクリックします。
以下ソースコードを記述します。
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//マウスの左ボタンドラッグ時にForm1を移動させる
if Button=TMouseButton.mbLeft then
begin
//マウスのキャプチャを解放する
ReleaseCapture;
SendMessage(self.Handle, WM_SYSCOMMAND, SC_MOVE or 2, MakeLong(X, Y));
end;
end;
キーボードの「F12」キーを押す又は、下の「デザイン」タブをクリックして、フォームデザインに切り替えます。
左上の「構造」ペインの[Panel1]をクリックします。
左の「オブジェクト インスペクタ」ペインの[イベント]タブをクリックします。
左の「オブジェクト インスペクタ」ペインの[OnMouseDown]イベントの右側の何もないところをダブルクリックします。
以下ソースコードを記述します。
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//マウスの左ボタンドラッグ時にPanel1を移動させる
if Button=TMouseButton.mbLeft then
begin
//マウスのキャプチャを解放する
ReleaseCapture;
SendMessage(TPanel(Sender).handle,WM_SYSCOMMAND,SC_MOVE or 2,MakeLong(X,Y));
end;
end;
実行する
実行ボタンを押すとコンパイルされ実行ファイルが生成して実行します。Panel1をマウスの左ボタンでドラッグするとPanel1が移動します。
ウィンドウの何もないところをマウスの左ボタンでドラッグするとウィンドウが移動します。