AGB  ·  Datenschutz  ·  Impressum  







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

TControlList.OnItemClick Problemstellung

Ein Thema von TurboMagic · begonnen am 17. Apr 2024 · letzter Beitrag vom 19. Apr 2024
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

TControlList.OnItemClick Problemstellung

  Alt 17. Apr 2024, 19:57
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
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
197 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TControlList.OnItemClick Problemstellung

  Alt 17. Apr 2024, 21:38
Wenn du den ersten schon vorselektierst, würde ich auch den entsprechenden Code ausführen der bei Klick/Änderung ausgeführt werden würde.
Ansgar Becker
https://www.heidisql.com
Wenn du loslässt, hast du zwei Hände frei.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#3

AW: TControlList.OnItemClick Problemstellung

  Alt 17. Apr 2024, 22:09
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

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

AW: TControlList.OnItemClick Problemstellung

  Alt 18. Apr 2024, 00:12
Ich vermute, das Problem entsteht auch, wenn der User mit den Tasten navigiert und den dann ausgewählten Eintrag mit der Maus anklickt?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
197 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TControlList.OnItemClick Problemstellung

  Alt 18. Apr 2024, 09:54
Soll ich das OnItemClick aufrufen aber ohne meinen Handler Inhalt auszuführen?
Oder etwa mit meinem Handler Inhalt?
Auch den Click-Handler ausführen. In der Annahme dass das gleiche passiert wenn man mit der Tastatur navigiert.
Ansgar Becker
https://www.heidisql.com
Wenn du loslässt, hast du zwei Hände frei.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#6

AW: TControlList.OnItemClick Problemstellung

  Alt 18. Apr 2024, 18:14
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
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#7

AW: TControlList.OnItemClick Problemstellung

  Alt 19. Apr 2024, 11:00
Ich vermute, das Problem entsteht auch, wenn der User mit den Tasten navigiert und den dann ausgewählten Eintrag mit der Maus anklickt?
Habe das eben geprüft und ja: du hast Recht!
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
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#8

AW: TControlList.OnItemClick Problemstellung

  Alt 19. Apr 2024, 11:10
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
Grüße
TurboMagic
  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 23:19 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