Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2024
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 92
Poder: 22
jmbarrio Va por buen camino
Cargar Imagenes a un TlistView

Buenas tardes, tengo un listview en el que cargo las imágenes de la carpeta Pictures. El codigo es

Código Delphi [-]
procedure TF_EliminarFotos.FormShow(Sender: TObject);
var
  FileList: TStringDynArray;
  FileName, FolderPath, cad: string;
  Item: TListViewItem;

begin
  ListFotos.AllowSelection := True;
  ListFotos.Items.Clear;
  FolderPath := TPath.Combine(TPath.GetSharedPicturesPath, '');
  // Lista todos los archivos en la carpeta
  FileList := TDirectory.GetFiles(FolderPath, 'foto_tomada_*.jpg', TSearchOption.soTopDirectoryOnly);
  // Sube cada archivo
  for FileName in FileList do
    begin
      try
        cad := FileName;
        cad := copy(cad,length('/storage/emulated/0/Pictures/') + 1,length(cad) - length('/storage/emulated/0/Pictures/'));
        Item := ListFotos.Items.Add;
        Item.Text := cad;
      except
        on e:exception do
          showmessage(e.message);
      end;
    end;

end;

Ahora lo que querría es cargar la imagen correspondiente en el Listview a través de un ImageList.
He visto el código para el componente VCL y lo he intentado adaptar, pero no soy capaz por más que busco

Código Delphi [-]
procedure TForm1.LoadPicturesToListView;
var
  PicturesPath: string;
  Files: TArray<string>;
  FileName: string;
  Bitmap: TBitmap;
  Item: TListViewItem;
  ImageIndex: Integer;
begin
  // Obtiene la ruta de la carpeta "Pictures"
  PicturesPath := TPath.Combine(TPath.GetSharedDocumentsPath, 'Pictures');

  // Obtiene la lista de archivos de imágenes (puedes filtrar por tipos de archivos si lo deseas)
  Files := TDirectory.GetFiles(PicturesPath, '*.*', TSearchOption.soTopDirectoryOnly);

  // Limpiar la lista de imágenes e ítems de la vista
  ImageList1.Clear;
  ListView1.Items.Clear;

  // Itera sobre los archivos y los carga en el TImageList y TListView
  for FileName in Files do
  begin
    if TPath.GetExtension(FileName).ToLower.Equals('.jpg') or
       TPath.GetExtension(FileName).ToLower.Equals('.png') then
    begin
      Bitmap := TBitmap.Create;
      try
        // Carga la imagen en un TBitmap
        Bitmap.LoadFromFile(FileName);

        // Añade la imagen al TImageList
        ImageIndex := ImageList1.Add(Bitmap);

        // Añade un ítem al TListView y asigna la imagen
        Item := ListView1.Items.Add;
        Item.Text := TPath.GetFileName(FileName);
        Item.Bitmap := Bitmap; // Opcional: Si quieres mostrar la imagen en una columna específica
        Item.ImageIndex := ImageIndex;
      finally
        Bitmap.Free;
      end;
    end;
  end;
end;

Código Delphi [-]
// Añade la imagen al TImageList
ImageIndex := ImageList1.Add(Bitmap);

esto no compila.

Un saludo, y muchas gracias por vuestra ayuda.
Responder Con Cita
  #2  
Antiguo 27-06-2024
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.953
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por jmbarrio Ver Mensaje
esto no compila.
Para poder ayudarte, sería interesantísimo poder saber que error de compilación te está dando.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 27-06-2024
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 92
Poder: 22
jmbarrio Va por buen camino
Buenas tardes y disculpas pensé que que estaba claro la instrucción que no compila
Es la ultima parte de código que he puesto.

ImageIndex := ImageList1.Add(Bitmap);

No admite el procedimiento add del TImageList ya que es del componente VCL y no se como codificarlo para android.

en cualquier caso me valdría otro código para cargar las imágenes en el ListView

Gracias, un saludo
Responder Con Cita
  #4  
Antiguo 28-06-2024
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 92
Poder: 22
jmbarrio Va por buen camino
Buenas tardes, finalmente no necesito el componente TImageList.

He cambiado la propiedad ItemAppearance del ListView a una que permite las imágenes en el item del ListView

he añadido
Código Delphi [-]
Item.Bitmap := Bitmap.loadfrofile(FileName)
y ya me muestra la imagen en el item, pero lo hace como un icono, muy pequeña.

¿Como puedo hacer que se vea mas grande?

Muchas gracias, un saludo.
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
llenar un Tlistview con imágenes alojadas en un mBaas (kinvey) jkokoj Desarrollo en Delphi para Android 0 15-03-2018 00:19:54
cargar imagenes de bdd dimitri PHP 1 20-03-2007 10:23:36
Cargar imágenes david.rguez Gráficos 0 21-11-2006 13:34:51
Cargar imagenes ramonibk Gráficos 7 26-07-2004 16:12:35
Cargar tabla Access en un TListView dabas OOP 2 23-10-2003 11:09:36


La franja horaria es GMT +2. Ahora son las 18:21:17.


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