Besser gleich einen Puffer verwenden, denn sonst gibt es ein Speicherleck.
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
Buffer: array [0..255] of Char;
begin
if GetKeyNameText(16, @Buffer[0], SizeOf(Buffer)) > 0 then
Edit1.Text := Buffer;
end;
Wenn man sich allerdings ernsthaft mit den Tastencodes beschaeftigen will, dann ist WM_KEYDOWN bzw WM_SYSKEYDOWN abzufangen der bessere Ansatz.