Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: TImage Doppelklick bei gesetzten OnClick Event

  Alt 1. Sep 2014, 06:51
bei jedem Doppel-Klick wird brav OnDblClick ausgelöst allerdings vorher wird OnClick noch ausgelöst. Es gibt damit also 2 Events die ausgelöst werden.
Wie erkenne ich dann im On*Click*, das ein Doppelklick durchgeführt wurde?
Du speicherst den TickCount beim OnClick und schaust beim nächsten OnClick, ob dieser innerhalb von zB 200ms liegt. Wenn ja, ist es ein Doppelklick.
Hmm. Das zweite OnClick wird doch gar nicht ausgeführt. OnClick wird nur beim 1.Click aufgerufen. Beim 2.Click wird OnDblClick aufgerufen (oder gar nichts, wenn kein entsprechendes Event zugewiesen wurde). Ergo *kann* man im OnClick keine Zeitmessung durchführen, anhand derer ein Doppelklick erkannt wird. Ein Dreifachklick würde gehen, aber das ist ja hier nicht gefragt.

Wie geht das also dann? Im OnClick muss ich einen Timer starten, der kurze Zeit später das eigentliche OnClick startet. Im OnDblClick resette ich den Timer und schalte ihn aus. Das Interval des Timers setze ich auf GetDoubleClickTime+20, also etwas länger als die Doppelklickzeit.

Allerdings würde ich mir die User Experience nochmal durch den Kopf gehen lassen: Vermutlich ist es keine gute Idee, bei einer Komponente sowohl Einfach- als auch Doppelklicks zu erlauben. Ziehen und Doppelklick kenne ich, aber 1x und 2x nicht.
  Mit Zitat antworten Zitat