Guardar componentes en archivo
Publicado por Roberto Garcia (21 intervenciones) el 12/08/2008 09:40:46
Hola
Estoy intentado guardar algunos componentes en un archivo binario para guardar la configuracion de un machote para cartas en los cuales se puede modificar el logotipo y las caracteristicas del nombre de la empresa, direccion etc. etc. es decir que para el nombre de la empresa se puede modificar el tipo de fuente, tamaño, estilo alineacion etc. etc. y asi para cada uno de los elementos del machote.
Primero lo hice utilizando el registro de windows pero se me hizo muy complicado porque para cada elemento tendria una entrada en el registro por ejemplo para el nombre de la empresa tendria una entrada que se llmaria Titulo1 y ahi todos los valores para ese elemento como Fuente, tamanio, color, subrayado, negrita, italica etc, etc y asi para todos los demas elementos.
Pero me di cuenta que pues todas esas caracteristicas ya estaban implementadas en el componente Tlabel y para el logo el componente Timage, pero por alguna razon parece que no se guardan estos componenete he aqui la implementacion
TregMachote=record
Titulo1:Tlabel;
Titulo2:Tlabel;
Titulo3:Tlabel;
Logotipo:Timage;
Fecha:Tlabel;
Linea1:Tlabel;
Linea2:Tlabel;
end;
TarchivoMachote=file of TregMachote;
var
ArchivoMachote:TarchivoMachote;
Luego al momento de abrir el editor del machote tengo esto
assignFile(archivoMachote,ruta+'archivosmachote.dat');
{$i-}
reset(archivoMachote);
{$i+}
if ioresult <> 0 then begin
crearMachote;
end;
cargarValores
Luego dentro de crearMachote esta esto ( Vmachote : TregMachote )
rewrite(archivoMachote);
vMachote.Titulo1:=Tlabel.Create(Self);
.......
with vMachote.Titulo1 do begin
Caption:='Nombre de su Empresa';
with font do begin
size:=14;
style:=[FsBold];
Name:='Arial';
color:=0;
end;
Alignment:=taCenter;
visible:=True;
end;
..........
write(archivoMachote,vMachote);
Y en Cargar valores
vMachote.Titulo1:=Tlabel.Create(Self);
.........
seek(archivoMachote,0);
read(archivoMachote,vMachote);
image1.Picture:=vreceta.Logotipo.Imagen.Picture;
with vMachote.Titulo1 do begin
cabeza1.Caption:=caption;
cabeza1.Font:=font;
cabeza1.Visible:=visible;
end;
..............
La primera vez que se crea el archivo .dat si se ven las cadenas de inicializacion (como "Nombre de su Empresa") con los colores, tamaños y tipos de fuentes especificados y durante la primera vez si cierro el editor y se vuelve a abrir ahi estan los cambios y todo pero si cierro el programa y luego al volverlo a ejecutar se abre el editor de machote ya no aparecen las cadenas al parecer si se guardan los componenetes pero por ejemplo el campo caption esta vacio al igual que el campo picture de la imagen.
Alguien podria decirme a que se debe
Muchas gracias
Roberto
Estoy intentado guardar algunos componentes en un archivo binario para guardar la configuracion de un machote para cartas en los cuales se puede modificar el logotipo y las caracteristicas del nombre de la empresa, direccion etc. etc. es decir que para el nombre de la empresa se puede modificar el tipo de fuente, tamaño, estilo alineacion etc. etc. y asi para cada uno de los elementos del machote.
Primero lo hice utilizando el registro de windows pero se me hizo muy complicado porque para cada elemento tendria una entrada en el registro por ejemplo para el nombre de la empresa tendria una entrada que se llmaria Titulo1 y ahi todos los valores para ese elemento como Fuente, tamanio, color, subrayado, negrita, italica etc, etc y asi para todos los demas elementos.
Pero me di cuenta que pues todas esas caracteristicas ya estaban implementadas en el componente Tlabel y para el logo el componente Timage, pero por alguna razon parece que no se guardan estos componenete he aqui la implementacion
TregMachote=record
Titulo1:Tlabel;
Titulo2:Tlabel;
Titulo3:Tlabel;
Logotipo:Timage;
Fecha:Tlabel;
Linea1:Tlabel;
Linea2:Tlabel;
end;
TarchivoMachote=file of TregMachote;
var
ArchivoMachote:TarchivoMachote;
Luego al momento de abrir el editor del machote tengo esto
assignFile(archivoMachote,ruta+'archivosmachote.dat');
{$i-}
reset(archivoMachote);
{$i+}
if ioresult <> 0 then begin
crearMachote;
end;
cargarValores
Luego dentro de crearMachote esta esto ( Vmachote : TregMachote )
rewrite(archivoMachote);
vMachote.Titulo1:=Tlabel.Create(Self);
.......
with vMachote.Titulo1 do begin
Caption:='Nombre de su Empresa';
with font do begin
size:=14;
style:=[FsBold];
Name:='Arial';
color:=0;
end;
Alignment:=taCenter;
visible:=True;
end;
..........
write(archivoMachote,vMachote);
Y en Cargar valores
vMachote.Titulo1:=Tlabel.Create(Self);
.........
seek(archivoMachote,0);
read(archivoMachote,vMachote);
image1.Picture:=vreceta.Logotipo.Imagen.Picture;
with vMachote.Titulo1 do begin
cabeza1.Caption:=caption;
cabeza1.Font:=font;
cabeza1.Visible:=visible;
end;
..............
La primera vez que se crea el archivo .dat si se ven las cadenas de inicializacion (como "Nombre de su Empresa") con los colores, tamaños y tipos de fuentes especificados y durante la primera vez si cierro el editor y se vuelve a abrir ahi estan los cambios y todo pero si cierro el programa y luego al volverlo a ejecutar se abre el editor de machote ya no aparecen las cadenas al parecer si se guardan los componenetes pero por ejemplo el campo caption esta vacio al igual que el campo picture de la imagen.
Alguien podria decirme a que se debe
Muchas gracias
Roberto
Valora esta pregunta


0