Einzelnen Beitrag anzeigen

TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: FormKeyDown fährt gegen die Wand...

  Alt 30. Mai 2006, 16:37
Also ich hab jetzt das noch nicht ausprobier, aber ich glaub das man das mit der Prozedur aufruft.
Kanns grad auch nicht ausprobieren, da Delphi auf diesem Rechner kaputt ist.
[edit]
Code:
Die Methode KeyDown ist eine als protected deklarierte Methode, die das Ereignis OnKeyDown eines Steuerelements implementiert.

procedure KeyDown(var Key: Word; Shift: TShiftState); dynamic;

Beschreibung

Die von TWinControl geerbte Methode KeyDown ruft lediglich die mit dem Ereignis OnKeyDown verbundene Behandlungsroutine auf. Sollen zusätzlich zu diesem Aufruf weitere Aktionen durchgeführt werden, überschreiben Sie KeyDown.
Der Parameter Key gibt die Taste an. Bei nicht alphanumerischen Tasten können Sie die gedrückte Taste mit den virtuellen Tastencodes der Windows-API feststellen. Weitere Informationen finden Sie in der Hilfedatei WIN32.HLP (Win32 Developer’s Reference) unter VkKeyScan und VkKeyScanEx.

Ein fensterorientiertes Steuerelement ruft KeyDown als Reaktion auf die Windows-Botschaft WM_KEYDOWN („Taste gedrückt“) auf. Der eigentliche Ablauf sieht so aus, daß die Botschaft zunächst an eine als private deklarierte Bearbeitungsroutine weitergegeben wird, die dann DoKeyDown aufruft. Stellt DoKeyDown fest, daß das Steuerelement das Zeichen bearbeiten soll, konvertiert sie die Botschaftsparameter und übergibt KeyDown den Tastencode und den Sondertastenstatus in den Parametern Key und Shift.

Die weitere Verarbeitung einer Taste kann verhindert werden, indem in der Methode KeyDown oder in der Ereignisbehandlungsroutine für OnKeyDown der Parameter Key auf Null gesetzt wird.
Der Parameter Shift gibt an, ob die Taste UMSCHALT, ALT oder STRG zusammen mit der betreffenden Taste gedrückt wurde. Shift ist eine Menge mit null, einem oder mehreren der folgenden Werten:

Status   Bedeutung

ssShift   Die UMSCHALT-Taste ist gedrückt.
ssAlt   Die Taste ALT ist gedrückt.
ssCtrl   Die Taste STRG ist gedrückt.
Hab ich grad in der D3-Hilfe gefunden.
[/edit]
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat