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