Hola a todos,
El evento no deja de ser un método, por lo tanto, puedes llamarlo como cualquier otro método. De hecho, el método "Click" de "TControl" al final termina llamando al evento "OnClick", si este ha sido definido previamente. Dicho esto, es posible algo como lo siguiente:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
Key: Word;
begin
Key := 49;
Self.FormKeyDown(nil, Key, []);
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage(Chr(Key));
end;
... sin embargo, aunque lo anterior sea posible, no es lo más recomendable. Lo recomendable sería que la validación que tratas de hacer esté fuera del evento "KeyDown", en otro método, función o procedimiento, y, que uses dicha validación tanto en el evento "KeyDown", como en otro sitio en que la necesitases. En definitiva, se trata de desligar la validación del evento, precisamente, para no tener que llamar a dicho evento nosotros mismos, "inventándonos" argumentos, con los posibles problemas que eso puede suponer.