没有问题呀,老大
uses shellApiprocedure TForm1.Button2Click(Sender: TObject);
var
  TheIcon: TIcon;
begin
  TheIcon := TIcon.Create;
  TheIcon.Handle := ExtractIcon(hInstance,
                                'e:\icbg.EXE',
                                0);
  form1.Icon:=theIcon;
  TheIcon.Free;
end;

解决方案 »

  1.   

    诶,朋友,不是这个意思啊,我说了是获取某类文件的图标,而不是某个文件,这可是完全不同的两个方面啊。
    比如说啊,我有个test.txt文件,它的图标你用extracticon是获取不来的,所有的TEXT文件都是一个图标,也就是说我要获取的是文本文件这个类型的图标。依次类推,当我获得一个文件后,怎么得到它在系统中显示的图标呢?就像资源管理器中显示的一样。
    我在外边上网,没办法把我原来的代码贴出来,实在抱歉,恳请各位帮帮忙,最好是贴出代码,多谢了!
      

  2.   

    uses
      ShellApi;procedure TForm1.GetIcon(const FileName: string);
    var
      SmallIcon, LargeIcon: TIcon;
      SHFileInfo: TSHFileInfo;
    begin
      SmallIcon := TIcon.Create;
      LargeIcon := TIcon.Create;  //得到文件的大图标
      SHGetFileInfo(PChar(FileName), 0, SHFileInfo, SizeOf(SHFileInfo),
            SHGFI_ICON or SHGFI_LARGEICON);
      LargeIcon.Handle := SHFileInfo.hIcon;  //得以文件的小图标
      SHGetFileInfo(PChar(FileName), 0, SHFileInfo, SizeOf(SHFileInfo),
            SHGFI_ICON or SHGFI_SMALLICON);
      SmallIcon.Handle := SHFileInfo.hIcon;
    end;
      

  3.   

    taxi(游少爷) ,我试了,可在listview中还是不能显示啊。我的程序以前在98下可以显示的,不知道怎么搞的,到了2000下就不行了。