SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Goselito_0 en Domingo 30 de Marzo de 2008, 01:13

Título: ¿porque Se Me Queda Colgado El Programa?
Publicado por: Goselito_0 en Domingo 30 de Marzo de 2008, 01:13
Hola!
Quiero insertar una imagen introduciendo el nombre del archivo en un TEdit e insertar la imagen mediante TImage con las propiedades "AutoSize" y "Center" a true. Ademas pretendo controlar la excepcion de que el archivo no existiera o estruviera dañado, para todo esto utilizo el siguiente codigo:

(En el evento "OneKeyPress" del campo Edit)

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if (Key == 13)
     {
     try
          {Image1->Picture->LoadFromFile(Edit1->Text);}
     catch (...)
          {ShowMessage("Archivo no se encuentra o Incorrecto");}
     Edit1->SelectAll();
     }
}

¿Porque se queda colgado el programa?¿He pasado por alto algo importante?

Saludos y Gracias de antemano.
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: el_shanky en Domingo 30 de Marzo de 2008, 23:09
Pero x que en el ONkeyPress del Edit? :S x que no le pones un botón que loa priete cuando ya hya escrito el path en su totalidad???

Aunque si me preguntas a mi yo te recomendaria fuertemente que uses un OpenDialog, no solo te lo deja estéticamente mejor sinó que te previene de que el usuario se equivoque al escribir el path de la imagen lo que es mooooy común que pase!!!

Yo te recomiendo eso, OpenDialog que se encuentra en la solapa Dialogs...

Ya si queres ahcerlo de esa menra igual.. no c tendria que ver bien el código...
Avisame cualqueir cosa!

salute
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: Goselito_0 en Miércoles 2 de Abril de 2008, 16:05
En un principio lo puse en el OnKeyPress del Edit para que se cargara la imagen al pulsar <intro>.
El OpenDialog deduzco que es una especie de "examinar" que tantas veces nos encontramos? Si es asi lo veo buena idea, asi nos evitamos los errores que acarrea que el usuario introduzca mal el nombre del archivo. El problema es que no se utilizar el OpenDialog :(  He buscado algo de info pero ninguna me ha ayudado mucho.

Gracias y saludos.
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: Goselito_0 en Miércoles 2 de Abril de 2008, 17:49
Vale, ya he investigado un poco mas acerca del OpenDialog y ya se como va mas o menos. Es lo que yo prensaba, una especie de "examinar".

Pero sigo teniendo un gran problema, lo que quiero hacer es cargar una imagen almacenada en disco al programa, entonces:
     
- Tengo que poner un TImage vacio y asociarlo de alguna manera con el         OpenDialog??

Como lo hago?? Ayuda please :( Cualquier comentario sera de gran utilidad.

Gracias de antemano.
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: AnimaSubtilis en Miércoles 2 de Abril de 2008, 17:54
Es sencillos....

Lo unico que se tiene que hacer en el Button es:

OpenDialog1->Execute();
Image1->Picture->LoadFromFile(OpenDialog1->FileName);

y ya esta.......

 :rolleyes: eso es todo...espero que sirva de algo........

saludes
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: Elforious en Miércoles 2 de Abril de 2008, 19:09
Lo que yo hago normalmente es colocar una variable global como "char Direccion_Archivo_Foto[300];", y pongo un botón que ejecuta a un OpenPictureDialog:

Código: Text
  1.  
  2. void __fastcall TForm1::Button_Buscar_FotoClick( TObject *Sender)
  3. {
  4.         if(OpenPictureDialog_Foto-&#62;Execute())//Verdadero si haces click en Aceptar
  5.         {
  6.                Image_Foto-&#62;Picture-&#62;LoadFromFile(OpenPictureDialog_Foto-&#62;FileName);
  7.                //para poner la foto que elegiste al TImage.
  8.  
  9.                strcpy(Direccion_Archivo_Foto, OpenPictureDialog_Foto-&#62;FileName.c_str() );
  10.                //Guardo la dirección en la variable &#34;Direccion_Archivo_Foto&#34;.
  11.         }
  12. }
  13.  
  14.  

y como ya tenés la dirección de la foto guardada en la variable global "Direccion_Archivo_Foto" no te da muchos problemas para manejar los datos.

Si querés cargar imagenes JPEG tenés que incluir la unidad jpeg.hpp:

#include <jpeg.hpp>

Espero haber ayudado.
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: el_shanky en Miércoles 2 de Abril de 2008, 20:42
BIEN AHÍ!!!!! Así que vas a usar el OpenDialog???
Y SI es un examinar! Es el mismo que usa windows para todas sus aplicaciones que te permitan seleccionar un archivo en tu disco.

Bueno como te decian aca los vagos existe uno puntual que sirve para imágenes. que es el OpenPictureDialog que tmb se encuentra en la solapa dialogs.

Basta con ponér un botón en algún lado par llamar a este OpenPictureDialog de esta manera...

Código: Text
  1.  
  2. void __fastcall TForm1::BitBtn1Click(TObject *Sender)
  3. {
  4. if(OpenPictureDialog1-&#62;Execute())//Lo pongo dentro de un if en caso de que se apriete el boton CANCELAR
  5. Image1-&#62;Picture-&#62;LoadFromFile(OpenPictureDialog1-&#62;FileName);
  6. }
  7.  
  8.  

Y listo ya vas a tener un dialogo que te va a permitir buscar la imagen y previsualizarla! !! Spero que te haya servido!

exitos
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: Goselito_0 en Jueves 3 de Abril de 2008, 13:53
No sabeis lo valiosa que es vuestra ayuda y lo bien que se siente uno cuando ve algo de luz en sus dudas  ;)

Tras probar vuestros codigos, y sin saber porque motivo ni a que esta relacionado, me sale un error en el centro de la pantalla con una "X" roja que dice:
"Project Project1.exe raised exception class EInvalidGraphic with message 'Unknown picture file extension (.lnk)'. Process stopped. Use stepor Run to continue."     (He intentado adjuntar la imagen en jpg pero no he sabido como)
Con la unica opcion de pulsar "OK", y tras esto se queda colgao el programa.

Esta relacionado con algo que estoy pasando por alto?

Gracias de nuevo, vuestra ayuda es de gran utilidad.
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: el_shanky en Jueves 3 de Abril de 2008, 20:28
Estas tratando de cargar una imagen jpg seguramente...

lo que tenes que ahcer es incluir esto:

Código: Text
  1.  
  2.  
  3. #include &#34;jpeg.hpp&#34;
  4.  
  5.  
  6.  

Cone so seguramente ya te va a andar de 10!

exitos!
Título: Re: ¿porque Se Me Queda Colgado El Programa?
Publicado por: Goselito_0 en Jueves 3 de Abril de 2008, 22:50
Vale! ya encontre el fallo,
me daba el error porque intentaba abrir la imagen desde un acceso directo en el escritorio.

Este tema me ha quedao claro :)

Seguire preguntando mis dudas en nuevos post. Muchisimas gracias.