掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Panelを自由に移動するには? (ID:29488)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
どこかで見ましたが こんなのでいかが? FormにPanelをひとつ、 その上にImageを乗せて、それぞれに下記のように・・・ もっといい方法があると思いますが・・・ それなりに動いています。 private { Private 宣言 } bDrag :Boolean; ptBegin:TPoint; procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ptBegin := Point(X,Y); bDrag := True; end; procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin bDrag := False; end; procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var pt:TPoint; begin if bDrag = True then begin pt := Form1.ScreenToClient(Panel1.ClientToScreen(Point(X,Y))); Panel1.Left := pt.X - ptBegin.X; Panel1.Top := pt.Y - ptBegin.Y; end; end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ptBegin := Point(X,Y); bDrag := True; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var pt:TPoint; begin if bDrag = True then begin pt := Form1.ScreenToClient(Panel1.ClientToScreen(Point(X,Y))); Panel1.Left := pt.X - ptBegin.X; Panel1.Top := pt.Y - ptBegin.Y; end; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin bDrag := False; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.