フォームにボタンを置きます。
そのボタンを実行中にマウスに合わせて移動するという
delphiの開発環境のような動かせ方はできるのでしょうか?
var
pMouses : Tpoint;
pMouses := Mouse.CursorPos;
OnMouseDownでマウス位置を取得した後、OnDragDropに何記述がいるのでしょうか?
ご教授よろしくお願いいたします。
こんなもんで
var
bDrag: boolean;
ptBegin: TPoint;
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ptBegin := Point(X, Y);
bDrag := TRUE;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bDrag := FALSE;
end;
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
pt: TPoint;
begin
if bDrag=TRUE then begin
pt := Form1.ScreenToClient(Button1.ClientToScreen(Point(X, Y)));
Button1.Left := pt.X-ptBegin.X;
Button1.Top := pt.Y-ptBegin.Y;
end;
end;
Turbo Delphi Explorerで動作を確認しました。
こういう風に記述するのですね。
とても勉強になりました。
ありがとうございます。
ツイート | ![]() |