Este es el código para guardar y cargar los componentes de una form.
De cualquier manera de tanto ensayar y ensayar, hice el intento de guardar en un archivo un arreglo declarándolo así:
a:
File of Array of integer;
y sale el siguiente error
[Error] WindowsDesigner.pas(107): Type 'dynamic array' needs finalization - not allowed in file type
pero cuando lo declaro así
a:
File of Array[1..100] of integer;
al compilar no sale error
¿Tiene esto algo que ver con que Los componentes de la form no se guarden completamente?.
Mi gran problema es que realmente necesito en la propiedades arreglos.
!y vaya la contradicción ¡.... cuando declaro la propiedad como un arreglo dinámico no sale error, y cuando declaro la propiedad como un arreglo estático sale el error de que una propiedad no se puede declarar como arreglo
Código:
procedure TForm2.Load;
var
Stream: TFileStream;
i:Integer;
begin
Form3.OpenDialog1.Execute;
Stream := TFileStream.Create(Form3.OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
//Borre todo lo que hay en la form de diseño
LimpiarForm;
//Lee los componentes del archivo y lo inserta en la form de diseño
try
Stream.ReadComponent(Self);
finally
Stream.Free;
end;
end;
procedure TForm2.Save;
var
Stream: TFileStream;
begin
Form3.SaveDialog1.Execute;
Stream := TFileStream.Create(Form3.SaveDialog1.FileName, fmCreate);
try
Stream.WriteComponent(Self);
finally
Stream.Free;
end;
end;
procedure TForm2.LimpiarForm;
var i,a:Integer;
begin
a:=ComponentCount;
for i:=0 to a-1 do
Components[ComponentCount-1].Free;
end;