AlonsoYSal_FactuGES2/Source/ApplicationBase/Usuarios/Views/uEditorLogin.pas
2020-03-03 18:07:32 +00:00

142 lines
3.7 KiB
ObjectPascal
Raw Blame History

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);
procedure FormDestroy(Sender: TObject);
procedure edtUserKeyPress(Sender: TObject; var Key: Char);
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, uDisplayUtils;
{$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<73>a.', 'Atenci<63>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
ATimer := False;
if Timer1.Enabled then
begin
ATimer := True;
Timer1.Enabled := False;
end;
dmConexion.ConfigurarConexion;
if ATimer then
Timer1.Enabled := True;
end;
procedure TfEditorLogin.edtUserKeyPress(Sender: TObject; var Key: Char);
begin
// Desactivar el timer si el usuario escribe algo
Timer1.Enabled := False;
end;
procedure TfEditorLogin.FormCreate(Sender: TObject);
begin
FIntentos := 0;
end;
procedure TfEditorLogin.FormDestroy(Sender: TObject);
begin
FController := NIL;
end;
procedure TfEditorLogin.FormShow(Sender: TObject);
begin
ScaleFormFont(Self);
Self.Caption := AppFactuGES.AppFullName;
// JvFormStorage1.RestoreFormPlacement;
// Hacer login autom<6F>tica si hay usuario/password y no hay m<>s de una base
// de datos como opci<63>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.