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.