Tecsitel_FactuGES2/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas

127 lines
3.3 KiB
ObjectPascal

unit uEditorLogin;
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, JvComponentBase, JvFormPlacement,
JvAppStorage, JvAppRegistryStorage, uIEditorLogin, uUsuariosController;
type
TfEditorLogin = class(TForm, IEditorLogin)
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
edtPassword: TEdit;
bAceptar: TButton;
bCancelar: TButton;
Label1: TLabel;
edtUser: TEdit;
JvGradient1: TJvGradient;
Button1: TButton;
Timer1: TTimer;
JvAppRegistryStorage1: TJvAppRegistryStorage;
JvFormStorage1: TJvFormStorage;
Image1: TImage;
procedure bAceptarClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FController : IUsuariosController;
FIntentos : Integer;
function GetController : IUsuariosController;
procedure SetController (const AValue : IUsuariosController);
published
property Controller : IUsuariosController read GetController write SetController;
end;
implementation
uses
uFactuGES_App, uDataModuleConexion;
{$R *.dfm}
{
********************************* TfEditorLogin **********************************
}
procedure TfEditorLogin.bAceptarClick(Sender: TObject);
var
bOk : Boolean;
begin
Timer1.Enabled := False;
ShowHourglassCursor;
try
bOK := FController.ComprobarUsuario(edtUser.Text, edtPassword.Text);
finally
HideHourglassCursor;
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);
Inc(FIntentos);
if (Controller.MaxIntentosLogin > 0) and (FIntentos = Controller.MaxIntentosLogin) then
ModalResult := mrCancel;
end;
end;
procedure TfEditorLogin.ToolButton4Click(Sender: TObject);
var
ATimer : Boolean;
begin
if Timer1.Enabled then
begin
ATimer := True;
Timer1.Enabled := False;
end;
dmConexion.ConfigurarConexion;
if ATimer then
Timer1.Enabled := True;
end;
procedure TfEditorLogin.FormCreate(Sender: TObject);
begin
FIntentos := 0;
end;
procedure TfEditorLogin.FormShow(Sender: TObject);
begin
Self.Caption := Self.Caption + ' - ' + AppFactuGES.AppVersion;
JvFormStorage1.RestoreFormPlacement;
// Hacer login automática si hay usuario/password y no hay más de una base
// de datos como opción para conectarse.
if ((Length(edtUser.Text) > 0) and (Length(edtPassword.Text) > 0)) then
Timer1.Enabled := True;
end;
function TfEditorLogin.GetController: IUsuariosController;
begin
Result := FController;
end;
procedure TfEditorLogin.SetController(const AValue: IUsuariosController);
begin
FController := AValue;
end;
procedure TfEditorLogin.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
bAceptar.Click;
end;
end.