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
...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;
procedure TForm1.FormCreate(Sender: TObject);
begin
FileListBox1.Mask := '*.jpg;*.jpeg';
DirectoryListBox1.Directory:= 'C:\';
DirectoryListBox1.FileList := FileListBox1;
end;
procedure TForm1.ImageClick(Sender: TObject);
begin
Image1.Picture.LoadFromFile(FileListBox1.Items[TImage(Sender).Tag]);
end;
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;
procedure TForm1.FileListBox1Click(Sender: TObject);
begin
with FileListBox1 do
if ItemIndex > 0 then
Image1.Picture.LoadFromFile(Items[ItemIndex]);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ObjLst.Free;
end;
Salida:
Saludos.