dec
30-06-2006, 14:17:22
Extraer recursos (Resources) en tiempo de ejecución.
Las aplicaciones Delphi (y muchas otras) pueden contener iconos, texto y todo tipo de datos que nos sea necesario en el mismo ejecutable. Este tipo de datos son conocidos como Recursos (Resource) y Delphi nos proviene de formas de utilizarlos muy fácilmente con TResourceStream.
Suponiendo que queramos adjuntar un texto o cualquier dato a nuestro ejecutable, y extraerlo en tiempo de ejecución, podemos añadirlo desde el IDE mediante el menú -View -Resources. Entonces nos aparece una lista donde pulsando en el menú contextual le diremos que vamos a añadir un nuevo recurso (new) y su tipo (a elegir), así como su nombre. Echo esto, desde programa tan solo tendremos que instanciar una TResourceStream.
Para extraerlo con el ejemplo siguiente :
procedure TForm1.ExtraeRecurso;
var
Resource: TResourceStream;
begin
Resource := TResourceStream.Create( MainInstance, 'DATA1', RT_RCDATA );
Resource.SaveToFile( 'c:\text.txt' );
Resource.Free;
end;
Donde MainInstance es la variable que contiene la instancia de nuestra aplicación (no hay que crearla, ya existe), 'DATA1' es el nombre que hemos dado a nuestro recurso y RT_RCDATA es el tipo de recurso que extraemos. Como se ha dicho, existen varios tipos de recurso, para más información consultar TResourceStream.
Las aplicaciones Delphi (y muchas otras) pueden contener iconos, texto y todo tipo de datos que nos sea necesario en el mismo ejecutable. Este tipo de datos son conocidos como Recursos (Resource) y Delphi nos proviene de formas de utilizarlos muy fácilmente con TResourceStream.
Suponiendo que queramos adjuntar un texto o cualquier dato a nuestro ejecutable, y extraerlo en tiempo de ejecución, podemos añadirlo desde el IDE mediante el menú -View -Resources. Entonces nos aparece una lista donde pulsando en el menú contextual le diremos que vamos a añadir un nuevo recurso (new) y su tipo (a elegir), así como su nombre. Echo esto, desde programa tan solo tendremos que instanciar una TResourceStream.
Para extraerlo con el ejemplo siguiente :
procedure TForm1.ExtraeRecurso;
var
Resource: TResourceStream;
begin
Resource := TResourceStream.Create( MainInstance, 'DATA1', RT_RCDATA );
Resource.SaveToFile( 'c:\text.txt' );
Resource.Free;
end;
Donde MainInstance es la variable que contiene la instancia de nuestra aplicación (no hay que crearla, ya existe), 'DATA1' es el nombre que hemos dado a nuestro recurso y RT_RCDATA es el tipo de recurso que extraemos. Como se ha dicho, existen varios tipos de recurso, para más información consultar TResourceStream.