Ver Mensaje Individual
  #7  
Antiguo 21-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por eso te digo que hay un error conceptual en tu diseño.

Para empezar yo no pondría nada de código en el evento OnClick del CheckBox. El CheckBox únicamente sirve para indicar si se guardan o no los datos. Por otro lado

Esquemáticamente hablando yo haría algo así:

Evento OnShow del formulario

Buscas los archivos 'name.txt' y 'password.txt'. Si no existen es que no se pidió guardar los datos. Si existen lees las variables y las asignas a los Edit y marcas la casilla.

Evento OnClick del botón Login

Verificas los datos para determinar si son correctos o no

Evento OnClose del formulario

Si el login fue correcto (no tiene caso guardar los datos si fue incorrecto) te fijas en el valor de la casilla. Si está marcada guardas los datos en tus archivos 'name.txt' y 'password.txt'. En caso contrario, si existen estos archivos los borras.

Esto es adaptando a tu técnica de tener archivos 'name.txt' y 'password.txt' pero yo guardaría todos los datos en un sólo lugar. Podría ser el registro de Windows o un archivo ini. Por ejemplo, puedes crear un archivo ini 'opciones.ini':

Código:
[login]
username=fulano
password=tupassword
Entre corchetes se indica el nombre de la sección del archivo ini y puedes tener más secciones si así lo necesitas.

Usa un objeto TIniFile para leer el archivo:

Código Delphi [-]
var
  IniFile: TIniFile;
  UserName: String;
  Password: String;

begin
  IniFile := TIniFile.Create('opciones.ini');
  UserName := IniFile.ReadString('login', 'username', '');
  Password := IniFile.ReadString('login', 'password', '');
end;

ReadString toma tres parámetros: nombre de la sección del archivo ini, identificador en esa seccción que quieres leer, valor por defecto en caso de que no se encuentre.

Si UserName y Password son cadenas vacías es que no se pidió guardar los datos. En caso contrario los pones en los Edit y marcas la casilla.

Para guardar usas:


Código Delphi [-]
IniFile.WriteString('login', 'username', Edit1.Text);
IniFile.WriteString('login', 'password', Edit2.Text);

// Saludos
Responder Con Cita