![]() |
Objekte verschieben
Hi ich habe eine Frage bzgl. dem verschieben von Objekten.
Ich möchte ein Programm schreiben, indem eine checkbox, wenn sie checked=true ist, der Maus folgt (solange diese im Panel ist, in dem sich die checkbox befindet). Wenn ich die Checkbox wieder deaktiviere, soll die checkbox dort bleiben, wo sie zuletzt war. Ich habe das so versucht aber klappt überhaupt nicht:
Delphi-Quellcode:
Problemansatz: was ich denke, ist, dass die Funktion GetCursorPos die Position des Totalen Bildschirms angibt, der Left bzw Top von der CHeckbox aber nur im Panel Funktioniert..nur ich habe keine Ahnung wie ich das ändern kann
global: dragaktiv:Boolean;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var CursorPos:TPoint; begin if Dragaktiv=True then begin GetCursorPos(CursorPos); Centercheck.Left:=Cursorpos.X; Centercheck.Top:=Cursorpos.Y; end; end; procedure TForm1.CenterCheckClick(Sender: TObject); begin if Centercheck.Checked=False then Dragaktiv:=True; else Dragaktiv:=False; end; |
Re: Objekte verschieben
Hi,
Du bekommst in den Parametern des MouseMove Ereignisses die relativen X und Y Werte ;) Gruß Neutral General |
Re: Objekte verschieben
hm okay und das heißt?.. :idea:
(sprich ich weiß nicht wie ich das ändern soll^^) |
Re: Objekte verschieben
Delphi-Quellcode:
Gruß
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X {1},
Y {2}: Integer); begin if Dragaktiv then // besser als "Dragaktive = true" begin Centercheck.Left:= X {1}; Centercheck.Top := Y {2}; end end; Neutral General |
Re: Objekte verschieben
okay also die checkbox bewegt sich immerhin schonmal mit ;) thx
PROBLEM aber: Sobald mein Mauscursor in den Panel kommt, indem die Checkbox ist (also sobald die maus nichtmehr den normalen TForm untergrund hat) bewegt sich die checkbox nicht mehr, obwohl sie es genau dann tun sollte^^ |
Re: Objekte verschieben
Dann musst du das MouseMove Event des Panels benutzen;)
|
Re: Objekte verschieben
klingt logisch, ist logisch und funktioniert sogar :D thx :thumb:
und wo wir gleich dabei sind: das mit der checkbox ist iwie blöd, wenn ich das ganze so machen will, dass das Objekt nur dann der Maus folgt, wenn ich sagen wir mal "shift" gedrück habe? schon n bisschen rumgespiel, aber das geht nicht.. hat da Irgendjemand eine Idee??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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