Ver Mensaje Individual
  #9  
Antiguo 01-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
Hola
Segimos con el form FLogin:
Coloquemos una variable (cuenta), esta nos servira para determinar la cantidad de veces que se intenta introducir la clave:
Código Delphi [-]
var
  FLogin: TFLogin;
  Cuenta : integer;
 
implementation

En el evento OnCreate la iniciamos en cero:

Código Delphi [-]
procedure TFLogin.FormCreate(Sender: TObject);
begin
   Cuenta := 0;
 
end;

En el boton OK:

Código Delphi [-]
procedure TFLogin.BtnOkClick(Sender: TObject);
begin
   IBQuery1.Params.ParamByName('Cod').Value:= Edit1.Text;
   IBQuery1.Active:= True;
If IBQuery1.RecordCount < 1 then
    Begin
       Cuenta := Cuenta + 1;
       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
       Edit1.Text := '';
       Edit2.Text := '';
       IBQuery1.Active := False;
       If Cuenta = 3 then Close;
    end
   else
       If IBQuery1Clave.AsString = Edit2.Text then
        Begin
          Form1.Show;
          IBQuery1.Active := False;
          FLogin.Visible:= False;
        end
     else
         Begin
           Cuenta := Cuenta + 1;
           MessageDlg('Clave Inválida',mtError, [mbOK], 0);
           Edit2.Text := '';
           IBQuery1.Active := False;
           If Cuenta = 3 then Close;
         end;
 
end;

En el boton Cancelar:

Código Delphi [-]
procedure TFLogin.Button2Click(Sender: TObject);
begin
  Close;
end;

Ahora solo nos queda que el programa arranque desde el form login:
Vamos al Proyecto, en units, project y cambiamos el orden de entrada al programa asi:

Código Delphi [-]
program Project1;
 
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {DataModule2: TDataModule},
  UFLogin in 'UFLogin.pas' {FLogin};
 
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TDataModule2, DataModule2);
  Application.CreateForm(TFLogin, FLogin);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


Listo, a correr.
AHHHHHHHH, que monton de errores, logico, somos novatos y se nos olvido asignar algunas cositas.
Son faciles de apreciar pero son errores que nos pueden pasar por descuido:

Primero regresemos un poco atras, al datamodule:

1- En el IBDatabase nos olvidamos de colocar en su propiedad DefaultTransaction el IBTransaction.
Con esto ya se ligan.
2- Lo mismo con el IBTransaction, en su propiedad DefaultDatabase lo ligamos pero esta vez con el IBDatabase.
Osea, uno con otro.

Regresemos al FLogin.
Demosle doble click al IBQuery, nos saldra una pequeña pantalla, raton derecho y add, nos colocara los campos dentra de esta pantalla.
Listo, no era para tanto, corredlo, esta listo para usarse.

Ojala os sirva de algo este.

Saludos

Para dudas y aclaraciones estan los maestros
__________________
Siempre Novato
Responder Con Cita