Asi puedes hacerlo texano:
Código Delphi
[-]
Procedure conectar;
var intentos:Integer;
Begin
intentos := 0;
MyZConnection.User :=clave_usuario;
MyZConnection.Password := paswword;
While (Not MyZConnection.Connected) or (intentos<4) do
Begin
try
MyZeosConnection.connect;
except
If intentos=3 Then raise Exception.Create('Intentos agotados');
ShowMessage('es incorrecto el nombre o password utilizado');
Inc(intentos);
end;
end;
Con este código puedes hacer lo que quieres.Funciona mas o menos así:
obtenemos los datos,
intentamos la conexion
si falla capturamos la excepción que se genera
si es el tercer intento generamos una nueva excepción para detener todo.
si no, ponemos un mensaje para indicar el error e incrementamos el contador de intentos
repetimos hasta obtener una conexión exitosa o agotar los intentos.
Obviamente el tipo de captura de excepción que te pongo es muy general e indebido ya que estamos suponiendo que cualquier excepción que se genere va a ser por motivo de password o usuario y puede haber muchas otras.