Hallo,
um den Fallen einer geschachtelten IF-Anweisung zu entkommen, kann man auch eine CASE-Anweisung einsetzen:
Delphi-Quellcode:
procedure TfrmSettings.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
const
key_ValNeu = scCtrl or Ord('N');
key_ValDel = scCtrl or VK_DELETE;
key_KatNeu = scCtrl or scAlt or Ord('N');
key_KatMoveRunter = scCtrl or VK_DOWN;
key_KatMoveHoch = scCtrl or VK_UP;
key_Close = VK_ESCAPE;
begin
case {Menus.}ShortCut(Key, Shift) of
key_ValNeu:
mValNeu.Click;
key_ValDel:
mValDel.Click;
key_KatNeu:
mKatNeu.Click;
key_KatMoveRunter:
if ActiveControl = lbKat then
mKatMoveRunter.Click;
key_KatMoveHoch:
if ActiveControl = lbKat then
mKatMoveHoch.Click;
key_Close:
Close;
end;
end;
Gruß Hawkeye