Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Guardar configuraciones (https://www.clubdelphi.com/foros/showthread.php?t=16555)

REHome 01-12-2004 21:30:39

Guardar configuraciones
 
Con Delphi 7 puse un label en el FORM y cuando pulso sobre ella cambia de color. Cuando cierro el programa y lo vuelvo a ejecutar, no se queda guardado.

¿Hay alguna manera o código que cree un archivo para guardar los datos estos de configuración? Es decir, que si predeterminado el color es negro y o lo pongo rojo, al ejecutarlo de nuevo se vuelva rojo.

Creo que es creando un *.INI o algo así.

Me podrían ayudar como se hace esto?

delphi.com.ar 01-12-2004 21:55:40

Estas cambiando el color en tiempo de ejecución???... de ser así, no tienes que encargarte de guardarlo de alguna forma. Una de ellas puede ser utilizar el TFormStorage de las RxLibs, otra forma puede ser hacerlo "a mano" con las clases TIniFile o TRegistry...

Saludos!

REHome 03-12-2004 05:57:36

Hola.

Es que cuando guarda será en tiempo de ejecución digo yo, no cuando está apagado por decirlo de alguna manera.

Pueden poner un ejemplo con código de cómo se guarda algún dato de configuración en un INI. Por ejemplo. Pongo un label1 en la forma. creo una aprte de código que al pulsar sobre label cambie de color, y cuando cambie de color al cerrar el programa se gusrde y al volverlo abrir se quede ya última configuración que he hecho.

ÇOtro ejemplo. Esto sule pasar por Word. Pones una letra que quieras, el tamaño que quieras y al abrirlo de nuevo, está lo último que has puesto.

Espero quen me entiendas loq ue quiero decir.

Lepe 03-12-2004 13:44:52

Busca por TIniFile o por TRegistry en el foro, se ha hablado mucho de eso.

TiniFile guardas en un archivo .ini
TRegistry guardas en el Registro de Windows.

¿Cual usar?
Tú decides. Si no te importa que el usuario vea la configuración y la cambie, usa el TiniFile.

Saludos


Perdón, no me fijé que delphi.com.ar ya lo habia mencionado.

delphi.com.ar 03-12-2004 13:49:55

Cita:

Empezado por REHome
...no cuando está apagado por decirlo de alguna manera.

:confused:

Lo que te he sugerido anteriormente, puede ser una buena solución.

Saludos!

REHome 03-12-2004 14:17:00

Ok, creo que hablé un poco mal el tono. Perdón.


He buscado por ahí pero no entiendo lo suficientes, al ayuda está en inglés y no entiendo exactamente.

Alguien puede dar un ejemplo pequeño de guardar este dato de cambiar de color en un ini con un label.

Que hay que hacer.

Dicen que es facil y yod e facil no veo nada. además nunca he hecho esto y me parece muy complicado.

Empezamos con el form desde cero y con un label1 dentro, el código de moemnto sería así. DEspués de todo esto no se que hacer, simplemente quiero que se guarde el color que deseo cuando cierre el programa.



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
procedure Label1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1Click(Sender: TObject);
begin
with font do
case font.color of
clWindowText: font.Color := clred;
clred: font.Color := clWindowText;
end;
end;
end.

marcoszorrilla 03-12-2004 14:45:48

Cita:

Ok, creo que hablé un poco mal el tono. Perdón.
Está bien reconocer los fallos, efectivamente te han dado el camino a seguir para que puedas llevar a buen fin lo que pretendes.

Aquí tienes el ejemplo que pides, como tal ejemplo no hace exactamente lo que tu quieres pero esa parte la dejo para ti.
Código Delphi [-]
  
  procedure TIni.Button1Click(Sender: TObject);
  Var
  
  Fichero: TiniFile;
  Begin
  Fichero := TIniFile.Create ('D:/MiParadox.ini'); // Accedemos al Fichero
  
  //Leemos el INI
  //Read+TipoDato(Seccion - Tipo_Dato - Valor que tomará sino hay nada)
  Edit1.text:=Fichero.ReadString ('NetDir','String','Error');
  Edit2.text:=Fichero.ReadString ('TempDir','String','Error');
  CheckBox1.Checked:=Fichero.Readbool('LocalShare','Booleano',False);
  Edit3.Text:=IntToStr(Fichero.ReadInteger('Usuarios','Integer',-1));
  Edit4.Text:=DateToStr(Fichero.ReadDate('Fecha','Date',Date));
  Edit5.Text:=Fichero.ReadString ('Letra','String','Arial');
  lbtipoletra.Font.Name:=Fichero.ReadString ('Letra','String','Arial');
  lbTipoletra.Color:=Fichero.ReadInteger ('Color','Integer',clBlue);
  Fichero.Free; // Cerramos el Fichero
  end;
  
  procedure TIni.Button2Click(Sender: TObject);
  Var
  Fichero : Tinifile;
  Begin
  Fichero := Tinifile.Create ('d:/MiParadox.ini'); // Accedemos al Fichero
  //Guardamos el INI
  //Sección - Tipo_Dato - Valor
  MiColor:=clBlue;
  Fichero.WriteString ('NetDir','String','MiDir');
  Fichero.WriteString ('TempDir','String','OtroDir');
  Fichero.Writebool ('LocalShare','Booleano',False);
  Fichero.WriteInteger('Usuarios','Integer',22);
  Fichero.WriteDate('Fecha','Date',Date);
  Fichero.WriteString('Letra','String','Symbol');
  Fichero.WriteInteger('Color','Integer',MiColor);
  Fichero.free; //Cerramos el Fichero.
  end;
Un Saludo.

REHome 03-12-2004 15:47:30

Gracias por la ayuda.

El el boton dos, me da error donde pone Micolor. ¿Sabes como arreglarlo?

----------------------

Hice uno por mi mismo. El problema que tengo, que el color que elijo, no se queda guardado. Siempre sale negro.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, inifiles;

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Button2: TButton;
procedure Label1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1Click(Sender: TObject);
begin
with label1 do
case font.color of
clWindowText: font.Color := clred;
clred: font.color := clMaroon;
clMaroon: font.color := clGreen;
clGreen: font.color := clwindowtext;
end;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
Fichero: TiniFile;
begin
Fichero := TIniFile.Create ('C:/MiSuperIni.ini'); // Accedemos al Fichero
label1.Caption:=Fichero.ReadString ('NetDir','String','Error');
Fichero.Free; // Cerramos el Fichero

end;

procedure TForm1.Button2Click(Sender: TObject);
Var
Fichero : Tinifile;

begin
Fichero := Tinifile.Create ('C:/MiSuperIni.ini'); // Accedemos al Fichero

Fichero.WriteString ('NetDir','String','MiDir');

Fichero.free; //Cerramos el Fichero.

end;

end.

delphi.com.ar 03-12-2004 17:01:15

Cita:

Empezado por REHome
El el boton dos, me da error donde pone Micolor. ¿Sabes como arreglarlo?

Cuando nos notificas de un error, es bueno que aclares de que error se trata, y en qué línea se produce. Te recomiendo leer la Guía de Estilos del foro.

Por otro lado, veo que esta utilizando la barra invertida (/) para informar rutas aparentemente de Windows cuando la barra a utilizar es "\". Ademas veo que estas escribiendo un valor fijo, no lo que tengas en tus componentes: Fichero.WriteString ('NetDir','String','MiDir');


Saludos!


La franja horaria es GMT +2. Ahora son las 07:24:03.

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