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); } |