Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Drag & Drop : Frage zu Drop |DONE!|
kiwicht - Fr 18.04.03 11:00
Titel: Drag & Drop : Frage zu Drop |DONE!|
Hallöle...
hab mit folgender Anweisung...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const sc_dragmove = $f012; begin OldPosX := button4.Left; OldPosY := button4.Top;
ReleaseCapture; TWinControl(Button4).Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0); end; |
... ein Button, was ich durch die Gegend ziehen kann. Funktioniert soweit auch ganz gut.
Nun wollt ich mit jener Anweisung...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.panel1DragDrop(Sender, Source: TObject; X, Y: Integer); begin if Source = Button4 then begin button4.Left := OldPosX; button4.Top := OldPosY; end; end; |
... dafür sorgen, das der Button wieder an seinen alten Ort "zurückkehrt" wenn ich ihn über dem Panel absetze.
Funktioniert leider nicht.
Kann mir einer weiterhelfen?
Vielen Dank schonma...
mfg
kiwicht
Motzi - Fr 18.04.03 12:27
Das OnDragDrop-Ereignis ist ein "VCL-DragDrop"-Ereignis (keine Ahnung wie ich das anders nennen soll), wird also vom VCL-DragDrop-Mechanismus ausgelöst. Du arbeitest jedoch mit einer Windows-Message!
ErnestoChe - Fr 18.04.03 12:49
Hi,
Einfach die Position des panels abfragen. Dann klappt beides in einer procedure.
so gehts:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const sc_dragmove = $f012; begin OldPosX := button4.Left; OldPosY := button4.Top;
ReleaseCapture; TWinControl(Button4).Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
if (Button4.Left >= panel1.Left - Button4.Width) and (Button4.Left <= panel1.Left + panel1.Width) and (Button4.Top >= panel1.Top - button4.Height) and (Button4.Top <= panel1.Top + panel1.Height) then begin button4.Left := OldPosX; button4.Top := OldPosY; end;
end; |
MFG
- Ernesto -
kiwicht - Fr 18.04.03 14:34
jup, danke euch Beiden.
Werd den Code von Ernesto ma umsetzen...
thx & mfg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!