Und wann wird das gewünschte 'OnClick' Ereignis ausgelöst?
Ich find meine Lösung mit dem Timer echt einfach:
Delphi-Quellcode:
Procedure TMyForm.FormCreate(Sender : TObject);
Begin
DeferredClickTimer.Enabled := False;
DeferredClickTimer.Interval := GetDoubleClickInterval()+50; // Ich glaub, die Methode heißt so.
End;
Procedure TMyForm.MyControlClick(Sender : TObject);
Begin
DeferredClickTimer.Enabled := False;
DeferredClickTimer.Enabled := True;
End;
Procedure TMyForm.MyControlDoubleClick(Sender : TObject);
Begin
DeferredClickTimer.Enabled := False;
ExecuteTheDoubleClickMethod();
End;
Procedure TMyForm.DeferredClickTimerTimer(Sender : TObject);
Begin
DeferredClickTimer.Enabled := False;
ExecuteTheClickMethod();
End;
Ein Click startet einen Timer, der das Click-Ereignis -leider verzögert- auslöst.
Der Doppelklick stoppt den Timer. Ich glaube, ohne Timer geht es nicht, denn ich muss ja wissen, ob nich doch das 2.Click vom Doubleclick kommt.