Wyświetlanie na TImage ikony skojarzonej z podanym plikiem lub folderem

Aby po kliknięciu po wpisaniu do komponentu TEdit ścieżki dostępu do katalogu (lub pliku) na komponencie TImage wyświetlona została ikona skojarzona z tym plikiem umieszczamy na formularzu komponent TEdit i TImage, a następnie tworzymy zdarzenie OnCreate dla formularza (np. klikając w jego obszarze dwukrotnie lub poprzez zakładkę Events Object Inspectora):

Unit1.cpp
#include <shellapi.h>
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   SHFILEINFO info;
   DWORD ImageHandle = SHGetFileInfo("", 0, &info, sizeof(info),
                                     SHGFI_ICON | SHGFI_SHELLICONSIZE |
                                     SHGFI_SYSICONINDEX);
   if (ImageHandle != 0)
   {
      ImageList1->Handle = ImageHandle;
      ImageList1->ShareImages = true;
   }
}

następnie tworzymy zdarzenie OnChange dla Edit1:

Unit1.cpp
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
   SHFILEINFO info;
   DWORD result = SHGetFileInfo(Edit1->Text.c_str(), 0, &info,
                                sizeof(info), SHGFI_ICON |
                                SHGFI_SHELLICONSIZE | SHGFI_SYSICONINDEX);
   if (result != 0)
      ImageList1->GetIcon(info.iIcon, Image1->Picture->Icon);
   else
      Image1->Picture->Icon->Assign(NULL);
}