with Listview1 do
begin
SmallImages:=TImageList.CreateSize(16,16);
SmallImages.ShareImages := True;
SmallImages.Handle := SHGetFileInfo('*.*',0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
Drawicon(canvas.handle,5,170,FileInfo.hIcon);
end;
这段代码执行以后 listview的数据文件名前会出现空白的一段位置
但图片就是出不来
请问是不是这样不行 有没什么好的方法啊?
begin
SmallImages:=TImageList.CreateSize(16,16);
SmallImages.ShareImages := True;
SmallImages.Handle := SHGetFileInfo('*.*',0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
Drawicon(canvas.handle,5,170,FileInfo.hIcon);
end;
这段代码执行以后 listview的数据文件名前会出现空白的一段位置
但图片就是出不来
请问是不是这样不行 有没什么好的方法啊?
解决方案 »
- 关于delphi里面ComBox的取值问题
- 关于图片处理
- 在Unit1单元文件中为什么不需要引用Unit2单元文件就能直接创建一个在Unit2单元文件中定义的类啊。
- 请问"EidProtocolReplyError with message '411 length required' "这样的错误提示是什么意思?
- 关于dll的问题[超难,别被吓到了]
- 为什么在windowsXP sp2下安装的Delphi7不能调试了?
- 请求一段代码(找出现在计算机所有可用的串口号)
- 求教:如何监视所有gdi关于绘图的API?
- 如何在ClientDataSet中调整记录顺序?如上移下移?急啊!望各位大侠指点
- 怎么使用adodb.recordset
- 问两个关于 TreeView 很小的问题
- 怎样把一个窗口始终显示在最前端,其他窗口获得焦点,这个窗口也不会到后面。
begin
with ListView1 do
begin
ViewStyle:=vsList;
SmallImages:=TImageList.CreateSize(16,16);
SmallImages.Handle:=SHGetFileInfo('c:\',0,FileInfo,sizeof(FileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
SmallImages.ShareImages := True;
end;
end;
FileInfo: SHFILEINFO;
mLi: TListItem;
begin
if not Assigned(ListView1.SmallImages) then
begin
Listview1.SmallImages:=TImageList.CreateSize(16,16);
Listview1.SmallImages.ShareImages := True;
ListView1.SmallImages.Handle := SHGetFileInfo('c:\',0,FileInfo,SizeOf(FileInfo),SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
end; SHGetFileInfo('c:\AUTOEXEC.BAT',0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
mLi := ListView1.Items.Add;
mLi.ImageIndex := FileInfo.iIcon;
mLi.Caption := 'autoexec.bat'; SHGetFileInfo('c:\windows',0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
mLi := ListView1.Items.Add;
mLi.ImageIndex := FileInfo.iIcon;
mLi.Caption := 'windows';
end;
if not Assigned(ListView1.SmallImages) then
begin
Listview1.SmallImages:=TImageList.CreateSize(16,16);
Listview1.SmallImages.ShareImages := True;
ListView1.SmallImages.Handle := SHGetFileInfo('c:\',0,FileInfo,SizeOf(FileInfo),SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
end; SHGetFileInfo('c:\AUTOEXEC.BAT',0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
newitem := ListView1.Items.Add;
newitem.ImageIndex := FileInfo.iIcon;
newitem.Caption := 'autoexec.bat'; SHGetFileInfo('c:\windows',0,FileInfo,SizeOf(FileInfo),SHGFI_ICON);
newitem := ListView1.Items.Add;
newitem.ImageIndex := FileInfo.iIcon;
newitem.Caption := 'windows';
listview1.Items.Clear;
//获取shelltreeview目录路径
strpath:=(shelltreeview.Path+'\'+'*.*');
// showmessage(strpath);
// if length(shelltreeview.Selected.Text)<=3 then
// strpath:=shelltreeview.selected.Text+str
// else
// strpath:=shelltreeview.selected.Text+'\'+str;
//找到第一条数据
flag:=findfirst(strpath,faanyfile,srec);
//先判断是否找到了第一条数据
if flag=0 then
begin
//将找到的数据加入tlistview
newitem:=listview1.Items.Add;
newitem.Caption:=srec.Name;
newitem.ImageIndex:=fileinfo.iIcon;
// newitem.SubItems.Add()
newitem.SubItems.Add(inttostr(srec.Size));
newitem.SubItems.Add(datetimetostr(filedatetodatetime(srec.Time)));
if srec.Attr=16 then newitem.ImageIndex:=1;//是目录
while (findnext(srec)=0)do
begin
newitem:=listview1.Items.Add;
newitem.Caption:=srec.Name;
newitem.ImageIndex:=fileinfo.iIcon;
newitem.SubItems.Add(inttostr(srec.Size));
newitem.SubItems.Add(datetimetostr(filedatetodatetime(srec.Time)));
if srec.Attr=16 then newitem.ImageIndex:=1;
end;
end;
listview1.AlphaSort;
在listview里面显示出来的图片都是文件夹的图片