![]() |
TControlList.OnItemClick Problemstellung
Hallo,
ich habe eine Form mit einer TControlList drauf und OnItemClick definiert. Außerdem hab' ich gleich mal das erste selektiert, damit Tastaturnutzer gleich mit den Pfeiltasten darin navigieren können. Nur: für die armen Mausbenutzer bedeutet das, dass ein Klick auf den ersten Listeneintrag ignoriert wird, da im Code zur Mausbehandlung des Steuerelements leider geprüft wird ob sich das selektierte Element geändert hat, was es ja nicht hat. Hat jemand eine Idee wie ich beide Fraktionen zufrieden stellen kann? Grüße TurboMagic |
AW: TControlList.OnItemClick Problemstellung
Wenn du den ersten schon vorselektierst, würde ich auch den entsprechenden Code ausführen der bei Klick/Änderung ausgeführt werden würde.
|
AW: TControlList.OnItemClick Problemstellung
Danke für die Idee, nur verstehe ich die noch nicht ganz. Soll ich das OnItemClick aufrufen aber ohne meinen Handler Inhalt auszuführen?
Oder etwa mit meinem Handler Inhalt? Letzteres wäre für meine Anwendung jedoch unpassend... Grüße TurboMagic |
AW: TControlList.OnItemClick Problemstellung
Ich vermute, das Problem entsteht auch, wenn der User mit den Tasten navigiert und den dann ausgewählten Eintrag mit der Maus anklickt?
|
AW: TControlList.OnItemClick Problemstellung
Zitat:
|
AW: TControlList.OnItemClick Problemstellung
Hallo,
ich prüfe mal noch Uwe's Vermuting. Aber der Tipp gleich den Handler auszuführen ist definitiv nicht was ich will. Die Aktion hinter dem selektierten Eintrag soll ja entweder beim Draufklicken oder wenn jemand Enter drückt ausgeführt werden. Grüße TurboMagic |
AW: TControlList.OnItemClick Problemstellung
Zitat:
Nur was hilft mir das? Hm... Wenn ich da in den Vergleich eingreifen könnte? Andere Idee: man verschiebe den Eventhandlerinhalt in ein OnTimer Event und hänge sich auch noch in das OnClick Ereignis rein. Dort und im OnItemClick startet man den Timer und wenn nach Ablauf des Timers nicht beide Events ausgelöst worden sind, sondern nur OnClick, dann weiß man, dass der Benutzer das gerade schon selektierte Element angeklickt hat. Dann könnte man den Eventhandlerinhalt mit der Info aufrufen. Grüße TurboMagic |
AW: TControlList.OnItemClick Problemstellung
Ach, warum einfach, wenn's auch komplizuert geht? ;-)
Der betreffende Dialog dient ja nur zur Selektion einer auszuführenden Aktion. Wird eine angeklickt oder per Tastatur gewählt und mit Enter bestätigt, wird der Dialog mittels ModalResult := mrOK geschlossen. Der Aufrufer des Dialogs ruft dann eine Getter Methode auf, die ermittelt welcher Eintrag selektiert wurde. Da sind jetzt auch nicht hunderte zu erwarten, daher kann man das mit einer Schleife noch zeitlich brauchbar tun. Die Lösung ist damit, für die Mausverarbeitung nicht das OnItemClick Event sondern einfach das OnClick Event zu benutzen :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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