アイコンについて教えてください

解決


シャドウ  2005-05-14 02:16:14  No: 14786

アイコンのデータの取得方法について教えてください。
ファイル名、フォルダ名を指定すると
それぞれのアイコンをゲットする方法ってどうすればよいのでしょうか?

たとえばXPの場合に
Favorites だったら星マークのアイコンとか
Wordのファイルだったら、Wordのアイコンとかを
取得する方法なんですけど。

使用するのは  TreeView と ListView のファイルの前に
アイコンを表示したいんです。


Mayu  2005-05-14 02:48:45  No: 14787

http://www.borland.co.jp/qanda/delphi/d0003222.html

こちらでどうでしょうか?


シャドウ  2005-05-17 01:36:23  No: 14788

Mayuさんどうもありがとうございます。
このプログラムを使ってみたのですが、
表示がうまくいきません。

デスクトップで、右クリックし、新規作成で
テキストドキュメントを作成しました。
OS は WindowsXP 、Delphi7です。
デスクトップにはノートのようなアイコンが
表示されています。
上記プログラムで、エクスプローラーの場合はアイコンが表示
(「'C:\winnt\Explorer.exe'→'C:\Windows\Explorer.exe'」にして実行)
されるのですが、テキストファイルの場合アイコンが表示
されません。

どうすればよいのでしょうか?


とおりすがらな  2005-05-17 03:49:48  No: 14789

> されるのですが、テキストファイルの場合アイコンが表示
> されません。
テキストファイルは、普通notepad.exeとかに関連づけされています。
ノートのようなアイコンは、notepad.exeが持っているアイコンです。


とおりすがらない  2005-05-17 03:56:29  No: 14790

ぢゃ、どうするか

ここあたりに書いてあります
http://www.geocities.co.jp/SiliconValley-SanJose/1427/delphifaq.html

ExtractAssociatedIcon API を使うらしい。


Mr.XRAY  URL  2005-05-17 08:00:36  No: 14791

ファイルとかフォルダのアイコンを取得する一つの方法は,
Shell関係の関数を使用することです.

[例]  usesにShellAPIが必要です.Form1にTImageを一つ配置します.

//====================================================================
//  指定したフォルダやファイルのアイコンを取得
//====================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
     APath: String;
     Icon: TIcon;
     SHFileInfo: TSHFileInfo;
begin
     //APathにフォルダ名またはファイル名を指定する
     APath:='C:\';
     Icon:=TIcon.Create;
     try
       SHGetFileInfo(PChar(APath),
                     0,
                     SHFileInfo,
                     SizeOf(SHFileInfo),
                     SHGFI_SMALLICON or SHGFI_ICON);
        Icon.Handle := SHFileInfo.hIcon;
        Image1.Picture.Icon.Assign(Icon);
      finally
        Icon.Free;
      end;
end;


シャドウ  2005-05-18 01:39:01  No: 14792

みなさん
どうも、ありがとうございました。

おかげさまで
思ったとおりの動きで
アイコンを取得することができるように
なりました。

また、お世話になると思いますが
よろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加