AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechtsklick in Scrollbar einer TListBox abfangen

Ein Thema von Amateurprofi · begonnen am 18. Mär 2020 · letzter Beitrag vom 19. Mär 2020
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#1

Rechtsklick in Scrollbar einer TListBox abfangen

  Alt 18. Mär 2020, 03:24
Wenn ich in die vertikale ScrollBar einer TListBox rechtsklicke öffnet sich ein PopUp Menu mit den Einträgen
  • Bildlauf hier
  • Oberer Rand
  • Unterer Rand
  • Seite nach oben
  • Seite nach unten
  • Bildlauf oben
  • Bildlauf unten
Ich möchte anstatt folgendes Verhalten implementieren:
1) Wenn der Mauszeiger in die ScrollBar zeigt, soll ein Hinweis eingeblendet werden der angibt, welcher Eintrag der Position des Mauszeigers entspricht.
2) Bei Rechtsklick in die ScrollBar soll kein PopUp Menu erscheinen, sondern es soll, abhängig von der geklickten Position, folgendes passieren:
A) Oberer Pfeil Button geklickt : Zum Anfang der Liste scrollen
B) Unterer Pfeil Button geklickt : Zum Ende der Liste scrollen
C) Dazwischen geklickt: Zu dem Eintrag scrollen, der 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?
Wie kann ich auf Rechtsklick in die ScrollBar reagieren?
Angehängte Dateien
Dateityp: zip ListBoxTest.zip (720,8 KB, 1x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....

Geändert von Amateurprofi (18. Mär 2020 um 14:37 Uhr)
  Mit Zitat antworten Zitat
Alt 18. Mär 2020, 08:16     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Rechtsklick in Scrollbar einer TListBox abfangen

  Alt 18. Mär 2020, 09:55
@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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Alt 18. Mär 2020, 10:06     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.117 Beiträge
 
Delphi 12 Athens
 
#5

AW: Rechtsklick in Scrollbar einer TListBox abfangen

  Alt 18. Mär 2020, 10:19
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Rechtsklick in Scrollbar einer TListBox abfangen

  Alt 18. Mär 2020, 10:37
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.
Ja, das ist auch meine Befürchtung.
Aber vielleicht weiß ja doch irgend jemand eine Lösung.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.043 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Rechtsklick in Scrollbar einer TListBox abfangen

  Alt 18. Mär 2020, 10:35
Damit das Popupmenu nur bei Bedarf erscheint, muss TListBox.PopupMenu := nil sein bzw. kein Popupmenu der Listbox zugewiesen werden und kann bei Bedarf mit TPopupMenu.Popup(xPos, yPos) aufploppen.
Nein!
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz