![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#3
|
|||
|
|||
|
Ok, aqui va el codigo
unit UAcceso; interface uses type DLLEncripta = Function(Clave_Encripta: String):String; DLLDesEncripta = Function(Clave_Encripta: String):String; DLLValidaRegistro = Function( Crut, Cnom, cReg1, cReg2, cSistema : String ) : Integer; type TFAcceso = class(TForm) ksoBalloonForm1: TksoBalloonForm; EEmpresa: TEdit; EUsuario: TEdit; EPassword: TEdit; BAcepta: TdxButton; procedure BAceptaClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var InstanciaDLL : THandle; Encripta : DLLEncripta; DesEncripta : DLLDesEncripta; ValidaRegistro: DLLValidaRegistro; FAcceso: TFAcceso; Ok_Usuario, Ok_Empresa : Boolean; Clave : String[10]; Implementation Uses Usiscont, Datos; {$R *.DFM} procedure TFAcceso.BAceptaClick(Sender: TObject); begin if not ModuloDatos.QAcceso.Eof then begin Ok_Usuario := True; InstanciaDll := LoadLibrary('claves.dll'); if InstanciaDll = 0 then begin Mensaje.MessageDlg( 'Error en Carga de Dll.' , mtError , [mbCancel] , 0 ) ; exit; end; try @Encripta := GetProcAddress(InstanciaDll,'Encripta'); if @Encripta <> nil then Clave := Encripta(Trim(Epassword.Text)) else Mensaje.MessageDlg( 'Error de Procedimiento de Dll.' , mtError , [mbCancel] , 0 ) ; finally FreeLibrary(InstanciaDll); end; if ModuloDatos.QAcceso['ClaveUsuario'] <> Clave then Ok_Usuario := False; if not Ok_Usuario then begin Mensaje.MessageDlg( 'Acceso Denegado. Usuario o Clave mal Digitado..' , mtError , [mbCancel] , 0 ) ; Epassword.SetFocus; end else begin TipoUsuario := EUsuario.Text; Acceso := ok_Usuario; Ok_Empresa := False; if Ok_Usuario then begin //busca claves y empresa ModuloDatos.parametros.open; if ModuloDatos.Parametros.Locate( 'RUTEMP' , Trim(EEmpresa.Text) , [ loCaseInsensitive ] ) then begin Empresa := Trim( EEmpresa.Text); Acceso := Ok_usuario; InstanciaDll := LoadLibrary('claves.dll'); if InstanciaDll = 0 then begin Mensaje.MessageDlg( 'Error en Carga de Dll.' , mtError , [mbCancel] , 0 ) ; exit; end; try @ValidaRegistro := GetProcAddress(InstanciaDll,'ValidaRegistro'); if @ValidaRegistro <> nil then Ok_Empresa := ValidaRegistro(ModuloDatos.Parametros['Rutemp'],ModuloDatos.Parametros['Empresa'],ModuloDatos.Parametros['Reguno'],ModuloDatos.Parametros['Regdos'],'Contabilidad') = 1 else Mensaje.MessageDlg( 'Error de Procedimiento de Dll.' , mtError , [mbCancel] , 0 ) ; finally FreeLibrary(InstanciaDll); end; if Ok_empresa then begin //Mensaje.MessageDlg( 'Empresa Ok' , mtError , [mbCancel] , 0 ) ; end else begin Mensaje.MessageDlg( 'Empresa no Registrada' , mtError , [mbCancel] , 0 ) ; Acceso := False; close; end; end else begin Mensaje.MessageDlg( 'Rut Empresa No Existe' , mtError , [mbCancel] , 0 ) ; EEmpresa.SetFocus; end; end; end; end else begin Mensaje.MessageDlg( 'Acceso Denegado. Usuario o Clave mal Digitado..' , mtError , [mbCancel] , 0 ) ; Epassword.SetFocus; end; ModuloDatos.QAcceso.Close; //aqui da error if not Ok_usuario then //aqui da error ModuloDatos.Contabilidad.Connected := False ; except Mensaje.MessageDlg( 'Error en la Conexión' , mtError , [mbCancel] , 0 ) ; EEmpresa.SetFocus; end ; end; end. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|