Exe/DLLからアイコンを取り出す
EXEやDLLファイルからアイコンを取り出すには ExtractIcon を使用します。最後のゼロは取得するアイコンのインデックスです。-1を指定するとアイコンの数が取得できます。
※uses節に ShellAPI の宣言が必要です。
以下のサンプルはフォーム上に TListView と TImageList、TButtonを配置してから、TButtonのクリックイベントに記述してください。実行後ボタンを押すと指定した Exeファイルのアイコンを TListViewに表示します。
| ■ Exeファイルからアイコンを取得する例 |
procedure TForm1.Button1Click(Sender: TObject);
var
icoData : TIcon; { 取得したアイコン退避用 }
intCnt : integer; { アイコンの総数 }
ix : integer;
NewItem : TListItem;{ リストビューへの新規項目 }
begin
icoData := TIcon.Create;
ImageList1.Clear;
{ アイコンの総数を調べる }
intCnt := ExtractIcon(hInstance,'d:\borland\delphi 3\bin\delphi32.exe',-1);
for ix := 0 to intCnt - 1 do
begin
{ アイコンを取得する }
icoData.Handle := ExtractIcon(hInstance,'d:\borland\delphi 3\bin\delphi32.exe',ix);
{ イメージリストへの追加 }
ImageList1.AddIcon(icoData);
{ そのアイコンを使ったリストアイテムを作成 }
NewItem := ListView1.Items.Add;
NewItem.ImageIndex := ix;
NewItem.Caption := 'アイコン ' + IntToStr(ix + 1);
end;
icoData.Free;
end;
|
関連項目