![]() |
Rechtsklick in Scrollbar einer TListBox abfangen
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich in die vertikale ScrollBar einer TListBox rechtsklicke öffnet sich ein PopUp Menu mit den Einträgen
1) Wenn der Mauszeiger in die ScrollBar zeigt, soll ein Hinweis eingeblendet werden der angibt, welcher Eintrag der Position des Mauszeigers entspricht.Den ersten Teil (Hinweis einblenden) habe ich gelöst. (Siehe Testprojekt) Beim zweiten Teil (Scrollen) habe ich bisher keinen Lösungsansatz. Fragen: Wie verhindere ich, dass ein PopUp Menu geöffnet wird? |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
@Frühlingsrolle:
Leider bringt mich das aber nicht weiter. 1) Das MouseDown wird nur bei einem Klick in den Clientbereich der ListBox ausgelöst, nicht aber bei einem Klick in die ScrollBar der ListBox. 2) Es geht nicht darum, herauszufinden, ob einer der Buttons der Scrollbar gedrückt ist, weil ich auch ohne die ScrollBarInfo weiß, dass die nicht gedrückt sind, wenn ich sie mit der rechten Maustaste klicke. Mir geht es darum 1) Auf einen Rechtsklick in die ScrollBar der ListBox zu reagieren, d.h. ich möchte wissen, welches Event bei einem Rechtsklick in die ScrollBar der ListBox ausgelöst wird. 2) Zu verhindern, dass das beschriebene PopUp Menu geöffnet wird. Trotzdem: Danke für den Versuch zu helfen. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Ich fürchte, das Popup des Scrollbar-Teils wird von Windows selbst erstellt und angezeigt. Es gibt meines Wissens keine Möglichkeit, das zu verhindern oder zu beeinflussen.
|
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Zitat:
Bei ListBox.PopUpMenu kann man ein eigenes PopUp-Menu eintragen, das dann bei Rechtsklick in den Clientbereich der Listbox angezeigt wird. Und mit ListBox.OnContextPopUp kann man steuern, ob es automatisch geöffnet wird oder ob man in ListBoxContextPopUp dafür sorgt, dass es an einer bestimmten Position (oder auch gar nicht) geöffnet wird. Mit dem PopUp Menu, das ich beschrieben habe hat das nichts zu tun. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Zitat:
Aber vielleicht weiß ja doch irgend jemand eine Lösung. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Zitat:
Behandle WM_NCRBUTTONDOWN der ScrollBar! schicke Result := 1 zurück und gut ist. Gerade getestet und bei mir kommt kein Menu. Einzige Einschränkung du musst dich um das Zeichnen der Scrollbar selber kümmern. Sprich mit vollen Zugriff darauf. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
@venice2:
Vielen herzlichen Dank für den Tipp. Funktioniert einwandfrei. Zu dem Hinweis "ScrollBar selbst zeichnen": Bei mir wird die korrekt gezeichnet. Falls jemand ähnliches realisieren möchte, hab ich in #1 das Testproject hochgeladen. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Zitat:
Wie du schreibst scheint es ja bei dir jetzt zu funktionieren. :thumb: An den Tooltips (Hints) musst du aber noch was tun die stimmen mit den Einträgen nicht überein. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Zitat:
Wenn die Maus in die ScrollBar zeigt, wird angezeigt, welcher Eintrag der Position des Mauszeigers entspricht. Wenn ich dann einen Rechtsklick in die ScrollBar mache, wird die Liste so gescrollt, dass der Eintrag, der im Hint gezeigt wurde, als oberster Eintrag gezeigt wird. Ausnahmen: Die letzten Einträge können ev. nicht ganz nach oben gescrollt werden. Kannst du etwas genauer beschreiben, was unter "die stimmen mit den Einträgen nicht überein" zu verstehen ist. |
AW: Rechtsklick in Scrollbar einer TListBox abfangen
Ein Bild scheint hier angebracht zu sein.
Es ist der Eintrag 9 Selektiert und die Maus befindet sich in diesen Bereich allerdings wird hier der Eintrag 821 angezeigt. Das passt irgendwie nicht zusammen. Meine Meinung. Ist aber möglich das es dir so reicht bzw. in Ordnung für dich ist. Deine beschriebene Methode (Ergebnis) funktioniert jedoch korrekt. Vielleicht umbenennen damit man weis um was es geht? Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 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