Hola,
A ver si esto puede serte de alguna utilidad. Dices que en el evento OnExit de los ComboBox validas que lo escrito en los mismos sea correcto, desde el punto de vista de la lógica de tu programa.
Utilizas el evento OnKeyPress del formulario para cerrar el mismo si el usuario pulsó la tecla Escape. Entonces, me pregunto, ¿no podrías hacer la comprobación del contenido de los ComboBox en una determinada función, de tal modo que, antes de que se cierre el formulario, puesto que el usuario pulse la tecla Escape, se comprobara lo escrito en los ComboBox?
Yo imagino algo así:
Código Delphi
[-]
function TForm1.ComprobarOk : boolean;
begin
if (comboBox1 = '') or (comboBox2 = '') then
Result := false
else
Result := true;
end;
procedure TForm1.OnKeyPress(Key: Word);
begin
if (Key = Escape) then
begin
if ComprobarOk then
Close;
else
ShowMessage('Revisa los ComboBox');
end;
end;
Más o menos algo así, quiero decir. ¿Qué me dices? ¿me he perdido algo?
Por cierto, aprovechando la coyuntura: felicidades
vtdeleon, por tu cumpleaños.
Nota: Se me ocurre antes de enviar este mensaje que tal vez pudieras realizar la comprobación de los datos en el evento "OnClose" u "OnCloseQuery" del formulario en cuestión.
Cualquier cosa que se te ocurra respecto de lo que he dicho no dejes de hacerla saber aquí mismo por ver si al cabo, estoy seguro, consigues solucionar el tema de alguna manera.