Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Cargar imagen desde directorio (https://www.clubdelphi.com/foros/showthread.php?t=45398)

domenor 02-07-2007 05:37:06

Cargar imagen desde directorio
 
Hola,

Como puedo hacer para que el usuario reemplace la imagen de un Timage buscando en su pc?. LLegue hasta abrir el directorio pinchando sobre el Timage y... hasta ahí nomás llegue, jeje.

"pensar que pase la parte de la base de datos creyendo que eso era lo dificil"


Salu2

dec 02-07-2007 05:46:44

1 Archivos Adjunto(s)
Hola,

Puedes utilizar el componente "TOpenPictureDialog" y verás que no resulta demasiado complicado, en principio:

Código Delphi [-]
procedure TfrmPrincipal.btnImagenClick(Sender: TObject);
begin
  if dlgImagen.Execute then
    img.Picture.LoadFromFile(dlgImagen.FileName);
end;

Nota: Si no cuentas con el componente mencionado, puedes usar el componente "TOpenDialog"... al fin y al cabo el primer componente añade ciertas características, como una vista previa de la imagen a abrir, pero, por lo demás, "TOpenDialog" puede servirte igualmente.

Delphius 02-07-2007 05:51:38

El TImage tiene un procedimiento LoadFromFile(), puedes valerte de éste suministrandole como parámetro la ruta completa del archivo.
Y para seleccionar un archivo, pues con un OpenPictureDialog puedes hacerlo.

En fin, algo como:

Código Delphi [-]
if OpenPictureDialog1.Execute
     then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

Saludos,

EDITO Y AGREGO:
Pues... como que dec se me apuró:D

reevil 02-07-2007 05:56:26

Suponiendo que tienes uno de cada uno de estos componentes:

Button
Image
OpenDialog ***este ultimo debe validarse para que solo permita seleccionar archivos de imagen***

solo tendrias que poner en el evento onclick del boton algo como esto:
Código Delphi [-]
if(OpenDialog1->Execute())
{
    Image1->Picture->LoadFromFile(OpenDialog1->FileName);
}
esta en c++ pero no hay mayor problama para que lo pases a pascal
saludos

reevil 02-07-2007 05:59:11

que rapides la suya :D
va uno a tomar agua, regresa a poner su solucion y me topo con que ya hay dos respuestas antes :eek:

dec 02-07-2007 06:00:24

Hola,

Ji, ji, ji, ji... :D :D :D

domenor 02-07-2007 06:13:22

Funcion Perfecto !!

Solo me faltaba el If...

Al poner solo

[-]imInfLogo.Picture.LoadFromFile(JvOpenDialog1.FileName);


Me arrojaba el error "Unknown picture file extension"

Ahora como dejo permanente el cambio?. Para que al abrir nuevamente el programa mantenga la nueva imagen - su logo -

Muy agradecido.

Delphius 02-07-2007 06:18:26

El TImage no soporta todos los formatos, solo ICO, BMP, JPG (declarar en la uses JPEG) y dos más que no recuerdo.

Cita:

Empezado por domenor
Ahora como dejo permanente el cambio?. Para que al abrir nuevamente el programa mantenga la nueva imagen - su logo -

Eso es otro cantar. Revisa lo que se ha dicho aquí.

Saludos,

domenor 02-07-2007 06:22:32

Bastante complicado no?

El filename es un path al archivo?

Puedo extraer el path y guardarlo en la base de datos? no la imagen solo su ruta.

Salu2

Delphius 02-07-2007 06:27:09

Cita:

Empezado por domenor
El filename es un path al archivo?

Puedo extraer el path y guardarlo en la base de datos? no la imagen solo su ruta.

Si, el FileName es el path.
Si, claro que se puede extraer el path y guardarlo en la base de datos, en un archivo plano, en el registro, en un INI... en donde desees.

Saludos,

domenor 02-07-2007 06:46:08

Ok, Ya tengo con que seguir.

Les agradezco a todos por sus acertadas respuestas y buena voluntad.

Salu2

domenor 02-07-2007 06:50:16

Olvidaba agradecer a dec por ayudarme a descubrir las Jedy - una maravilla - leyendo su consejo en otro hilo.

Salu2


ledesma78 16-10-2007 16:50:42

Descargar La Imagen Del Openpicturedialog
 
:confused:disculpa, yo tengo un problema similar, pero yo si cargo bien la imgen. mi problema es que no puedo descargar el openpicturedialog, osea selecciono una imagen y guardo la direccion en la BD y se limpia por que tengo image1.picture:=nil, pero si vuelvo a ejecutar el dialogo y no selecciona una imagen (le doy cancelar) vuelve a cargar la imagen anterior ya que se quedo la direccion en la propiedad del openpicturedialog.filename, y no se como hacer para poder quitar esa direccion del openpicturedialog, con el fin de que se encuentre descargado, gracias y espero su ayuda:confused:

Lepe 16-10-2007 16:54:30

En principio todos los diálogos se deben usar así:
Código Delphi [-]
if OpenPictureDialog.Execute then
begin
   // hacer todo lo que sea
end
else // el usuario le ha dado al boton cancelar o ha cerrado la ventana con la X
begin
  picture1.picture := nil;
  OpenPictureDialog.filename := EmptyStr;
end;

Saludos


La franja horaria es GMT +2. Ahora son las 23:17:43.

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