Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
Delphi 11 Alexandria
|
AW: TControlList
7. Apr 2024, 09:40
Ich würde dir raten, dafür OnItemDblClick zu verwenden. Dann bekommst du keine Konflikte.
Ansonsten kannst du im OnKeyDown das OnClick deaktivieren und im OnKeyUp wieder aktivieren. Das Problem ist aber, dass OnClick immer ausgelöst wird, auch wenn gar kein Eintrag angeklickt wurde. Wenn also per Tastatur (oder voreingestellt) ein Eintrag ausgewählt wurde, wird der Dialog bei einem Klick außerhalb der Items dennoch geschlossen. OnItemClick wiederum wird nur ausgelöst, wenn sich der Eintrag ändert.
Leider wurden mit dieser Komponente wieder Inkonsistenzen hinzugefügt:
OnItemClick löst nur bei einem Wechsel des Eintrags aus. OnItemDblClick löst auch bei einem Doppelklick auf den schon ausgewählten Eintrag aus. Warum kann man das nicht bei neuen Komponenten sauber lösen? Man könnte z.B. nur ein OnMouseClick anbieten, das nur auf die Maus reagiert, um die Logik von den alten OnClick Ereignissen abzugrenzen. Aber zumindest sollte die Logik bei zwei neuen Klickereignissen sich nicht unterscheiden...
Sebastian Jänicke Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
Geändert von jaenicke ( 7. Apr 2024 um 09:46 Uhr)
|