Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: FormKeyDown erkennt vk_Left... nicht

  Alt 28. Mai 2008, 21:47
Zitat:
Die aufgezeigten Lösungen funktionieren mit den verschiedensten Controls
Welche Lösungen hast du probiert? WM_GETDLGCODE hätte eigentlich die Lösung sein müssen.

Delphi-Quellcode:
private
    procedure FWMGETDLGCODE(var Msg : TWMGetDlgCode); message WM_GETDLGCODE;
[...]
procedure TYourForm.FWMGETDLGCODE(var Msg : TWMGetDlgCode);
begin
  inherited;
  Msg.Result := Msg.Result or DLGC_WANTARROWS;
end;
Bei mir funktioniert folgendes übrigens (Delphi7):
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_LEFT) then
    caption := 'links'
  else if (Key = VK_RIGHT) then
    caption := 'rechts';
end;
Allerdings nur wenn kein Control den Focus hat (ansonsten gehen die Tasten an das Control (selbst mit KeyPreview := True))

mit
ActiveControl := nil; kannst du den Focus von den Controls nehmen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat