127 lines
3.3 KiB
ObjectPascal
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.
|