Ver Mensaje Individual
  #4  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En verdad das pocos datos, senda. Pero supongo que tu situación es esta:

Abres el formulario con ShowModal y el botón Aceptar tiene puesta su propiedad ModalResult en mrOk. Luego de las comprobaciones, el ModalResult hace que se cierre el formulario independientemente de si hubo error o no.

Tampoco dices en qué parte estás poniendo el código de verificación, aunque lo usual es no hacerlo en el OnClick del botón sino en el evento OnCloseQuery del formulario. Este evento lleva un parámetro, CanClose, que te sirve para indicarle al formulario si ha de cerrarse o no. En caso de error, únicamente debes poner CanClose en false para evitar que se cierre.

Para saber si el usuario oprimió el botón Aceptar, cotejas el valor de ModalResult:

Código Delphi [-]
procedure TFormAlgo.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if ModalResult = mrOk then
  begin
    if HayAlgunErrorEnLosDatos then
      CanClose := false;
  end;
end;

// Saludos
Responder Con Cita