Alt, Strg, Umschalt, Entf usw. haben kein
ASCII-Äquivalent, das heißt, sie erzeugen kein Zeichen. OnKeyPress fängt nur Zeichen ab (Ich nehme mal an, dass vor dem Auslösen dieses Events noch TranslateMessage ausgeführt wird).
Du brauchst OnKeyDown, dass mit virtuellen Tastencodes arbeitet:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
label1.Caption:=inttostr(key);
end;