如何输出SHELL32.DLL的图标?
unit iconobject;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,shellapi,comobj, ComCtrls;
type
TForm1 = class(TForm)
ListView1: TListView;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Desktopicon: TimageList;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
Var Sfi : TSHFileInfo;
I : Integer;
ListItem : TListItem;
begin
// 输出所有的 windows 95/98/2000 图标
DesktopIcon:= TImageList.Create(Self);
DesktopIcon.Handle := SHGetFileInfo('', 0, sfi, SizeOf(TSHFileInfo),
shGFI_SYSICONINDEX or SHGFI_SMALLICON);
DesktopIcon.ShareImages := TRUE;
ListView1.SmallImages := Desktopicon;
For I:=0 to 255 -1 do
With ListView1 Do
Begin
ListItem := Items.add;
ListItem.Caption := Inttostr(I);
ListItem.ImageIndex := I;
End;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Desktopicon.free;
end;
end.
本文地址:http://www.45fan.com/dnjc/71469.html