Entwickler-Ecke
Windows API - Doppelklick verweigern, alles als Klick
Kroko - Di 27.03.07 13:28
Titel: Doppelklick verweigern, alles als Klick
Kann man irgendwie den Puffer bzw. das Intervall für eine Doppelklick so manipulieren, dass prakatisch auf meiner Form jeder Doppellick als zwei Klicks ankommt und es keinen Doppelklick mehr gibt?
IngoD7 - Di 27.03.07 14:50
Windowsweit mit SetDoubleClickTime.
Nur für die eigene Anwendung weiß ich jetzt nicht.
Vielleicht kannst du aber ja auch den Doppelklick in Application.OnMessage abfangen ...?
uwewo - Di 27.03.07 15:51
Vielleicht brauche ich dazu ein konkretes Beispiel, aber kannst Du nicht einfach
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormDblClick(Sender: TObject); begin FormClick(Sender); end; |
?????
Jakob Schöttl - Di 27.03.07 16:45
| Zitat: |
| ...f meiner Form jeder Doppellick als zwei Klicks ankommt ... |
dann müsste es heißen:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormDblClick(Sender: TObject); begin FormClick(Sender); FormClick(Sender); end; |
was einfacheres fällt mir auch nicht ein leider...
JayEff - Di 27.03.07 17:08
Bei jedem onDblClick-Ereignis kommt der erste Klick als normales onClick an, das heißt, Jakobs wäre Doppelt-gemoppelt :)
(habs grad ausprobiert...)
Robinator - Di 27.03.07 17:10
JayEff hat folgendes geschrieben: |
Bei jedem onDblClick-Ereignis kommt der erste Klick als normales onClick an, das heißt, Jakobs wäre Doppelt-gemoppelt :)
(habs grad ausprobiert...) |
Hmm, das sollte aber eigentlich nicht so sein, zumindest nach meinem Verständniss
gruss, rob
Jakob Schöttl - Di 27.03.07 17:11
oh ja, hast recht! ich dachte doppelklick würde von Windows automatisch von einfachem Click unterschieden.
JayEff - Di 27.03.07 17:12
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var i: integer;
Procedure TForm1.FormDblClick(Sender: TObject); Begin inc(i, 2); Label1.Caption := IntToStr(i); End;
Procedure TForm1.FormClick(Sender: TObject); Begin inc(i); Label1.Caption := IntToStr(i); End; |
Bei mir wird über einen Doppelklick i um 3 erhöht: einmal durch einen einzelnen, und einmal durch den doppelten Klick :gruebel:
Jakob Schöttl - Di 27.03.07 17:16
ja, hast schon recht...
ich habs zwar mit showmessage ausprobiert, und da geht auch beim einfachen klick schon das fenster auf
Robinator - Di 27.03.07 17:19
Ich dachte, dass, sobald ein OnDblClick event zugewiesen ist, das OnClick event mit Latenz feuert und zwar nur dann, wenn im festgelegten Interval kein weiterer Klick stattgefunden hat. Es kann natürlich sein, dass ich mich irre (wenn ich mir dein Beispiel angucke, liegt es sogar ziehmlich nahe, dass ich mich Irre ;) )
gruß
Motzi - Di 27.03.07 21:04
Robinator hat folgendes geschrieben: |
| Ich dachte, dass, sobald ein OnDblClick event zugewiesen ist, das OnClick event mit Latenz feuert und zwar nur dann, wenn im festgelegten Interval kein weiterer Klick stattgefunden hat. Es kann natürlich sein, dass ich mich irre (wenn ich mir dein Beispiel angucke, liegt es sogar ziehmlich nahe, dass ich mich Irre ;) ) |
Dem ist nicht so - auch wenn es auf den ersten Blick naheliegend erscheint. Allerdings würde dann jeder einzelne Klick (je nach Einstellung) mit recht großer Verzögerung weitergegeben werden, was dann auch wieder ziemlich blöd wäre.. ;)
Gruß, Motzi
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!