Autor |
Beitrag |
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 20:18
Hallo,
ich nutze Delphi 2007 Pro.
Was mir beim TreeView aufgefallen ist: Wenn ich auf diese Komponente zur Laufzeit einen Doppelklick ausführe, dann wird immer erst die Methode OnClick ausgeführt. Ist das bei dieser Komponente so gedacht? Wie kann ich dann in OnClick herausfinden, ob nich doch tatsächlich ein Doppelklick gemacht wurde?
Thx
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 20:59
Das ist generell so, aus einem einfachen Grund:
Wie soll denn beim ersten Klick eines Doppelklicks entschieden werden ob es ein Doppelklick wird oder nicht? Das weißt du erst nach dem zweiten. Und aus dem Grund ist der erste Klick zunächst auch ein einfacher Klick.
|
|
platzwart 
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 21:16
Indem ein OnClick/OnDblClick erst dann aufgerufen wird, nachdem die Zeit für die Unterscheidung Einfach-/Doppelklick abgelaufen ist...
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 29.05.08 21:19
Das ist aber nicht das was das OnClick bezweckt, wenn du das so haben willst, dann musst du das selbst programmieren. Deinen Quelltext erst nach dem Timeout für den Doppelklick ausführen, wenn in der Zeit keiner ausgeführt wurde.
Ich habe das allerdings noch nie gebraucht. Ich frage mich eigentlich eher, ob dein Konzeot gut ist. Nichtsdestotrotz ist jedenfalls das vordefinierte OnClick so nicht konzipiert, weil es in 99,9% der Fälle nicht so gebraucht wird, wie du es dir vorstellst. Sonderfälle musst du eben selbst programmieren.
|
|
platzwart 
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Do 29.05.08 21:52
Naja, es geht um Bildverarbeitung. Jeder Knoten repräsentiert ein Bild. Klickt man einmal drauf, wird es bloß angezeigt, klickt man doppelt drauf, so wird es analysiert... Wäre bloß unschön, dass durch Anklicken mit linker / rechter Maustaste zu unterscheiden...
Anderes Bsp (kein TreeView):
Windows Lautstärkeanzeige in der TNA: Einfacher Klick: Sound lauter/leider. Doppelklick: detailiertes Menü...
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 30.05.08 13:38
platzwart hat folgendes geschrieben: | Windows Lautstärkeanzeige in der TNA: Einfacher Klick: Sound lauter/leider. Doppelklick: detailiertes Menü... |
Da wird ja auch erst ewig gewartet, bevor das kleine Fenster angezeigt wird. Aber so etwas wird wirklich sehr selten benötigt. Notfalls könnte das Lautstärke-Fenster sogar gleich wieder geschlossen werden, wenn ein Doppelklick ausgeführt wurde.
|
|
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Fr 30.05.08 14:49
Dafür könntest du im OnClick 'nen Timer starten, den du im OnDblClick wieder deaktivierst. Wenn der Timer zuschlägt führst du das aus, was du beim einfach Klick haben möchtest.
|
|
|