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.
此博客展示了一段代码,在Windows环境下,利用shellapi等库,通过ListView控件输出Windows 95/98/2000系统图标。代码包含FormCreate和FormClose过程,前者创建图像列表并添加图标到ListView,后者释放图像列表资源。
2866

被折叠的 条评论
为什么被折叠?



