一个关于ExtractIconEx的问题,谢谢(50分)

  • 主题发起人 主题发起人 DelphiFish
  • 开始时间 开始时间
D

DelphiFish

Unregistered / Unconfirmed
GUEST, unregistred user!
偶写了一个XX:
unit Unit1;

interface

uses
; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
; Dialogs, StdCtrls,ShellApi;

type
; TForm1 = class(TForm)
; ; Button1: TButton;
; ; OpenDialog1: TOpenDialog;
; ; procedure Button1Click(Sender: TObject);
; ; procedure GetIcon(FileName:TFileName);
; private
; ; { Private declarations }
; public
; ; { Public declarations }
; end;
type
; TMyIcon = class(TIcon)
; private
; ;phiconLarge:HICON;
; ;phiconSmall:HICON;
; ;end;
var
; Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
; ;if OpenDialog1.Execute then GetIcon(OpenDialog1.FileName);
end;

procedure TForm1.GetIcon(FileName:TFileName);
var
;MyIcon:TMyIcon;
begin
; MyIcon:=TMyIcon.Create;
; MyIcon.Handle:=extractIconEx(PChar(FileName),-1,MyIcon.phiconLarge,MyIcon.phIconSmall,3);
; MyIcon.SaveToFile('c:/ico.ico');

end;
end.
为什么MyIcon.Handle不管我选定什么文件始终是返回1,ft,帮助中解释是If the file specified was not an executable file, DLL, or icon file, the return value is 1.
ft![:(]
 
咋个没有人?
 
建议用SHGetFileInfo来取图标,文件中大的、小的图标都能取,且任何文件类型都适用,
给你一段C++Builder的例子,很短,应该能看懂

//CommandLine是要取图标的文件的全路径名,取出的图标放到TImageList类型的ItemIcon里
; TIcon* Icon = new TIcon;
; TSHFileInfo SHFileInfo;
; SHGetFileInfo(CommandLine.c_str(),
; ; ; ; ; ; ; ; 0,
; ; ; ; ; ; ; ; &SHFileInfo,
; ; ; ; ; ; ; ; sizeof(SHFileInfo),
; ; ; ; ; ; ; ; SHGFI_ICON|SHGFI_SMALLICON);
; Icon->Handle = SHFileInfo.hIcon;
; ItemIcon->AddIcon(Icon);
; delete Icon; ; ; ; ; ; ; ; ;
 
为什么要舍近求远呢?
记得添加ShellAPI单元.

procedure TForm1.Button1Click(Sender: TObject);
var
; TheIcon: TIcon;
begin
; TheIcon := TIcon.Create;
; TheIcon.Handle := ExtractIcon(hInstance,
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 'f:/图片/ico/ico/ball.ico',
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 0);
;{Do something with the icon}
; TheIcon.Free;
end;
 
哇!靠!慢一步!
哈哈哈哈,卷起千堆雪tyn大哥,别强了,给小弟留点“剩饭”吧!5~~~~~~~~~[:(]
 
谢谢大侠卷起千堆雪tyn, 区区小分奉上,笑纳您的
 

Similar threads

后退
顶部