Ver Mensaje Individual
  #4  
Antiguo 19-08-2006
jacanche jacanche is offline
Miembro
 
Registrado: may 2003
Ubicación: Campeche,Campeche,Mexico
Posts: 137
Reputación: 22
jacanche Va por buen camino
Bueno, puedes intentar modificar el codigo de la ventana donde solicitas el nombre de usuario y contraseña, supongo que tienes mas o menos algo parecido a lo que se muestra abajo.
Se agrega una variable privada en la forma y una constante en la implementacion con las cuales se lleva la cuenta de cuantas veces se intenta el acceso, si se llega al numero maximo se termina la aplicación, asi como si le das click al boton cancelar.

Código Delphi [-]
unit Username;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, ExtCtrls, jpeg, Buttons;

type
  TUserNameDlg = class(TForm)
    UserNameEdit: TEdit;
    OkBtn: TBitBtn;
    CancelBtn: TBitBtn;
    procedure OkBtnClick(Sender: TObject);
    procedure CancelBtnClick(Sender : TObject);
    procedure FormCreate(Sender: TObject);
  private
    Tries : byte;
    function TryAgain : TModalResult;
  public
  end;

var
  UserNameDlg: TUserNameDlg;

implementation

{$R *.DFM}

const
   MAX_TRIES = 3;

procedure TUserNameDlg.OkBtnClick(Sender: TObject);
begin
  Fusuario:=Edit1.Text;
  fpsw:=Edit2.Text;
 
  with BD.SQLConnection do
  begin
   Connected := false;
   try
    BD.SQLConnection.Params.Values['Database']:='DSN=BDEquipos;UID='+ Fusuario + ';'+ 'PWD='+fpsw + ';' + 'DB=equipos;HOSTNAME=localhost';
  Except
    on E: exception do begin
      ShowMessage('Error al intentar abrir la base de datos.' + ^M +
                  'Confirme a Sistemas.');
     if Tries then //Esto permite que se intente 3 veces el acceso a la base de datos
          Tries := Tries +1
        else
          Application.Terminate;
     end;
   end
  end;  

end;

procedure TUserNameDlg.CancelBtnClick(Sender : TObject);
begin
  Application.Terminate;
end;

procedure TUserNameDlg.FormCreate(Sender: TObject);
begin
   Tries := 1;
end;
__________________
Saludos

Alfredo
Responder Con Cita