アイコンのデータの取得方法について教えてください。
ファイル名、フォルダ名を指定すると
それぞれのアイコンをゲットする方法ってどうすればよいのでしょうか?
たとえばXPの場合に
Favorites だったら星マークのアイコンとか
Wordのファイルだったら、Wordのアイコンとかを
取得する方法なんですけど。
使用するのは TreeView と ListView のファイルの前に
アイコンを表示したいんです。
http://www.borland.co.jp/qanda/delphi/d0003222.html
こちらでどうでしょうか?
Mayuさんどうもありがとうございます。
このプログラムを使ってみたのですが、
表示がうまくいきません。
デスクトップで、右クリックし、新規作成で
テキストドキュメントを作成しました。
OS は WindowsXP 、Delphi7です。
デスクトップにはノートのようなアイコンが
表示されています。
上記プログラムで、エクスプローラーの場合はアイコンが表示
(「'C:\winnt\Explorer.exe'→'C:\Windows\Explorer.exe'」にして実行)
されるのですが、テキストファイルの場合アイコンが表示
されません。
どうすればよいのでしょうか?
> されるのですが、テキストファイルの場合アイコンが表示
> されません。
テキストファイルは、普通notepad.exeとかに関連づけされています。
ノートのようなアイコンは、notepad.exeが持っているアイコンです。
ぢゃ、どうするか
ここあたりに書いてあります
http://www.geocities.co.jp/SiliconValley-SanJose/1427/delphifaq.html
ExtractAssociatedIcon API を使うらしい。
ファイルとかフォルダのアイコンを取得する一つの方法は,
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;
みなさん
どうも、ありがとうございました。
おかげさまで
思ったとおりの動きで
アイコンを取得することができるように
なりました。
また、お世話になると思いますが
よろしくお願いします。
ツイート | ![]() |