名前 題名 ▼ Mr.XRAYさん > EXE,DLL等は複数のアイコンを持っていますが, > 一般のファイルということでしたら,以下のような関数があります. > > //----------------------------------------------------------------------------- > // 指定ファイルのアイコンを表示 > // usesにShellAPIが必要 > //----------------------------------------------------------------------------- > procedure TForm1.Button1Click(Sender: TObject); > var > lpiIcon : WORD; > hico : HIcon; > FilePath : String; > begin > //自分のアイコンを表示 > FilePath := ExtractFilePath(ParamStr(0)) + 'Project1.exe'; > > lpiIcon :=0; > //アイコンのハンドルを取得 > hIco := ExtractAssociatedIcon(hInstance, PChar(FilePath), lpiIcon); > if hico <> 0 then begin > DrawIcon(Canvas.Handle, 0, 0, hico); > end; > DestroyIcon(hico); > end; > > > //----------------------------------------------------------------------------- > // 指定ファイルのアイコンを表示 > // usesにShellAPIが必要 > //----------------------------------------------------------------------------- > procedure TForm1.Button1Click(Sender: TObject); > var > FileInfo : SHFILEINFO; > AIcon : TIcon; > FilePath : String; > begin > //自分のアイコンを表示 > FilePath := ExtractFilePath(ParamStr(0)) + 'Project1.exe'; > > //ファイルに関連づいたアイコンの取得 > AIcon := TIcon.Create; > try > SHGetFileInfo(PChar(FilePath), > FILE_ATTRIBUTE_DIRECTORY, > FileInfo, > SizeOf(FileInfo), > SHGFI_ICON); > AIcon.Handle:=FileInfo.hIcon; > > Image1.Picture.Assign(AIcon); > finally > FreeAndNil(AIcon); > end; > end; > > //----------------------------------------------------------------------------- > // 指定ファイルのアイコンを表示 小さいアイコン > // usesにShellAPIが必要 > //----------------------------------------------------------------------------- > procedure TForm1.Button2Click(Sender: TObject); > var > FileInfo : SHFILEINFO; > AIcon : TIcon; > FilePath : String; > begin > //自分のアイコンを表示 > FilePath := ExtractFilePath(ParamStr(0)) + 'Project1.exe'; > > //ファイルに関連づいたアイコンの取得 > AIcon := TIcon.Create; > try > SHGetFileInfo(PChar(FilePath), > FILE_ATTRIBUTE_DIRECTORY, > FileInfo, > SizeOf(FileInfo), > SHGFI_SMALLICON or SHGFI_ICON or SHGFI_SYSICONINDEX); > AIcon.Handle:=FileInfo.hIcon; > > Image2.Picture.Assign(AIcon); > finally > FreeAndNil(AIcon); > end; > end; > > > 私がよく使用しているのは,後者のSHGetFileInfoです. > ListViewなどにファイルの一覧を表示する場合は,システムのイメージリストを使って > > http://mrxray.on.coocan.jp/Delphi/plSamples/790_ListView.htm#05 > > のような感じのコードを書いています. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link