Hola
Esta pregunta la tienes contestada en alguna parte del foro pues yo la he cogido de este.
Te posteo aqui parte de la respuesta de Leo
(que para mi es completamente genial por lo clarito que lo explica)Hola WBuilder:
Para incluir otros ficheros dentro de tu programa tienes que usar un fichero de recursos .RC
(.RES compilado). Por ejemplo, vamos a ver paso a paso como incluir dentro del ejecutable de
nuestro proyecto un fichero .jpg y otro .exe:
1.- Copiamos al directorio de nuestro proyecto un fichero .jpg al que llamaremos "foto.jpg"
y copiamos un ejecutable también en el mismo directorio, por ejemplo vamos a copiar el "notepad.exe"
que encontramos en el directorio de Windows.
2.- Creamos en el mismo directorio un fichero con extension .RC al que llamaremos "MisRecursos.RC",
dentro de el ponemos las siguientes lineas:
/* MisRecursos.RC */
MI_IMAGEN RCDATA "foto.jpg"
MI_PROGRAMA RCDATA "notepad.exe"
3.- A continuación vamos a añadirlo a nuestro proyecto, para ello vamos al menú a
la opción "Project >> Add to Project" y escribimos o seleccionamos ahí nuestro fichero
"MisRecursos.RC".
4.- Y por ultimo vamos a ver como usarlo dentro de nuestro código:
- Por ejemplo si queremos cargar la imagen en un TImage:
// Añadir: #include <jpeg.hpp>
// Añadimos un TImage y un TButton
// y al OnClick del mismo lo siguiente
TJPEGImage *jpg = new TJPEGImage;
jpg->LoadFromStream( &TResourceStream(0, "MI_IMAGEN", RT_RCDATA) );
Image1->Canvas->Draw(0, 0, jpg);
delete jpg;
- o bien si queremos extraer los ficheros:
// Para probar vamos a copiarlos en c:\
// Añadimos un TButton
// y al OnClick del mismo lo siguiente
TResourceStream(0, "MI_IMAGEN", RT_RCDATA).SaveToFile("c:\\foto.jpg");
TResourceStream(0, "MI_PROGRAMA", RT_RCDATA).SaveToFile("c:\\notepad.exe");
Espero que sea lo que buscas y que se entienda bien.
Saludos.
WBuilder
posted 13-03-2001 21:57
--------------------------------------------------------------------------------
Muchisimas gracias _Leo.
Esto me sevirá, lo he entendido muy bién todo.
Lo que realmente buscaba era tener sólo un ejecutable sin ningún archivo colgando.
Te agradezco tu interés y que sepas que esto es una gran ayuda.
dcelso@terra.es
posted 19-03-2001 01:37
--------------------------------------------------------------------------------
una observacion en el codigo.
Image1->Canvas->Draw(0, 0, jpg);
se puede hacer de la siguiente forma que es mas comoda
Image1->Add(jpg);