No me percate de que estabamos hablando de Lazarus
Acabo de hacer esta sencilla prueba y me funciona bien:
Código Delphi
[-]uses
LCLType;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_NUMPAD0 then
ShowMessage('VK_NUMPAD0');
if Key = VK_MULTIPLY then
ShowMessage('VK_MULTIPLY');
end;
Obvio que es necesario tener KeyPreview a True