Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2014
Valee Valee is offline
Miembro
NULL
 
Registrado: jul 2014
Posts: 19
Poder: 0
Valee Va por buen camino
Como insertar imagen en delphi

Holaa!!!! Necesito saber como desde una carpeta que tengo guardada imágenes de las banderas del mundo las pueda mostrar de acuerdo al nombre del país que el usuario me ingresa. Por ejemplo: el usuario ingresa ARGENTINA, y en la carpeta tengo una imagen de nombre ARGENTINA la cual se asigna en el Image correspondiente.
Se que se puede sin necesidad de cargar todas las banderas en un formulario (como hice). Pero nose como hacerlo, o como generar la ruta para asignarla.
Responder Con Cita
  #2  
Antiguo 13-07-2014
Valee Valee is offline
Miembro
NULL
 
Registrado: jul 2014
Posts: 19
Poder: 0
Valee Va por buen camino
Quiero aclarar que se trata de un fixture que realizo, por lo cual tiene que servir para cualquier mundial.
Debido a que no encontré una forma de poner en un stringgrid una bandera del país que corresponde decidí que al listar se muestren todas las banderas que van a participar en ese mundial. Por lo que la carpeta contiene las banderas de TODOS los países, y solo se muestran lo de los países que juegan dicho mundial
Responder Con Cita
  #3  
Antiguo 13-07-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Valee.
Cita:
Empezado por Valee Ver Mensaje
...
Debido a que no encontré una forma de poner en un stringgrid una bandera del país que corresponde ...
Hola Valee.

No especificaste un detalle importante: Con que formato están almacenadas las imágenes.

Como comentas tener guardadas las imágenes en una carpeta estimo que el nombre del archivo de cada imágen se corresponde con el del país.

Bajo el supuesto anterior y tratándose de imágenes de formato JPG, te hice un ejemplo que usa un TStringGrid con dos columnas. En la primera carga el nombre del país (extraído del nombre de archivo) y en la segunda la imágen almacenada en él.

La imágen se dibuja en StringGrid en el evento OnDrawCell y se extrae de un TImageList donde fué previamente almacenada.
Código Delphi [-]
...

implementation

uses Jpeg;

...

procedure TForm1.btnLoadImagesClick(Sender: TObject);
// también podrías usar el evento OnCreate del form,
// en ese caso podes quitar la línea: StringGrid1.Invalidate;
const
  IMG_PATH = 'C:\pruebas\Imagenes\';
var
  FS: TFileStream;
  SR: TSearchRec;
  JPEG: TGraphic;
  Bitmap: TBitmap;
  c: Integer;
begin
  if FindFirst(IMG_PATH+'*.JPG', faArchive, SR) = 0 then
  begin
    c:= StringGrid1.FixedRows;
    repeat
      FS:= TFileStream.Create(IMG_PATH+SR.Name, fmOpenRead);
      JPEG:= TJPEGImage.Create;
      Bitmap:= TBitmap.Create;
      try
        StringGrid1.Cells[0, c]:= ChangeFileExt(SR.Name, '');
        FS.Seek(0, soFromBeginning);
        JPEG.LoadFromStream(FS);
        Bitmap.Width:= JPEG.Width;
        Bitmap.Height:= JPEG.Height;
        Bitmap.PixelFormat:= pf24bit;
        Bitmap.Canvas.Draw(0, 0, JPEG);
        ImageList1.Add(Bitmap, Bitmap);
        Inc(c);
      finally
        JPEG.Free;
        Bitmap.Free;
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
    StringGrid1.Invalidate;
  end;
end;

// Evento OnDrawCell donde es dibujada la bandera
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if ACol = 1 then
    with Sender as TStringGrid do
    begin
      Canvas.FillRect(Rect);
      ImageList1.Draw(Canvas, Rect.Left, Rect.Top, ARow);
      Canvas.TextOut(Rect.Left+ImageList1.Width, Rect.Top, Cells[ACol, ARow]);
    end;
end;
Las imágenes deberán tener tamaños homogéneos y deberás ajustar las propiedades Height y Width del ImageList a los de las imágenes almacenadas. Y a fin de la correcta presentación, lo mismo con las propiedades ColWidths y RowWidths del StringGrid.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo insertar una imagen? kbaby Varios 6 19-02-2008 15:50:22
Como insertar una imagen herodes SQL 0 03-08-2005 00:05:33
¿Cómo insertar una imágen en un lisbox o un memo? Acuarius3000 Gráficos 3 27-06-2005 08:44:53
Como Insertar una imagen dmagui Firebird e Interbase 2 23-06-2005 20:14:31
como insertar una imagen en al Messenger JefeNet Varios 0 09-03-2005 19:06:56


La franja horaria es GMT +2. Ahora son las 23:20:03.


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
Copyright 1996-2007 Club Delphi