Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Blockierung eines KeyDown Events durch Komponenten
HenryHux - Sa 16.04.11 15:50
Titel: Blockierung eines KeyDown Events durch Komponenten
Hi,
in einem Programm habe ich auf der Form ein KeyDown Event. (KeyPreview ist true).
Auf die Pfeiltasten sind Aktionen gelegt, was auch an sich klappt.
Doch habe ich auf der Form noch ein RichEdit, welches Probleme macht.
Und zwar wenn ich jetzt die linke oder rechte Pfeiltaste drücke, geht der Cursor ersteinmal durch das gesamte RichEdit, bevor dann das KeyDown Event ausgelöst wird.
Habe schon vieles versucht - die Box disabled, beim OnEnter den Focus wieder abgegeben oder ihr ein eigenes KeyDown Event gegeben, was dann aber gelegentlich doppelt ausgelöst wird(zusammen mit dem FormEvent).
Weiß jemand Rat?
Liebe Grüße
jaenicke - Sa 16.04.11 16:00
Du musst nur zusätzlich die Verarbeitung im RichEdit unterdrücken:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TYourForm.YourRichEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key in [VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN] then Key := 0; end; |
Das FormKeyDown-Event wird aber bei KeyPreview auf True immer sofort ausgelöst. :gruebel:
HenryHux - Sa 16.04.11 16:14
Vielen Dank, das hab ich gesucht.
Klappt jetzt so wie es soll.
lg
HenryHux - So 17.04.11 13:46
Hi,
leider habe ich das Problem immer noch bzw. schon wieder.
Um das mal zu veranschaulichen habe ich schnell was zusammengeklickt -> Siehe Anhang.
Und zwar wenn man in das Edit Feld klickt, reagiert die Form auf einen Key-Anschlag.
Doch wenn man auf einen Button klickt, und danach einen der Pfeiltasten drückt, werden nur die Buttons durchgeschaltet.
Trotz KeyPreview. Zwar könnte ich für jeden Button ein eigenes Event anlegen, aber in meinem Projekt habe ich mehr als nur 3 Buttons =)
Mit "normalen" Tasten klappt es zwar, mir geht es aber um die Pfeiltasten.
Lg
Beispiel (zip, 83.95 KB)
HenryHux - So 17.04.11 14:16
Ok, das klappt für alle Controls, bis auf die, die in GroupBoxen oder Panels sind.
Kann ich das auch regeln ohne mir eine eigene Komponente abzuleiten?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!