![]() |
SpeedButton und OnDblclick funktioniert nicht!
Hi Leute,
irgendwie bin ich zu blöd heute. Ich habe einen SpeedButton in meiner Anwendung, mit dem ich über OnClick ein Ereignis auslöse. Soweit so gut. Wenn ich hier aber über OnDblClick ein Ereignis auslösen will, klappt das nicht. Ich habe schon alles mögliche versucht. Aber er reagiert einfach auf meinen Doppelclick nicht. Source: Procedure TForm2.SpeedButton1DblClick(Sender: TObject); Begin showmessage('Klappt.'); end; Im Objektinspector habe ich SpeedButton1DblClick in OnDblClick eingetragen. Aber es tut sich einfach nichts. Bei OnClick klappt es. Ich möchte den Button aber gerne mit 2 Funktionen ausstatten. Was mache ich hier verkehrt??? |
Re: SpeedButton und OnDblclick funktioniert nicht!
Liegt wohl daran, das der erste Klick(von deinem Doppelklick) beim loslassen wieder "vergessen" wird, sieht man ja auch am Button der wieder ausrastet.
Stell mal GroupIndex auf irgendwas ausser 0, AllowAllUp auf false und Down auf true...dann siehst du das es geht.... frag mich nicht warum das so ist.. borland halt MfG BTW: Du könntest das ganze aber easy selbst machen, mit nem timer |
Re: SpeedButton und OnDblclick funktioniert nicht!
Hi,
Bei mir geht das mit dem dblclck auch ned. Ich habe mir mal eine komplizierte lösung ausgedacht... :coder: Also Eine Global variable BbClick : Integer.
Delphi-Quellcode:
Das interval des Timers auf ca 500 ms setzt und fertig...das ist vieleicht nicht die eleganteste lösung aber sie funktioniert! procedure TForm1.SpeedButton1Click(Sender: TObject); begin inc(BbClick); if BbClick mod 2 = 0 then showmessage('DbCick'); end; procedure TForm1.FormCreate(Sender: TObject); begin BbClick := 0; end; procedure TForm1.Timer1Timer(Sender: TObject); begin BbClick := 0; end; Mfg ReDoX |
Re: SpeedButton und OnDblclick funktioniert nicht!
Zitat:
Äusserst komisch das... Diese Lösung hat nur den Nachteil, das das Ereignis OnClick ebenfalls aufgerufen wird. Die Lösung von ReDoX umgeht allerdings auch dieses Problem. Deshalb sollte man die Variante wählen, will man nicht das Onclick Ereignis auch haben. Im Test hat sich übrigens ein Intervall von 750 bewährt. Many Thanks Framige |
Re: SpeedButton und OnDblclick funktioniert nicht!
Also das mit dem Timer mag ja meistens funktionieren, aber das Wahre ist es auch nicht. Es könnte ja passieren, dass zwischen dem ersten und dem zweiten Klick des Doppelklick der Timer ausgelöst wird, und dann die globale Variable wieder rückgesetzt wird. Da hätte der Benutzer zwar doppelt geklickt, aber das Programm erkennt das nicht. :?
MfG Binärbaum |
Re: SpeedButton und OnDblclick funktioniert nicht!
Wie wäre es mit GetTickCount?
Delphi-Quellcode:
Ich denke, auf QueryPerformanceCounter kann man hier verzichten :wink: .
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin if GetTickCount - Ticks < 500 then ShowMessage('Doppelklick'); Ticks := GetTickCount; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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