Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi KeyPress von Listbox überschreiben (https://www.delphipraxis.net/137556-keypress-von-listbox-ueberschreiben.html)

MatthiasR 23. Jul 2009 11:48


KeyPress von Listbox überschreiben
 
Irgendwie stehe ich gerade auf dem Schlauch: ich möchte in einer eigenen von TCustomListBox abgeleiteten Komponente gerne einbauen, dass man bei aktiviertem Multiselect einzelne Listbox-Einträge mittels Leertaste markieren kann (bzw. Markierungen wieder aufheben).

Soweit, so gut. Ich habe nun einfach mal die Prozedur "KeyPress" überschrieben und meine Zusatzfunktionalität eingebaut. Hat aber nichts gebracht, da die Funktion nicht aufgerufen wird, wenn ich in einer aktiven Listbox auf der Tastatur rumklimper.

Als zweiten Ansatz habe ich dann die Zusatzfunktionalität in eine eigene Prozedur vom Typ TKeyPressEvent gelegt, den Konstruktor überschrieben und innerhalb dessen dann dem Ereignis OnKeyPress diese neue Prozedur zugewiesen. Das funktionierte dann auch, jedoch auch nur so lange, wie niemand auf die Idee kommt, im Objektinspektor dem OnKeyPress-Event einer solchen Listbox einen neuen Eventhandler zuzuweisen. Logisch, es kann ja immer nur ein Eventhandler angegeben werden.

--> Wie gesagt, irgendwie stehe ich grade echt mächtig auf dem Schlauch, wie ich das denn "richtig" anstellen muss, damit das klappt :gruebel: . Wer kann helfen?

GHorn 23. Jul 2009 13:16

Re: KeyPress von Listbox überschreiben
 
Nimm doch KeyDown oder (besser) KeyUp.

Gerald

MatthiasR 23. Jul 2009 13:49

Re: KeyPress von Listbox überschreiben
 
Ich denke nicht, dass das mein "Problem" lösen würde, da sich die geschilderten Punkte 1-zu-1 auch auf KeyDown/KeyUp übertragen lassen. Es geht mir eher generell darum, wie ich vorgehen muss, um in meiner eigenen von TCustomListbox abgeleiteten Komponente eine Zusatzfunktionalität einzubauen, wenn eine Taste (hier die Leertaste) gedrückt wird. Mir ist die Vorgehensweise gerade einfach nicht so recht klar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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