Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Guardar en un archivo el estado de una casilla CheckBox

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Guardar en un archivo el estado de una casilla CheckBox Responder citando

Hola a todos,
me gustaría saber si se puede Guardar en un archivo el estado de una casilla CheckBox (si esta seleccionada o no), para que cuando abra otra vez la aplicación, se quede tal como la deje,

Si no se puede hacer mediante un archivo, me podeis decir como se pued hacer?

Gracias de Antemano
Volver arriba
Mensaje    Asunto: Responder citando

Hola, toda la información que maneje el programa que estás haciendo la podrás guardar en cualquier archivo.

El valor que quieres almacenar está en la propiedad:

CheckBox1->Checked

que es booleana y puedes recurrir a ella en cualquier momento en tu programa.

Una forma cómoda de guardar esta información es el uso de TIniFile, en la ayuda del BCB tienes bastante información y un buen ejemplo, en concreto deberás mirar cómo guardar un bool (WriteBool) y cómo leerlo (ReadBool) de tu fichero de inicio.

Suerte.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Enrique,
pero he mirado en la ayuda de BCB no me sale ningun ejemplo del TIniFile

Si me podrias explicar como se pùede utilizar te lo agradecería
_________________
Gracias de Antemano
<---------------------->
Saludos RANA

''''''''
(0)(0)
-o-o-o--(_)--0-0-0-
<---------------------->
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola, yo simplemente he escrito TIniFile en temas de ayuda y luego he pulsado el enlace a Using TIniFile y sale esto:

Cita:

The INI file format is still popular, many of the C++Builder configuration files (such as the DSK Desktop settings file) are in this format. Because this file format was and is prevalent, VCL provides a class to make reading and writing these files very easy. When you instantiate the INIFile object, you pass as a parameter to the constructor the name of the INI file. If the file does not exist, it is automatically created. You are then free to read values using ReadString, ReadInteger, or ReadBool. Alternatively, if you want to read an entire section of the INI file, you can use the ReadSection method. Similarly, you can write values using WriteBool, WriteInteger, or WriteString.

Following is an example of reading configuration information from an INI file in a form's constructor and writing values in the OnClose event handler.

Código:
void __fastcall TForm1::TForm1(TObject *Sender)

{
   TIniFile *ini;
   ini = new TIniFile(
      ChangeFileExt( Application->ExeName, ".INI" ) );
   Top     =  ini->ReadInteger( "Form", "Top", 100 );
   Left    =  ini->ReadInteger( "Form", "Left", 100 );
   Caption =  ini->ReadString( "Form", "Caption",
                               "Default Caption" );
   ini->ReadBool( "Form", "InitMax", false ) ?
         WindowState = wsMaximized :
         WindowState = wsNormal;
   delete ini;

}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
   TIniFile *ini;
   ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ) );
   ini->WriteInteger( "Form", "Top", Top );
   ini->WriteInteger( "Form", "Left", Left );
   ini->WriteString ( "Form", "Caption", Caption );
   ini->WriteBool   ( "Form", "InitMax",
                       WindowState == wsMaximized );
   delete ini;
}


Each of the Read routines takes three parameters. The first parameter identifies the section of the INI file. The second parameter identifies the value you want to read, and the third is a default value in case the section or value doesn't exist in the INI file. Similarly, the Write routines will create the section and/or value if they do not exist. The example code creates an INI file the first time it is run that looks like this:
[Form]
Top=185
Left=280
Caption=Default Caption

InitMax=0
On subsequent execution of this application, the INI values are read in during creation of the form and written back out in the OnClose event.


En este ejemplo sólo se usa el fichero de inicio al cargar el programa (para leer las dimensiones y posición del Form) y al salirse de él (para guardar los datos actuales), que parece ser lo que tú quieres, pero puedes usarlo en cualquier parte de tu aplicación. Lo bueno de este tipo de ficheros es que puedes leer o guardar cualquier tipo de variable, no hace falta que leas todo el fichero para recuperar un solo valor ni que los guardes todos cuando quieres modificar uno en particular.

Suerte
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Enrique,
Esque a mi me salían tres opciones pero no me salía ningun ejemplo
_________________
Gracias de Antemano
<---------------------->
Saludos RANA

''''''''
(0)(0)
-o-o-o--(_)--0-0-0-
<---------------------->
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Una solucion NO ELEGANTE

Si tienes UN SOLO checklist que necesitas guardar su valor, genera un archivos NULO (sin datos) ese archivos sera tu bandera para activar o desactivar el checklist, si desactivas el check listel programa BORRA el archivo

si el archivos EXISTE checklist activado de lo contrario no.

De este modo solo tienes tres problemas a solucionar:

1.- Crear el archivo nulo:
forma 1, llamada al DOS, "DIR >SICHECK.TXT"
forma 2, utilizando funciones de bajo nivel fcreate, fopen etc
recuerda que lo que te intersa es que el archivo exista o no (no el contenido del mismo)

2.- Verificar si existe if(FileExist(cualarchivo) chkOK->Checked=true

3.- Borrar archivo, busca ayuda en el help , de momeoria no me se el comando pero debe ser sencillo

Ing. Gabriel Góngora Navarrete
Volver arriba
Mensaje    Asunto: Responder citando

hi,
bueno la mia es una solucion parecida pero distinta

¿por que no creas una entrada en el registro para tu aplicacion y guardas una clave con tu valor?
un saludo
Volver arriba
Mensaje    Asunto: Responder citando

Y como se eso?, es que soy novato y no se hacer esas cosas
_________________
Gracias de Antemano
<---------------------->
Saludos RANA

''''''''
(0)(0)
-o-o-o--(_)--0-0-0-
<---------------------->
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.