Asombroso, yo me puse a investigar el comportamiento de los eventos con las teclas aceleradoras y me di cuenta que al activar una de estas ejecuta el codigo asosiado (en el ejemplo planteado el OnClick del Button) pero el Edit no perdía el foco por lo que nunca se ejecutaba el evento OnExit de este.
Habia pensado en el evento OnKeyDown del formulario de esta forma
Código Delphi
[-]
procedure TFAFact.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if (Shift = [ssAlt]) and (ActiveControl = Edit1) then
Edit1Exit(nil)
end;
pero de esta manera el codigo OnExit del edit se me ejecutaba dos veces pues como el edit se queda con el foco al salir de este se ejecuta nuevamente
La solución de roman me parece maravillosa por lo sencilla y efectiva
Muchas gracias a todos por la ayuda
¡Que fuera de nosotros sin los foros!
Siempre dos cabezas piensan mejor que una