Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - ESC Taste abfangen, wenn ein Object den Focus hat??


Hagbard - Fr 30.04.04 09:02
Titel: ESC Taste abfangen, wenn ein Object den Focus hat??
Hallo Ihrs,

ich hab ein kleines Problem. Ich möchte die ESC-Taste abfangen (um damit mein Programm zu beenden). Leider funktioniert das Key-Press Event der Form nicht, wenn z.B. ein Button gerade den Fokus hat.

Wie kann Ich immer auf ein Key-Press reagieren??

Bin für jeden Tip sehr dankbar...

Viele Grüße,
Christian


Stauch - Fr 30.04.04 10:50

Habe ich in der Hilfe gefunden - aber nicht ausprobiert
Zitat:
Setzen Sie die Eigenschaft KeyPreview des Formulars auf True.

Tastaturereignisse können nun auf Formularebene verarbeitet werden. Es braucht nicht mehr für jede Komponente eine eigene Ereignisbehandlungsroutine für den Fall geschrieben werden, daß die Komponente zum Zeitpunkt der Benutzereingabe den Fokus hat. Das Formular kann alle Tastenanschläge empfangen, die auch die fokussierte Komponente empfangen kann. Außerdem lassen sich mit Hilfe von KeyPreview individuelle Tastaturereignis-Behandlungsroutinen für bestimmte Komponenten definieren.

KeyPreview bewirkt sozusagen einen automatischen Aufruf der Ereignisbehandlungsroutine auf Formularebene, sobald die einzelnen Ereignisbehandlungsroutinen auf Komponentenebene starten. Die Komponente sieht das Ereignis zwar noch, aber das Formular hat zuerst die Möglichkeit zur Behandlung. Beispielsweise könnten Sie eine Ereignisbehandlungsroutine für FormKeyDown schreiben, die eine Tastenzuordnung vornimmt. Die Ereignisbehandlungsroutine für ButtonKeyDown empfängt dann das zugeordnete (umdefinierte) Tastensignal anstelle des ursprünglich gesendeten.


Hoffe es hilft


Hagbard - Di 04.05.04 10:53

Super! Das Funktioniert..

Danke!