PDA

Ver la Versión Completa : Timage [Help]


MesiasPeru
21-11-2019, 01:07:03
Hola a todos en mi búsqueda por Internet de algún tipo de solución a mi problema me tope con este foro y espero puedan ayudarme.

Al escoger una opción me muestra la imagen de dicha opción, en este caso si yo escojo cara alegre me muestra la cara alegre, y asi con las demas caras:

https://i.imgur.com/0rNwuPC.jpg (el foro no me permite pones imagen, copiar el link en el navegador para abrir la imagen)

y cuando lo ejecuto sale todo bien:

https://i.imgur.com/c9gL9na.jpg (el foro no me permite pones imagen, copiar el link en el navegador para abrir la imagen)
https://i.imgur.com/LLzgUrx.jpg (el foro no me permite pones imagen, copiar el link en el navegador para abrir la imagen)

Pero mi problema esta aqui: si ese archico ejecutable o la aplicacion (unicamente la aplicacion) lo llevo a otro computadora... sale error ya que en esa computadora no estan las imagenes de las caras, lo que yo quisiera es que ese ejecutable ya tenga guardado esas 3 imagenes o mas.

alguien que sepa como hacer eso porfavor.

movorack
21-11-2019, 03:08:39
Hola, puedes manejar esas imágenes en un archivo de recursos (https://www.thoughtco.com/how-delphi-uses-resource-files-4077232)

MesiasPeru
21-11-2019, 06:08:23
asu amigo me puedes detallas mas, o alguna guia de eso en youtube, busque pero no encuentro algun ejemplo de donde guiarme :(

tambien estaba pensando en ves de un archivo de imagen colocar un link de imagen, pero tampoco encontre ninguna guia sobre eso.

ElKurgan
21-11-2019, 07:16:58
Por ejemplo, en este enlace (http://delphiaccess.com/foros/index.php/topic/13298-truco-delphi-cargar-una-imagen-jpeg-desde-la-seccion-de-recursos-del-ejecutable/)tienes un truco simple y sencillo para hacer esto

Un saludo

Neftali [Germán.Estévez]
21-11-2019, 11:57:13
Si haces una búsqueda en los foros encontrarás muchos hilos sobre imágenes y cómo almacenarlas y extraerlas de recursos:


https://www.clubdelphi.com/foros/showthread.php?t=54335&highlight=recurso
http://www.clubdelphi.com/foros/showpost.php?p=314531
https://www.clubdelphi.com/foros/showthread.php?t=58156&highlight=recurso
https://www.clubdelphi.com/foros/showthread.php?t=87184&highlight=recurso
https://www.clubdelphi.com/foros/showthread.php?t=91089&highlight=recurso
https://www.clubdelphi.com/foros/showthread.php?t=90400&highlight=recurso

MesiasPeru
21-11-2019, 15:29:40
acabo de subir lo estaba haciendo mediafire.com/file/ftkbvx2gqlel0kz/prueba.rar/file

si alguien lo puede hacer no pesa ni 250kb con las imagenes incluidas, si alguien lo puede hacer para luego yo revisarlo y analizarlo porfavor se lo agradeceria muchisimo.

ecfisa
21-11-2019, 17:47:31
Hola.

Estuve mirando tu código y funciona correcto mostrando las caras el único problema que veo es que el archivo caraalegre.jpg es en realidad una cara triste, de allí que dos ítems diferentes muestren la misma imágen.

Para resolver tu planteo tenes dos opciones, una es copiar los archivos .JPG junto con tu ejecutable y cargarlos del modo que lo haces, pero el programa fallaría si por ejemplo alguien borra alguna imágen.

Y la otra, la mejor, es la que te comentaron y es poner esas imágenes en un archivo de recurso. Los pasos a hacerlo de modo simple:

Copia el archivo BRC32.EXE (buscalo en la carpeta donde esté instalado Delphi) a tu carpeta PRUEBA.

Con el block de notas crea un archivo de texto con el siguiente contenido:

1 RCDATA caraalegre.jpg
2 RCDATA caratriste.jpg
3 RCDATA carallorando.jpg

y guardalo, por ejemplo con el nombre de 'CARAS.RC'.

Desde el explorador de windows te situas en la carpeta PRUEBA y:
https://i.postimg.cc/1Rcyg2Sk/foto-1.png
luego del click derecho del mouse te quedará así:
https://i.postimg.cc/FFnDxsh3/foto-2.png
borras lo pintado en azul con la tecla Backspace, escribes CMD y presionas la tecla Enter.
Ya en consola escribes la línea de comando: BRC32 -R -V CARAS.RC
https://i.postimg.cc/MKjBC1QZ/foto-3.png
y la ejecutas presionando la tecla Enter, te creará un archivo CARAS.RES.


Luego tu código Delphi debería ser algo así:

...
implementation

implementation

uses JPeg;

{$R *.dfm}
{$R CARAS.RES}

procedure TForm1.FormCreate(Sender: TObject);
begin
cbb1.Items.Clear;
cbb1.Items.Add('cara alegre'); // 1
cbb1.Items.Add('cara triste'); // 2
cbb1.Items.Add('cara llorando'); // 3
end;

procedure TForm1.cbb1Change(Sender: TObject);
const
CARAS: array[1..3] of string = ('#1','#2','#3');
var
RS: TResourceStream;
JPG: TJPegImage;
begin
if cbb1.ItemIndex > -1 then
begin
RS := TResourceStream.Create(hInstance,CARAS[cbb1.ItemIndex+1], RT_RCDATA);
JPG := TJPegImage.Create;
try
RS.Position := 0;
JPG.LoadFromStream(RS);
img1.Picture.Assign(JPG);
finally
RS.Free;
JPG.Free;
end;
end;
end;
...


Saludos :)

ecfisa
21-11-2019, 20:14:31
Hola.

Te adjunto los archivos + ejecutable que me solicitaste por mp, pero básicamente es lo que te indiqué en el mensaje anterior.

Fijate que una vez que hayas compilado el programa con los recursos no necesitas mas de los archivos de imagen, solo el ejecutable .

Enlace a la descarga: [Aquí (http://www.mediafire.com/file/1d1b6o24ralc9e4/caras.zip/file)]

Saludos :)

MesiasPeru
22-11-2019, 00:48:31
En el CMD me aparece esto y no se si deberia salir tal cual esta en la imagen:

https://i.imgur.com/UBpJLXq.jpg

ya que no crea ningun archivo RES.

Casimiro Notevi
22-11-2019, 11:20:18
Brc32 -r -v Caras.rc

ecfisa
22-11-2019, 17:30:32
https://i.postimg.cc/t4qKb1zS/foto-4.png

Perdón, el error fué mío al preparar las imágenes. :o

Saludos :)

MesiasPeru
23-11-2019, 21:01:42
Gracias por la gran ayuda.

foto funciona bien, ahora lo probare en mi proyecto real el cual es mas grande y tiene muchas mas imagenes.