掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Panelを自由に移動するには? (ID:29503)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Panelの位置とサイズ変更ですが、下記のようにするとできます。 ただし、マウス位置がORGのサイズよりマイナスになるような場合のチックはしていませんので悪しからず。 新しいアプリケーション(テスト用)でまず確認してください。 PanelとImaegeはImaegeのAnchorsを指定するとOKでしょう。 private { Private 宣言 } bDrag : boolean; ptBegin : TPoint; org_Wide,org_Height:Integer; procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ptBegin := Point(X, Y); bDrag := TRUE; org_Wide := Panel1.Width; org_Height:= Panel1.Height; 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))); if Shift = [ssLeft] then begin Panel1.Left := pt.X - ptBegin.X; //横方向 Panel1.Top := pt.Y - ptBegin.Y; //縦方向 end else if Shift = [ssRight] then begin Panel1.Width := (org_Wide - (Panel1.Left - (pt.X - ptBegin.X))); //幅の変更 Panel1.Height:= (org_Height- (Panel1.Top - (pt.Y - ptBegin.Y))); //高さの変更 end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.