Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   ¿Cómo visualizar, renombrar o borrar archivos jpg? (https://www.clubdelphi.com/foros/showthread.php?t=82154)

gaston2331 01-02-2013 18:25:10

¿Cómo visualizar, renombrar o borrar archivos jpg?
 
Lo molesto para hacerle una consulta, a una aplicación que estoy haciendo le tengo que agregar la siguiente funcionalidad:
Oprimiendo un botón se llega a esta, y tiene que hacerme una previsualización de las imagenes que hay en la carpeta (como cuando se ven los iconos grandes en windows) y seleccionando una que permita visualizarla por completo. Luego tiene que poder eliminar una seleccionada, intercambiar nombres entre dos imagenes, pero esto ultimo no presenta dificultad. Mi pregunta es para el visualizador y eso, que componente o de que forma me conviene encararlo?

ecfisa 02-02-2013 01:29:26

Hola gaston, bienvenido a Club Delphi :).

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Cita:

Empezado por gaston2331 (Mensaje 454413)
...Mi pregunta es para el visualizador y eso, que componente o de que forma me conviene encararlo?

Te pongo un ejemplo muy simple para darte una pauta de como podrías implementarlo.

En el form pone:
  • 1 TScrollBox, Align = alBottom
  • 1 TDirectoryListBox, Align = alLeft
  • 1 TFileListBox, Align = alLeft
  • 1 TImage, Align = alClient
Visualmente debería quedarte algo como:



Luego el código:
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    DirectoryListBox1: TDirectoryListBox;
    FileListBox1: TFileListBox;
    ScrollBox1: TScrollBox;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure DirectoryListBox1Change(Sender: TObject);
    procedure FileListBox1Click(Sender: TObject);
    procedure ImageClick(Sender: TObject);    
    procedure FormDestroy(Sender: TObject);
  private
  public
  end;
...

implementation

uses jpeg, contnrs;

var
  ObjLst: TObjectList;

// Create
procedure TForm1.FormCreate(Sender: TObject);
begin
  FileListBox1.Mask := '*.jpg;*.jpeg';
  DirectoryListBox1.Directory:= 'C:\';
  DirectoryListBox1.FileList := FileListBox1;
end;

// Evento OnClick (miniaturas)
procedure TForm1.ImageClick(Sender: TObject);
begin
  Image1.Picture.LoadFromFile(FileListBox1.Items[TImage(Sender).Tag]);
end;

// Click sobre miniatura, muestra imágen
procedure TForm1.DirectoryListBox1Change(Sender: TObject);
var
  i,spc: Integer;
  Img: TImage;
begin
  if FileListBox1.Count > 0 then
  begin
    spc:= 0;
    ObjLst:= TOBjectList.Create;
    for i:= 0 to FileListBox1.Count-1 do
    begin
      Img:= TImage.Create(nil);
      Img.Parent := ScrollBox1;
      Img.Tag    := i;
      Img.Left   := ScrollBox1.Height * i + spc;
      Img.Top    := 0;
      Img.Width  := ScrollBox1.Height;
      Img.Height := ScrollBox1.Height-GetSystemMetrics(SM_CXHSCROLL)-4;
      Img.OnClick:= ImageClick;
      Img.Stretch:= True;
      Img.Picture.LoadFromFile(FileListBox1.Items[i]);
      ObjLst.Add(Img);
      Inc(spc, 10);
    end;
  end;
end;

// Click sobre FileListBox, muestra imágen
procedure TForm1.FileListBox1Click(Sender: TObject);
begin
  with FileListBox1 do
    if ItemIndex > 0 then
      Image1.Picture.LoadFromFile(Items[ItemIndex]);
end;

// Destroy
procedure TForm1.FormDestroy(Sender: TObject);
begin
  ObjLst.Free;
end;

Salida:



Saludos.


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

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