Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Fichero de recursos

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Fichero de recursos Responder citando

Estoy creando un control que utiliza un .bmp de un fichero de recursos que he incluido en mi proyecto.

Cuando lo compilo y lo pruebo en tiempo de diseño, el control aparece con el .bmp perfectamente. Puedo insertarlo en un Form y parece que actúa bien. Sin embargo cuando ejecuto la aplicación, me dice que no ha encontrado el recurso en cuestión.

Supongo que habrá que especificar de alguna forma en las opciones del proyecto del paquete, que incluya el fichero de recursos para que no esté disponible sólo en tiempo de diseño sino también en tiempo de ejecución...

Resumiendo: ¿cómo hago que un recurso esté disponible para un componente en tiempo de ejecución?

Volver arriba
Mensaje    Asunto: Fichero de recursos Responder citando

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);


Volver arriba
Mensaje    Asunto: Fichero de recursos Responder citando

Hola, creo que se lo que pasa

veras, para que esa imagen quede guardada en el archivo de recursos debes colocar un componente no visual llamadao ImageList, que sirve para guardar bitmaps para usar en bitbuttons o cosas parecidas.

asi cuando le hace falta al programa tira de las imagenes alli almacenadas

Si no me equivoco tienen que estar a 12X12 bits

Bueno, creo que es eso. Si he acertado confirmamelo y asi sabremos un poco mas los dos

Venga, hasta luego

Volver arriba
Mensaje    Asunto: Fichero de recursos Responder citando

Muchas gracias por tu respuesta Javier, pero no es exactamente lo que me pasa a mí. Veras: quiero crear un control que sea básicamente un botón con un gráfico en forma de lupa para insertarlo luego en los formularios, etc. Para ello, he creado un componente a partir del TBitBtn. Pues bien, en el constructor del componente hago algo así:

Glyph->LoadFromResourceName((int) HInstance,"BITMAP_LUPA");

Por supuesto, en el proyecto existe un fichero .RC con el mapa de bits.

Luego lo compilo, lo instalo en el IDE y llega la hora de probarlo. Abro un nuevo proyecto, inserto el control en la ficha, y funciona! Aparece un botón con un gráfico en forma de lupa. Lo he conseguido pienso. Pero no, más quisiero yo: cuando compilo el proyecto y arranca la aplicación me dá un error de que no ha encontrado el recurso llamado BITMAP_LUPA. No me explico por qué funciona en tiempo de diseño y no cuando ejecuto la aplicación ¿?

Muchas gracias por todo y espero no haber sido muy pesado...

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.