Einzelnen Beitrag anzeigen

BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#10

AW: Draggen und klicken bei einem Objekt beides ermöglichen

  Alt 13. Sep 2010, 15:19
So - jetzt hab ichs.
Als erstes hab ich eine Variable eingeführt: HandledMouseClick. Sie enthält, wie der Name sagt, ob der Klick schon "ausgeführt" wurde.
Im OnMouseDown wird geprüft, ob das Item meiner Liste schon markiert ist, wenn nicht, dann wirds erstmal markiert.
Delphi-Quellcode:
if not (Sender as TVisualFile).Selected then
begin
  SelectItem(Sender);
  HandledMouseClick:=True;
end;
Im OnMouseMove wird geprüft, ob die Maus sich weiter als ein bestimmter wert bewegt hat. Wenn ja, dann wird HandledMouseClick auf True gesetzt und BeginDrag ausgeführt. Unabhängig davon, welchen Wert HandledMouseClick davor hatte.
Im OnMouseUp wird wenn HandledMouseClick false ist das Item angewählt.(Also nur, wenn es nicht schon im MouseDown angewählt wurde und kein Dragging stattfand).
Danach wird HandledMouseClick wieder auf false zurückgesetzt.

Verhält sich so, wie es sich richtig anfühlt.
Benjamin
  Mit Zitat antworten Zitat