PDA

Ver la Versión Completa : Cambios en una aplicacion


FrianxD
04-12-2008, 23:03:44
Hola a todos, tengo una duda y quisiera saber si me pueden ayudar mi duda es la siguiente:

yo tengo un Form de color gris...( Form1 ) y tengo 2 botones, ( Boton 1 y Boton 2 )


cuando presiono el boton 1, el form se hace color azul y cuando lo hago con el boton 2 el form queda rojo, lo que necesito hacer es que cuando cierro el programa quede del ultimo color q se presiono ejemplo:

presiono boton 1, el form queda azul, cierro aplicacion y la vuelvo a abrir necesito q cargue el color azul q fue como quedo antes de ser cerrado no se si me explico bien =S espero que si, si no haganmelo saber XD


Bueno desde ya muchas gracias ! :D

Caro
04-12-2008, 23:18:25
Hola, no manejo C++ Builder, pero una idea podría ser que guardes el valor en un archivo Ini y cada vez que ejecutes tu programa, lees el archivo Ini y cargas el color que tienes guardado.

Saluditos

FrianxD
04-12-2008, 23:20:48
si habia leido algo de eso de usar un ini pero te soy sincero no tengo la menor idea de como hacerlo, te agradesco que hayas contestado! :D

escafandra
05-12-2008, 00:59:33
Estudiate el componente TIniFile del builder (Ayuda del Builder).

Básicamente es un archivo de texto con extensión.ini en el que puedes definir
secciones con cadenas, invéntate como escribir tus datos.

Otro método interesante es escribirlo en el registro de Windows o en el mismo ejecutable como un resource.

Saludos.

FrianxD
05-12-2008, 01:08:25
Bueno, muchas gracias voy a estudiar eso!
ya veremos que pasa!


gracias de nuevo

FrianxD
05-12-2008, 12:08:48
Bueno he encontrado bastantes cosas sobre el TiniFile pero el drama es que esta todo en delphi y yo uso C++ y no se como pasarlo si me pudieran dar una ayudita algun link q lo explique en C++ o algo me seria de mucha utilidad


desde ya gracias! =)

yelian
05-12-2008, 17:14:53
FrianxD (http://www.clubdelphi.com/foros/member.php?u=24934) si encuentras como hacer la duda que pusistes haslo saber ya que yo tengo la misma duda que tu, y cualquier cosa que aprendas sobre los archivos INI postealos para que los demas puedan aprender tambien.

te lo agradeseria mucho

saludos

FrianxD
05-12-2008, 18:53:25
FrianxD (http://www.clubdelphi.com/foros/member.php?u=24934) si encuentras como hacer la duda que pusistes haslo saber ya que yo tengo la misma duda que tu, y cualquier cosa que aprendas sobre los archivos INI postealos para que los demas puedan aprender tambien.

te lo agradeseria mucho

saludos

seguro, dalo por hecho pero hasta el momento sigo igual:eek:

escafandra
07-12-2008, 00:37:02
Bueno he encontrado bastantes cosas sobre el TiniFile pero el drama es que esta todo en delphi y yo uso C++ y no se como pasarlo si me pudieran dar una ayudita algun link q lo explique en C++ o algo me seria de mucha utilidad

:eek::confused: Pues en mi ayuda del Builder aparece mucha información. Compotente TiniFile. No es visual por lo que se crea por código. De la misma ayuda del Builder:

constructor and writing values in the OnClose event handler.

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.

Saludos.;)

FrianxD
07-12-2008, 01:27:15
Muchas gracias escafandra (http://www.clubdelphi.com/foros/member.php?u=24088) :)

yelian
17-12-2008, 15:33:24
Muchas gracias escafandra (http://www.clubdelphi.com/foros/member.php?u=24088) yo tambien encontre esos codes en la ayuda del C++ y juntos con los que me respondieron en un hilo que puse, pude entender mas o meno como funciona .

Para los que le Interese pongo algo sobre un code que ise es sencillo pero a mi me sirvio para entenderlo.

Code:
-------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Para escribir en el Archivo.INI
TIniFile *ini;
//Crea un .ini con el mismo nombre del ejecutavle
ini = new TIniFile( ChangeFileExt(Application->ExeName,".INI" ) );
//Se puede entender mas o menos como una base de Datos
ini->WriteString( "Datos", "Nombre", Edit1->Text);
ini->WriteString( "Datos", "Apellido1", Edit2->Text);
ini->WriteString( "Datos", "Apellido2", Edit3->Text);
ini->WriteString( "Datos", "InfoAdd", Edit4->Text);
delete ini;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//Para Leer desde el Archivo.INI
TIniFile *ini;
//Para leer un .ini que tenga el mismo nombre del ejecutable
ini = new TIniFile( ChangeFileExt(Application->ExeName,".INI" ) );
Edit5->Text=ini->ReadString( "Datos", "Nombre",NULL);
Edit6->Text=ini->ReadString( "Datos", "Apellido1",NULL);
Edit7->Text=ini->ReadString( "Datos", "Apellido2",NULL);
Edit8->Text=ini->ReadString( "Datos", "InfoAdd",NULL);
delete ini;
}


Espero que les pueda ser util como a mi me lo fue...

Saludos

yelian
17-12-2008, 16:05:48
Para Que puedas restaurar el mismo color que tenia tu Apliacacion al cerrar se debes de poner esto ...

En el Evento OnCreate:

//Para que Cuando se ejecute tu aplicacion carge el color del .ini
TIniFile *ini;
ini = new TIniFile( ChangeFileExt(Application->ExeName,".INI" ) );
AnsiString colorA=ini->ReadString("Config", "color",NULL);
Form1->Color=StringToColor(colorA);

y en el evento OnClose:

//para que cuando cierres tu aplicacion guarde el color que tenia .
TIniFile *ini;
ini = new TIniFile( ChangeFileExt(Application->ExeName,".INI" ) );
ini->WriteString( "Config", "color",Form1->Color);


Espero que te sirva esto...

Saludos