unit uLoginForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxImageComboBox, ImgList, PngImageList, pngimage, ToolWin, JvExControls, JvComponent, JvGradient, JvGIF; type TfLoginForm = class(TForm) Panel1: TPanel; Label3: TLabel; Label4: TLabel; edtPassword: TEdit; bAceptar: TButton; bCancelar: TButton; Label1: TLabel; PngImageList1: TPngImageList; edtUser: TEdit; Image1: TImage; JvGradient1: TJvGradient; Button1: TButton; procedure bAceptarClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure FormShow(Sender: TObject); private FIntentos: Integer; end; var fLoginForm: TfLoginForm; implementation uses uDataModuleUsuarios, uDataModuleBase; {$R *.dfm} { ********************************* TfLoginForm ********************************** } procedure TfLoginForm.bAceptarClick(Sender: TObject); var ACursor: TCursor; bOk : Boolean; begin ACursor := Screen.Cursor; Screen.Cursor := crHourGlass; try bOK := dmUsuarios.Login(edtUser.Text, edtPassword.Text); finally Screen.Cursor := ACursor; end; if bOk then ModalResult := mrOK else begin Application.MessageBox('Usuario no válido. Compruebe si ha escrito correctamente' + #13 + #10 + 'el usuario y la contraseña.', 'Atención', MB_OK); Dec(FIntentos); if (FIntentos <= 0) then ModalResult := mrCancel; end; end; procedure TfLoginForm.FormCreate(Sender: TObject); begin FIntentos := 3; end; procedure TfLoginForm.ToolButton4Click(Sender: TObject); begin dmBase.ConfigurarConexion; end; procedure TfLoginForm.FormShow(Sender: TObject); begin Self.Caption := Application.Title + ' ' + dmBase.DarVersion + ' - Inicio de sesión'; end; end.