Ver Mensaje Individual
  #13  
Antiguo 02-02-2006
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Reputación: 19
jmariano Va por buen camino
Lógicamente, todos los cambios que hagas sobre posición y tamaño estarán sólo almacenados en memoria (de ahí que se pierdan al salir del formulario), por lo que tendrás que almacenarlo en algún medio "no volátil", como un archivo en el disco duro, por ejemplo.

Para ello puedes utilizar la clase TStringList que te permite almacenar y cargar fácilmente cadenas de texto o utilizar las funciones que posee Delphi para almacenar y recuperar el estado (o recursos) de un objeto o componente.

Te pongo un ejemplo que viene en la ayuda de Delphi para "convertir" un componente a cadena de caracteres y viceversa:
Código Delphi [-]
function ComponentToString(Component: TComponent): string;

var
  BinStream:TMemoryStream;
  StrStream: TStringStream;
  s: string;
begin
  BinStream := TMemoryStream.Create;
  try
    StrStream := TStringStream.Create(s);
    try
      BinStream.WriteComponent(Component);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      Result:= StrStream.DataString;
    finally
      StrStream.Free;

    end;
  finally
    BinStream.Free
  end;
end;

function StringToComponent(Value: string): TComponent;
var
  StrStream:TStringStream;
  BinStream: TMemoryStream;
begin
  StrStream := TStringStream.Create(Value);
  try
    BinStream := TMemoryStream.Create;
    try
      ObjectTextToBinary(StrStream, BinStream);
      BinStream.Seek(0, soFromBeginning);
      Result := BinStream.ReadComponent(nil);

    finally
      BinStream.Free;
    end;
  finally
    StrStream.Free;
  end;
end;

(Consulta la ayuda de Delphi si tienes dudas de lo que hace ambos procedimientos porque está mu' bien explicado)

Saludos!
Responder Con Cita