Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Timage [Help] (https://www.clubdelphi.com/foros/showthread.php?t=94307)

MesiasPeru 21-11-2019 01:07:03

Timage [Help]
 
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:

(el foro no me permite pones imagen, copiar el link en el navegador para abrir la imagen)

y cuando lo ejecuto sale todo bien:

(el foro no me permite pones imagen, copiar el link en el navegador para abrir la imagen)
(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

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 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/sho...hlight=recurso
http://www.clubdelphi.com/foros/showpost.php?p=314531
https://www.clubdelphi.com/foros/sho...hlight=recurso
https://www.clubdelphi.com/foros/sho...hlight=recurso
https://www.clubdelphi.com/foros/sho...hlight=recurso
https://www.clubdelphi.com/foros/sho...hlight=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:
  1. Copia el archivo BRC32.EXE (buscalo en la carpeta donde esté instalado Delphi) a tu carpeta PRUEBA.
  2. 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'.
  3. Desde el explorador de windows te situas en la carpeta PRUEBA y:

    luego del click derecho del mouse te quedará así:

    borras lo pintado en azul con la tecla Backspace, escribes CMD y presionas la tecla Enter.
  4. Ya en consola escribes la línea de comando: BRC32 -R -V CARAS.RC

    y la ejecutas presionando la tecla Enter, te creará un archivo CARAS.RES.

Luego tu código Delphi debería ser algo así:
Código Delphi [-]
...
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í]

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:



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



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.


La franja horaria es GMT +2. Ahora son las 15:58:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi