![]() |
Form verschieben!!!!
So, ich habe BorderStyle auf bsnone gesetzt und somit die obere Leiste wech bekommen.Ich hab mir eine Komponente erstellt die dann diese Leiste ersetzen soll.
Ich möchte nun, wenn man auf die oberer Leiste klickt und die Maus bewegt, dass sich das Form verschiebt. Ich hab angefangen, nur iregndwie klappt das noch nicht so ganz. Kann mir einer helfen??
Delphi-Quellcode:
if(active_click = true) then begin Form8.Left := Mouse.CursorPos.X-Form8.Left; Form8.Top := Mouse.CursorPos.Y; end; |
Re: Form verschieben!!!!
Bitte verzichte künftig auf mehrere Ausrufezeichen in Deinen Betreffs-Zeilen. In 9 von 10 Fällen kann man sogar gänzlich auf Ausrufezeichen in den Betreffs-Zeilen verzichten. :wink:
Und zusätzlich wäre es hilfreich, wenn Du kurz beschreibst, was denn genau nicht funktioniert. |
Re: Form verschieben!!!!
:hi:
Vielleicht hilft dir ![]() oder ![]() und ![]() |
Re: Form verschieben!!!!
danke, der erste Link hat mir weitergeholfen!!!!! ;))
|
Re: Form verschieben!!!!
Delphi-Quellcode:
so hab ich das mal gemacht
...
var md : Boolean; mp : TPoint; ... procedure TMainForm.PanelHeaderBarMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var P : TPoint; begin if not md then Exit; P := Point(PanelHeaderBar.Left+(X - mp.X),PanelHeaderBar.Top + (Y - mp.Y)); P := ClientToScreen(P); P.Y := P.Y - (Height-(ClientRect.Bottom-ClientRect.Top))-PanelHeaderBar.Top; Left := P.X; Top := P.y; end; ... procedure TMainForm.PanelHeaderBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin md := True; mp := Point(X,Y); end; ... procedure TMainForm.PanelHeaderBarMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin md := False; end; |
Re: Form verschieben!!!!
Hier noch eine Lösung:
Delphi-Quellcode:
{ = DragAndDrop = }
var xPos, yPos: integer; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin xPos := x; yPos := y; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if HiWord(GetAsyncKeyState(VK_LBUTTON)) > 0 then begin Form1.Left := Form1.Left + X - xPos; Form1.Top := Form1.Top + Y - yPos; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz