Hola dmartinezn.
Con la intención de que puedas sacar alguna idea mas, amplié un poco el ejemplo de este
enlace.
Código:
#include <jpeg.hpp>
/* Valores iniciales */
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DirectoryListBox1->Align = alLeft;
FileListBox1->Align = alLeft;
DirectoryListBox1->Directory = "C:\\Users\\User\\Pictures";
FileListBox1->Mask = "*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.vmf";
Image1->Align = alClient;
Image1->Stretch = TRUE;
}
/* Actualizar FileListBox */
void __fastcall TForm1::DirectoryListBox1Change(TObject *Sender)
{
FileListBox1->Directory = DirectoryListBox1->Directory;
}
/* Mostrar seleccion en TImage */
void __fastcall TForm1::FileListBox1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile(FileListBox1->FileName);
}
/* Guardar imágen */
void __fastcall TForm1::Image1DblClick(TObject *Sender)
{
if (SavePictureDialog1->Execute())
Image1->Picture->SaveToFile(SavePictureDialog1->FileName +
ExtractFileExt(FileListBox1->FileName));
}
Es un código simple pero cumple los tres puntos que solicitas en tu primer mensaje.
Un saludo.