Pienso, como dec, que lo mejor sería filtrar el ShellTreeView, aunque esto no es tan directo como ajustar una propiedad Filter. Debes usar el evento OnAdd del control:
Código Delphi
[-]
procedure TForm1.ShellTreeView1AddFolder(
Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
begin
if not AFolder.IsFolder and (fpFileSystem in AFolder.Properties) then
CanAdd := LowerCase(ExtractFileExt(AFolder.DisplayName)) = '.jpg';
end;
Claro que el filtro lo haces por la extensión del archivo, cosa que también puedes hacer para "determinar" si es o no un archivo de imagen:
Código Delphi
[-]
with ShellTreeView1.SelectedFolder do
if LowerCase(ExtractFileExt(DisplayName)) = '.jpg' then
Image1.Picture.LoadFromFile(DisplayName);
Pero, que un archivo tenga una extensión como jpg, png, gif, etc., no necesariamente significa que sea una imagen, y no veo forma sencilla de determinarlo, pero en esos casos extremos, no pasa nada si dejas que se muestre la excepción.
Bye