Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   delphi.error extraño en la funcion encriptar (https://www.clubdelphi.com/foros/showthread.php?t=62252)

tebre 12-12-2008 19:20:53

delphi.error extraño en la funcion encriptar
 
hola amigos aqui con una duda.. lo que pasa es que quiero agregar una variable a la funcion de encriptar. pero melo marca como no definida...
no se que pasa des ya gracias...


unit UEmpleados;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons;
type
TFrmEmpleados = class(TForm)
PcModificarEmpleado: TPageControl;
TabModificaEmpleado: TTabSheet;
TabSheet3: TTabSheet;
TabSheet1: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Login: TLabel;
password: TLabel;
EdNumEmpleado: TEdit;
EdAppaterno: TEdit;
EdApmaterno: TEdit;
EdNivel: TEdit;
CmbDireccion: TComboBox;
EdNombre: TEdit;
EdLogin: TEdit;
EdPassword: TEdit;
BtnGuardar: TBitBtn;
BtnCancelar: TBitBtn;
BtnNuevo: TBitBtn;
LblClaveDireccion: TLabel;
LblEncriptado: TLabel;
CmbEmpleado: TComboBox;
Seleccionar: TLabel;
BtnModificar: TBitBtn;
LblModificaEmpleado: TLabel;
EdMNumEmpleado: TEdit;
EdMNombre: TEdit;
EdMAppaterno: TEdit;
EdMApmaterno: TEdit;
EdMNivel: TEdit;
EdMLogin: TEdit;
EdMPassword: TEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
CmbMDireccion: TComboBox;
BtnMActualizar: TBitBtn;
BtnMCancelar: TBitBtn;
BtnMSalir: TBitBtn;
lBLGuardaClave: TLabel;
procedure EdMApmaternoEnter(Sender: TObject);
procedure EdMNivelKeyPress(Sender: TObject; var Key: Char);
procedure EdMAppaternoEnter(Sender: TObject);
procedure EdMNombreClick(Sender: TObject);
procedure EdMNombreEnter(Sender: TObject);
procedure BtnMActualizarClick(Sender: TObject);
//procedure PcModificarEmpleadoEnter(Sender: TObject);
procedure CmbMDireccionEnter(Sender: TObject);
procedure BtnModificarClick(Sender: TObject);
procedure CmbEmpleadoSelect(Sender: TObject);
procedure TabModificaEmpleadoEnter(Sender: TObject);
procedure CmbDireccionEnter(Sender: TObject);
procedure CmbDireccionClick(Sender: TObject);
procedure EdNumEmpleadoKeyPress(Sender: TObject; var Key: Char);
procedure EdNivelKeyPress(Sender: TObject; var Key: Char);
procedure BtnCancelarClick(Sender: TObject);
procedure CmbDireccionSelect(Sender: TObject);
procedure FormShow(Sender: TObject);

procedure EdPasswordEnter(Sender: TObject);
procedure EdLoginEnter(Sender: TObject);
procedure EdNivelEnter(Sender: TObject);
procedure EdApmaternoEnter(Sender: TObject);
procedure EdAppaternoEnter(Sender: TObject);
procedure EdNombreEnter(Sender: TObject);
procedure EdNumEmpleadoEnter(Sender: TObject);
procedure EdPasswordClick(Sender: TObject);
procedure EdLoginClick(Sender: TObject);
procedure EdNivelClick(Sender: TObject);
procedure EdApmaternoClick(Sender: TObject);
procedure EdAppaternoClick(Sender: TObject);
procedure EdNombreClick(Sender: TObject);
procedure EdNumEmpleadoClick(Sender: TObject);
procedure BtnGuardarClick(Sender: TObject);
procedure BtnNuevoClick(Sender: TObject);

private
{ Private declarations }
procedure limpiar;
procedure CancelaEdit;
procedure HabilitaEdit;
public
{ Public declarations }
end;
var
FrmEmpleados: TFrmEmpleados;
implementation
uses Uconexion;
{$R *.dfm}

function encriptar(aStr: String; aKey: Integer): String;
begin
result:='';
variableAusar:='';
RandSeed:=aKey;
for aKey:=1 to Length(aStr) do
result:=result+Chr(Byte(aStr[aKey]) xor random(256));
end;

{****************************************
*************PROCEMIDENTOS***************}
Procedure TFrmEmpleados.limpiar();
begin
CmbDireccion.Text:='';
EdNumEmpleado.Text:='';
EdNombre.Text:='';
EdAppaterno.Text:='';
EdApmaterno.Text:='';
EdNivel.Text:='';
EdLogin.Text:='';
EdPassword.Text:='';
end;
procedure TFrmEmpleados.HabilitaEdit();
begin
EdNumEmpleado.Enabled:=True;
CmbDireccion.Enabled:=True;
EdNombre.Enabled:=True;
EdAppaterno.Enabled:=True;
EdApmaterno.Enabled:=True;
EdNivel.Enabled:=True;
EdLogin.Enabled:=True;
EdPassword.Enabled:=True;
end;
procedure TFrmEmpleados.CancelaEdit();
begin
EdNumEmpleado.Enabled:=false;
CmbDireccion.Enabled:=false;
EdNombre.Enabled:=false;
EdAppaterno.Enabled:=false;
EdApmaterno.Enabled:=false;
EdNivel.Enabled:=false;
EdLogin.Enabled:=false;
EdPassword.Enabled:=false;
end;
{***************fin**************************
****************Procedimientos*************************}
procedure TFrmEmpleados.BtnNuevoClick(Sender: TObject);
begin
//Apagado de Botones
BtnCancelar.Enabled:=True;
BtnNuevo.Enabled:=False;
BtnGuardar.Enabled:=True;
//limpiado y cambiado de color de cuadro de texto
EdNumEmpleado.color:=clWindow;
EdNombre.color:=clWindow;
EdAppaterno.color:=clWindow;
EdApmaterno.color:=clWindow;
EdNivel.color:=clWindow;
EdLogin.color:=clWindow;
EdPassword.color:=clWindow;
CmbDireccion.color:=clWindow;
limpiar();
HabilitaEdit();
CmbDireccion.Clear;
//Llenado del combobox direccion
Datos.QryLlenadoDireccion.Active:= False;
Datos.QryLlenadoDireccion.SQL.Clear;
Datos.QryLlenadoDireccion.SQL.Add('SELECT *');
Datos.QryLlenadoDireccion.SQL.Add('FROM Direccion');
Datos.QryLlenadoDireccion.SQL.Add('ORDER BY NombreDireccion');
Datos.QryLlenadoDireccion.Active:= True;
Datos.QryLlenadoDireccion.First;
if Datos.QryLlenadoDireccion.Recordcount>0 then
begin
While Not Datos.QryLlenadoDireccion.Eof Do
begin
CmbDireccion.Items.Add(Datos.QryLlenadoDireccion.FieldByName('NombreDireccion').AsString);
Datos.QryLlenadoDireccion.Next;
end
end
else
Application.MessageBox('No existe direccion. agregue !!!', 'Aviso', MB_OK + MB_ICONINFORMATION);
end;
procedure TFrmEmpleados.BtnGuardarClick(Sender: TObject);
var global : integer;
begin
global :=0;
if CmbDireccion.Text='' then
begin
global:=1;
CmbDireccion.color:=clInactiveCaptionText;
end;
//........................................................
if EdNumEmpleado.Text='' then
begin
global:=1;
EdNumEmpleado.color:=clInactiveCaptionText;
end;
//.............................
if Ednombre.Text='' then
begin
global:=1;
Ednombre.color:=clInactiveCaptionText;
end;
//............................
if EdAppaterno.Text='' then
begin
global:=1;
EdAppaterno.color:=clInactiveCaptionText;
end;
//............................
if EdApmaterno.Text='' then
begin
global:=1;
EdApmaterno.color:=clInactiveCaptionText;
end;
//............................
if EdNivel.Text='' then
begin
global:=1;
EdNivel.color:=clInactiveCaptionText;
end;
//............................
if EdLogin.Text='' then
begin
global:=1;
EdLogin.color:=clInactiveCaptionText;
end;
//............................
if EdPassword.Text='' then
begin
global:=1;
EdPassword.color:=clInactiveCaptionText;
end;
if global = 1 then
begin
Application.MessageBox('Rellene los campos marcados para continuar', 'Error', MB_OK + MB_ICONERROR);
global:=0;
end
else
if global = 0 then
begin
//Comprobar existencia
Datos.QryEmpleado.Active:= False;
Datos.QryEmpleado.SQL.Clear;
Datos.QryEmpleado.SQL.Add('SELECT *');
Datos.QryEmpleado.SQL.Add('FROM Empleado');
Datos.QryEmpleado.SQL.Add('WHERE NumeroEmpleado =' + '''' + EdNumEmpleado.Text + '''');
Datos.QryEmpleado.Active:= True;
If Datos.QryEmpleado.RecordCount > 0 then
Application.MessageBox('La clave de empleado ya existe. Verifique los datos !!!', 'Error', MB_OK + MB_ICONERROR)
else
begin
******llamado de funcion****************
LblEncriptado.Caption := encriptar(EdPassword.Text, 10);
Datos.QryEmpleado.Active:= False;
Datos.QryEmpleado.SQL.Clear;
Datos.QryEmpleado.SQL.Add('INSERT INTO Empleado VALUES(');
Datos.QryEmpleado.SQL.Add(Quotedstr(EdNumEmpleado.Text) + ',');
Datos.QryEmpleado.SQL.Add(Quotedstr(LblClaveDireccion.Caption) + ',');
Datos.QryEmpleado.SQL.Add(Quotedstr(EdLogin.Text) + ',');
Datos.QryEmpleado.SQL.Add(Quotedstr(LblEncriptado.caption) + ',');
Datos.QryEmpleado.SQL.Add(Quotedstr(EdNombre.Text) + ',');
Datos.QryEmpleado.SQL.Add(Quotedstr(EdAppaterno.Text) + ',');
Datos.QryEmpleado.SQL.Add(Quotedstr(EdApmaterno.Text) + ',');
Datos.QryEmpleado.SQL.Add(EdNivel.Text + ')');
Datos.QryEmpleado.ExecSQL;
Application.MessageBox('Datos registrados satisfactoriamente !!!', 'Aviso', MB_OK + MB_ICONINFORMATION);
//limpiar de componentes
lblEncriptado.Caption:='';
LblClaveDireccion.Caption:='';
limpiar();
BtnNuevo.Enabled:=true;
Btncancelar.Enabled:=false;
BtnGuardar.Enabled:=false;
end;
end;
end;
procedure TFrmEmpleados.EdNumEmpleadoClick(Sender: TObject);
begin
EdNumEmpleado.color:=clWindow;
end;
procedure TFrmEmpleados.EdNombreClick(Sender: TObject);
begin
EdNombre.Color:=clWindow;
end;
procedure TFrmEmpleados.EdAppaternoClick(Sender: TObject);
begin
EdAppaterno.Color:=clWindow;
end;
procedure TFrmEmpleados.EdApmaternoClick(Sender: TObject);
begin
EdApmaterno.Color:=clWindow;
end;
procedure TFrmEmpleados.EdNivelClick(Sender: TObject);
begin
EdNivel.Color:=clWindow;
end;
procedure TFrmEmpleados.EdLoginClick(Sender: TObject);
begin
EdLogin.Color:=clWindow;
end;
procedure TFrmEmpleados.EdNumEmpleadoEnter(Sender: TObject);
begin
EdNumEmpleado.Color:=clWindow;
end;
procedure TFrmEmpleados.EdNombreEnter(Sender: TObject);
begin
EdNombre.Color:=clWindow;
end;
procedure TFrmEmpleados.EdAppaternoEnter(Sender: TObject);
begin
EdAppaterno.Color:=clWindow;
end;
procedure TFrmEmpleados.EdApmaternoEnter(Sender: TObject);
begin
EdMApmaterno.Color:=clWindow;
end;
procedure TFrmEmpleados.EdNivelEnter(Sender: TObject);
begin
EdMNivel.Color:=clWindow;
end;
procedure TFrmEmpleados.EdLoginEnter(Sender: TObject);
begin
EdMLogin.Color:=clwindow;
end;
procedure TFrmEmpleados.EdPasswordEnter(Sender: TObject);
begin
EdPassword.Color:=clWindow;
end;
procedure TFrmEmpleados.EdPasswordClick(Sender: TObject);
begin
EdPassword.color:=clWindow;
end;
procedure TFrmEmpleados.FormShow(Sender: TObject);
begin
//cacelar botones al iniciar la forma
CancelaEdit();
BtnCancelar.Enabled:=False;
BtnNuevo.Enabled:=True;
BtnGuardar.Enabled:=False;
//***********cancelar Botones modificar empleado*********************
BtnModificar.Enabled:=false;
BtnMActualizar.Enabled:=false;
BtnMCancelar.Enabled:=False;
//***********cancelar edit modificar empleado*********************
EdMNombre.enabled:=false;
EdMAppaterno.enabled:=false;
EdMApmaterno.enabled:=false;
EdMNivel.enabled:=false;
CmbMDireccion.enabled:=false;
EdMLogin.enabled:=false;
EdMPassword.enabled:=false;
end;
procedure TFrmEmpleados.CmbDireccionSelect(Sender: TObject);
begin
{Aqui se busca la clave de la direccion solicitada en el combobox}
Datos.QryBuscarClaveDireccion.Active:= False;
Datos.QryBuscarClaveDireccion.SQL.Clear;
Datos.QryBuscarClaveDireccion.SQL.Add('SELECT ClaveDireccion');
Datos.QryBuscarClaveDireccion.SQL.Add('FROM Direccion');
Datos.QryBuscarClaveDireccion.SQL.Add('WHERE NombreDireccion = ' + QuotedStr(CmbDireccion.Text));
Datos.QryBuscarClaveDireccion.Active:= True;
Datos.QryBuscarClaveDireccion.First;
LblClaveDireccion.Caption:=Datos.QryBuscarClaveDireccion.FieldByName('ClaveDireccion').AsString
end;
procedure TFrmEmpleados.BtnCancelarClick(Sender: TObject);
begin
if Application.MessageBox('Se cancelara la operacion. Desea continuar ??? ', 'Aviso', MB_OKCANCEL + MB_ICONINFORMATION)= mrOK then
Limpiar();
end;
procedure TFrmEmpleados.EdNivelKeyPress(Sender: TObject; var Key: Char);
var
mensaje:integer;
begin
if (key >= Char(64)) Or (key < Char(47))
And (key >= Char(14)) then
begin
mensaje:=Application.MessageBox('Digite un valor numérico. Gracias', 'Error de entrada');
key := char(0); //Limpia el EditBox
end;
EdNivel.SetFocus;
end;
procedure TFrmEmpleados.EdNumEmpleadoKeyPress(Sender: TObject; var Key: Char);
var
mensaje:integer;
begin
if (key >= Char(64)) Or (key < Char(47))
And (key >= Char(14)) then
begin
mensaje:=Application.MessageBox('Digite un valor numérico. Gracias', 'Error de entrada');
key := char(0); //Limpia el EditBox
end;
EdNumEmpleado.SetFocus;
end;
procedure TFrmEmpleados.CmbDireccionClick(Sender: TObject);
begin
CmbDireccion.Color:=clWindow;
end;
procedure TFrmEmpleados.CmbDireccionEnter(Sender: TObject);
begin
CmbDireccion.Color:=clWindow;
end;
procedure TFrmEmpleados.TabModificaEmpleadoEnter(Sender: TObject);
begin
CmbEmpleado.Enabled:=true;
CmbEmpleado.Clear;
Datos.QryEmpleado.Active:= False;
Datos.QryEmpleado.SQL.Clear;
Datos.QryEmpleado.SQL.Add('SELECT Nombre,Appaterno,Apmaterno,NumeroEmpleado');
Datos.QryEmpleado.SQL.Add('FROM Empleado');
Datos.QryEmpleado.Active:= True;
Datos.QryEmpleado.First;
If Datos.QryEmpleado.RecordCount > 0 then
begin
While Not Datos.QryEmpleado.Eof Do
Begin
CmbEmpleado.Items.Add(Datos.QryEmpleado.FieldByName ('Nombre').AsString+' '+
Datos.QryEmpleado.FieldByName ('Appaterno').AsString+' '+
Datos.QryEmpleado.FieldByName ('ApMaterno').AsString+' '+
Datos.QryEmpleado.FieldByName ('NumeroEmpleado').AsString);
Datos.QryEmpleado.Next;
End
End
else
Application.MessageBox('No existe empleado. Agregue', 'Error', MB_OK + MB_ICONINFORMATION);
end;
procedure TFrmEmpleados.CmbEmpleadoSelect(Sender: TObject);
begin
BtnModificar.Enabled:=true;
BtnMCancelar.Enabled:=false;
BtnMActualizar.enabled:=false;
LblModificaEmpleado.Caption:=CmbEmpleado.Text;
end;
procedure TFrmEmpleados.BtnModificarClick(Sender: TObject);
var
s:String;
p:string;
begin
//***********cancelar edit modificar empleado*********************
EdMNombre.enabled:=true;
EdMAppaterno.enabled:=true;
EdMApmaterno.enabled:=true;
EdMNivel.enabled:=true;
CmbMDireccion.enabled:=true;
EdMLogin.enabled:=true;
EdMPassword.enabled:=true;
BtnMActualizar.enabled:=True;
BtnModificar.Enabled:=false;
BtnMCancelar.Enabled:=true;

//guardo el string seleccionado y divido para obtener el ultimo string(numero de empleado)
s:=LblModificaEmpleado.Caption;
p:=(strRscan(PChar(Trim(s)),' ') + 1);
//*************muestro los datos en los edit********************
Datos.QryEmpleado.Active:= False;
Datos.QryEmpleado.SQL.Clear;
Datos.QryEmpleado.SQL.Add('SELECT *');
Datos.QryEmpleado.SQL.Add('FROM Empleado');
Datos.QryEmpleado.SQL.Add('WHERE NumeroEmpleado=' + '''' + p + '''' + ';');
Datos.QryEmpleado.Active:= True;
Datos.QryEmpleado.First;
EdMNumEmpleado.Text:=Datos.QryEmpleado.FieldByName ('NumeroEmpleado').AsString;
EdMNombre.Text:=Datos.QryEmpleado.FieldByName ('Nombre').AsString;
EdMAppaterno.Text:=Datos.QryEmpleado.FieldByName ('Appaterno').AsString;
EdMApmaterno.Text:=Datos.QryEmpleado.FieldByName ('ApMaterno').AsString;
EdMNivel.Text:=Datos.QryEmpleado.FieldByName ('Nivel').AsString;
LblGuardaClave.Caption:=Datos.QryEmpleado.FieldByName ('ClaveDireccion').AsString;
EdMLogin.Text:=Datos.QryEmpleado.FieldByName ('Login').AsString;
EdMPassword.Text:=Datos.QryEmpleado.FieldByName ('Password').AsString;
//**************************************************************
// buscar la direccion a la que pertenece
Datos.QryBuscarClaveDireccion.Active:= False;
Datos.QryBuscarClaveDireccion.SQL.Clear;
Datos.QryBuscarClaveDireccion.SQL.Add('SELECT NombreDireccion');
Datos.QryBuscarClaveDireccion.SQL.Add('FROM Direccion');
Datos.QryBuscarClaveDireccion.SQL.Add('WHERE ClaveDireccion = ' + QuotedStr(LblGuardaClave.caption));
Datos.QryBuscarClaveDireccion.Active:= True;
Datos.QryBuscarClaveDireccion.First;
If Datos.QryBuscarClaveDireccion.RecordCount > 0 then
CmbMDireccion.Text:=Datos.QryBuscarClaveDireccion.FieldByName('NombreDireccion').AsString;
end;
procedure TFrmEmpleados.CmbMDireccionEnter(Sender: TObject);
begin
CmbMDireccion.Color:=clwindow;
if Application.MessageBox('Desea cambiar la direccion !!!', 'Aviso', MB_OKCANCEL + MB_ICONINFORMATION)= mrOK then
begin
//Llenado del combobox direccion
CmbMDireccion.Clear;
Datos.QryLlenadoDireccion.Active:= False;
Datos.QryLlenadoDireccion.SQL.Clear;
Datos.QryLlenadoDireccion.SQL.Add('SELECT *');
Datos.QryLlenadoDireccion.SQL.Add('FROM Direccion');
Datos.QryLlenadoDireccion.SQL.Add('ORDER BY NombreDireccion');
Datos.QryLlenadoDireccion.Active:= True;
Datos.QryLlenadoDireccion.First;
While Not Datos.QryLlenadoDireccion.Eof Do
Begin
CmbMDireccion.Items.Add(Datos.QryLlenadoDireccion.FieldByName('NombreDireccion').AsString);
Datos.QryLlenadoDireccion.Next;
End;
end;
end;
procedure TFrmEmpleados.BtnMActualizarClick(Sender: TObject);
var global : integer;
begin
global:=0;
if CmbMDireccion.Text='' then
begin
global:=1;
CmbMDireccion.color:=clInactiveCaptionText;
end;
//........................................................
if EdMnombre.Text='' then
begin
global:=1;
EdMnombre.color:=clInactiveCaptionText;
end;
//............................
if EdMPassword.Text='' then
begin
global:=1;
EdMPassword.color:=clInactiveCaptionText;
end;
if global = 1 then
begin
Application.MessageBox('Rellene los campos marcados para continuar', 'Error', MB_OK + MB_ICONERROR);
global:=0;
end
else
{****************************************
**********realizar las modificaciones****
*****************************************}

end;
procedure TFrmEmpleados.EdMNombreEnter(Sender: TObject);
begin
EdMNombre.Color:=clwindow;
end;
procedure TFrmEmpleados.EdMNombreClick(Sender: TObject);
begin
EdMNombre.Color:=clwindow;
end;
procedure TFrmEmpleados.EdMAppaternoEnter(Sender: TObject);
begin
EdMAppaterno.Color:=clwindow;
end;
procedure TFrmEmpleados.EdMAppaternoClick(Sender: TObject);
begin
EdMAppaterno.Color:=clwindow;
end;
procedure TFrmEmpleados.EdMApmaternoClick(Sender: TObject);
begin
EdMApmaterno.Color:=clwindow;
end;
procedure TFrmEmpleados.EdMNivelEnter(Sender: TObject);
begin
EdMNivel.Color:=clwindow;
end;
procedure TFrmEmpleados.EdMNivelClick(Sender: TObject);
begin
EdMNivel.Color:=clwindow;
end;
end.

Delphius 12-12-2008 20:07:52

Hola tebre,
¿Esperas que probemos todo ese código?:eek:
No es por ser malo, pero esto me suena a: "corrijanmelo".

Si al menos emplearas la etiquetas DELPHI, se podría entender mejor toda esa maraña.

¿En que parte del todo el código te arroja el error? En vez de estar probando y adivinando donde está el problema, ¿porqué no nos indicas en que línea tienes problemas? Por cierto, sería recomendable que copiaras el error textualmente.

Saludos,

tebre 12-12-2008 20:14:51

resuelto
 
bueno es que no haya donde resaltar la sisntaxis pero ya vi donde....
la segunda el error es que en la funcion de encriptar.. me estaba marcando unos errores pero ya vi que era...de igual manera gracias por responder


con respecto al codigo la proxima pondre solamente el adecuado


gracias!!!!!!!!!


La franja horaria es GMT +2. Ahora son las 17:03:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi