Ver Mensaje Individual
  #2  
Antiguo 02-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 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 Ver Mensaje
...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.
__________________
Daniel Didriksen

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