Ja, stimmt.
Um ein Icon für eine Dateiendung zu bekommen, für eine Datei,
die garnicht da ist, siehe 2. Beispiel unten.
Jaq.
procedure TForm1.Button1Click(Sender: TObject);
var
Icon: TIcon;
IconIndex: word;
Buffer: array[0..2048] of char;
IconHandle: HIcon;
begin
// Zeigt nur Icons f. existierende Dateien
StrCopy(@Buffer, PChar('D:\ExistingFile.pdf'));
IconIndex := 0;
IconHandle := ExtractAssociatedIcon(HInstance, Buffer, IconIndex); //oder ExtractIcon
Image1.Picture.Icon.Handle:=IconHandle;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Icon:TIcon;
FileInfo:SHFileInfo;
begin
// Zeigt Icons, auch wenn die Datei garnicht existiert
Icon:=TIcon.create;
SHGetFileInfo(pchar('C:\dummy.pdf'),0,FileInfo,sizeof(FileInfo),
SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_SMALLICON);
// SHGFI_SELECTED _LARGEICON _SMALLICON = Different possible Icons
// SHGFI_USEFILEATTRIBUTES = use possibly fictous file which does not need to exist
Icon.handle:=FileInfo.hIcon;
Image2.Picture.Icon:=Icon;
Icon.free;
end;
geschrieben von
Jaqueline
,
17.06.2003, 16:01 Uhr
, 23 mal gelesen