Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Cambios en una aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=62131)

FrianxD 04-12-2008 23:03:44

Cambios en una aplicacion
 
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 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

Cita:

Empezado por yelian (Mensaje 329892)
FrianxD 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

Cita:

Empezado por FrianxD (Mensaje 329847)
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:

Cita:

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 :)

yelian 17-12-2008 15:33:24

Muchas gracias escafandra 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


La franja horaria es GMT +2. Ahora son las 11:56:40.

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