PDA

Ver la Versión Completa : Formulario de configuracion


jandj
22-09-2008, 13:15:27
He creado un formulario de configuracion, que funciona perfectamente el problema con el, es que cada vez, que ejecuto la aplicacion esta vuelve sin los cambios aplicados. quiero saber si tengo que guardar los cambios en un archivo .ini o en registro de windows o si alguien sabe que es lo que tengo que hacer por favor ayuda.

duilioisola
22-09-2008, 13:20:53
Obviamente, debes guardar los cambios que hayas hecho.
Para guardarlos en un ini, puedes utilizar el componente TIniFile que está en la unidad IniFiles.

Los ficheros ini estan divididos en secciones y cada sección puede tener variables.

Por ejemplo:

FicheroConfiruracion.ini
[Principal]
BaseDeDatos=127.0.0.1:C:\Datos\Base.FDB
Clave=1234
...


procedure TFMain.LeeConfiguracion;
var
oini : TIniFile;
begin
oini := TInifile.Create('FicheroConfiguracion.ini');
VariableDataBase := oini.ReadString('Principal','BaseDeDatos','');
VariableClave := oini.ReadString('Principal','Clave','');
[...]
oini.Free;
end;

procedure TFMain.GuardaConfiguracion;
var
oini : TIniFile;
begin
oini := TInifile.Create('FicheroConfiguracion.ini');
oini.WriteString('Principal','BaseDeDatos',VariableDataBase);
oini.WriteString('Principal','Clave',VariableClave);
[...]
oini.Free;
end;

Neftali [Germán.Estévez]
22-09-2008, 16:15:46
Si no quieres hacerlo "a mano", hay componentes que te ayudan a hacerlo. En mi página (http://neftali.clubdelphi.com/), sin ir más lejos hay uno llamado TSavecomps, que te permitirá hacerlo casi sin teclear código.

Puedes también mirar cómo está hecho y modificar el código si te es más útil.

jandj
26-09-2008, 04:56:59
Si no quieres hacerlo "a mano", hay componentes que te ayudan a hacerlo. En mi página (http://neftali.clubdelphi.com/), sin ir más lejos hay uno llamado TSavecomps, que te permitirá hacerlo casi sin teclear código.

Puedes también mirar cómo está hecho y modificar el código si te es más útil.

------------------------------------------------------
Hola de nuevo estuve intentando con este componente (savecomps) pero no pude guardar el estado de los componente o mejor dicho no se como aunque intente de una y mil manera, pero observando bien el componente solo guarda las posiciones, y a mi me interesa guardar el estado de un checkbox en su propiedad checked por que esta me activa y desactiva obciones el el sistema entonce no quiero cada vez que entre al sistema volver a activar o desactiva el checkbox. asi que si pueden darme algun ejemplo de como trabajar con la un checkbox y con el savecomps.

José Luis Garcí
26-09-2008, 08:05:16
Me pregunto si no seria mas eficaz guardarlo en un base de datos? y leer esta base de datos al arrancar el programa.

Neftali [Germán.Estévez]
26-09-2008, 09:32:51
estuve intentando con este componente (savecomps) pero no pude guardar el estado de los componente o mejor dicho no se como aunque intente de una y mil manera, pero observando bien el componente solo guarda las posiciones

Bueno, pensé que como tenía pocas propiedades y el código fuente estaba disponible no hacía falta muchas explicaciones.
Si colocas componentes en el formulario, puedes conseguir que se guarden posiciones sólo activando el componente.
Si deseas guardar otras propiedades puedes personalizar la lista utilizando la propiedad SavedProperties. Basta con que añadas tus checkbox al formulario y a la propiedad SavedProperties le añadas Checked. Si deseas otras, basta con que vayas añadiendolas a la lista.

Por defecto el componente guardará esas propiedades para TODOS los controles.

Si te interesa guardar el estado sólo para algunos controles y para otros no, cambia la propiedad SelectTaggedControls a True y entonces sólo a los componentes con Tag=9999 (valor por defecto, pero puedes cambiarlo con la propiedad SelectTag) se les guardarán las propiedades.

jandj
27-09-2008, 05:51:13
Solucionado!! Gracias... a todos mi problema era que solo incluia el checkbox y no a los componentes que afectava al activar o desactivar el checkbox. Como decia un de mi profesores los estudiante de matematica no aprende por que no saben leer! jeje... Hasta la proxima!...