Hola! Gracias por responder, con respecto al titulo del mensaje mil disculpas pero no se me ocurrio otro
(por cierto ¿se pueden editar los titulos?)
//EDITADO: Al parecer ya corregi el error aun estoy en pruebas.
Con respecto al problema pues si, me enfoque solo al hecho de haber insertado esa linea y de que ahi provenia el error. En realidad es una continuacion de
este otro hilo .
Como menciono en el hilo anterior desde un elemento de menu creo un formulario que me pide una clave antes de acceder al formulario de configuracion. Eso pues ya lo resolvi y no me genera ningun problema.
Código Delphi
[-]procedure TForm1.Ajustes1Click(Sender: TObject);
var
Respuesta : integer;
begin
modoPass := 1;
frmCfg := TfrmCfg.Create(nil); Respuesta := frmCfg.ShowModal;
if Respuesta = mrOK then begin
frmConfigura := TfrmConfigura.Create(nil); try
frmConfigura.ShowModal;
finally
frmConfigura.Free;
end;
end;
frmCFG.Close;
frmCFG.Free; end;
Código Delphi
[-]procedure TfrmCfg.BitBtn1Click(Sender: TObject);
var
K: string;
begin
case modoPass of
1: K := DatetoStr(Date) + 'CFG'; 2: K := DateToStr(Date) + 'GLAF'; end;
if edit1.Text <> '' then
begin
if (Edit1.Text = K) or (edit1.text = Password) then
begin
frmCfg.ModalResult := mrOk;
K := '';
end
else
begin
showmessage('¡Clave de acceso invalida!');
Edit1.Text := '';
Edit1.SetFocus ;
end;
end
else
begin
ShowMessage('Debe ingresar una clave valida');
Edit1.setfocus;
end;
end;
De ahi decidi colocar otra contraseña a otro formulario para mantenimiento de la BD, no encontre razon para crear otro formulario de "login" y decidi usar el que ya habia probado, desde el mismo formulario de configuracion inserte tres CheckBox :
a) uno para crear la contraseña por primera vez. Este crea un nuevo formulario donde se ingresa la contraseña y se le asigna a una variable, la cual no se guarda hasta que se le hace click en el boton de ok del formulario de configuracion. Este paso funciona bien, no me genera ningun error.
Código Delphi
[-]procedure TfrmConfigura.CheckBox19Click(Sender: TObject);
begin
frmPass := TfrmPass.Create(nil); try
frmPass.ShowModal;
finally
frmPass.Free;
end;
end;
Código Delphi
[-]procedure TfrmPass.BitBtn1Click(Sender: TObject);
var
oldPass: string;
begin
oldPass := Password;
if Edit1.Text <> '' then
begin
if (Edit1.Text = Edit2.Text) or
(Edit1.Text = DateToStr(Date) + 'GLAF') then
begin
newPass := Edit1.Text ;
Close;
end
else
begin
showmessage('No hay coincidencia. Verifique nuevamente');
Edit1.SelLength ;
Edit1.SetFocus ;
end;
end
else
begin
showmessage('Ingrese al menos un caracter');
Edit1.SetFocus;
end;
end;
b) otro (checkbox) para cambiar la contraseña; desde aqui se vuelve a llamar al formulario de ingreso de la contraseña y se ejecuta el mismo procedimiento. Aqui si cuando cierro el formulario de configuracion me da el error ya mencionado.
Código Delphi
[-]procedure TfrmConfigura.CheckBox20Click(Sender: TObject);
var
respuesta: integer;
begin
modoPass := 2;
frmCfg := TfrmCfg.Create(nil); Respuesta := frmCfg.ShowModal;
if Respuesta = mrOK then begin
frmPass := TfrmPass.Create(nil); try
frmPass.ShowModal;
finally
frmPass.Free;
end;
end;
frmCFG.Close ;
frmCFG.Free ; end;
c) un checkbox mas para eliminar la contraseña;desde aqui se vuelve a llamar al formulario de ingreso de la contraseña si la contraseña es correcta solo coloca una variable tipo string en vacio. Aqui tambien me da problema.
Código Delphi
[-]procedure TfrmConfigura.CheckBox21Click(Sender: TObject);
var
respuesta: integer;
begin
modoPass := 2;
frmCFG := TfrmCFG.Create(nil); Respuesta := frmCfg.ShowModal;
if respuesta = mrOK then newPass := '';
frmCFG.Close ;
frmCFG.Free ; end;
Y para terminar cuando hago click en el boton de aceptar del formulario de configuracion se salvan los cambios en el archivo .ini
Código Delphi
[-]procedure TMDatos.SalvarConfig;
begin
ConfigTCP := TIniFile.Create(RutaAPP + 'ordenCfg.ini');
with ConfigTCP do
begin
try
WriteString('Seguridad', 'Clave', newPass);
finally
Free ;
end;
end;
end;
Mientras escribo esto una idea me da vueltas pero no logro aterrizarla aun. Se que fue mucho "rollo", "choro", "verbo", y como se diga en diversas latitudes donde se hable Español o Castellano (Cual es la correcta
). Se agradece su ayuda
/// Bueno por fin aterrizo la idea y parece que funciono. El codigo supongo que se puede hacer mas elegante lo seguire revisando. Se aceptan sugerencias