Pues yo tengo esto:
procedure TfrmAlbaranes.FormKeyPress(Sender: TObject; var Key: Char);
begin
MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
ShowMessage('lolo');
end;
Lo he puesto para probarlo tal y como tu me dices,
la propiedad Keypreview del formulario frmAlbaranes a TRUE y si pulso cualquier tecla me funciona al pelo:
ejemplo: pulso 2 y me sale :
2 has been pressed y despues 'lolo'.
Pero si pulso el intro se lo pasa por los cojones, puede ser que sea alguna propiedad que he tocado por ahi?.
aunque no creo. voy a reiniciar!!.
P.D. Uso windows 2000 aunque creo que eso tendra que ver mas bien poco.