谁能发给我关于ListView中使用图片的例子(50分)

  • 主题发起人 主题发起人 MicroZeng
  • 开始时间 开始时间
M

MicroZeng

Unregistered / Unconfirmed
GUEST, unregistred user!
要求,ListView的显示效果如下,图片从ImageList中取得。
<table border="1">
<tr>
<td>(图片)××××</td>
<td>(图片)</td>
<td>(图片)</td>
<td>××××</td>
<td>(图片)×××××</td>
</tr>
<tr>
<td>(图片)××××</td>
<td>(图片)</td>
<td>(图片)</td>
<td>××××</td>
<td>(图片)×××××</td>
</tr>
<tr>
<td>(图片)××××</td>
<td>(图片)</td>
<td>(图片)</td>
<td>××××</td>
<td>(图片)×××××</td>
</tr>
</table>
 
呵呵,还在完善那个email软件那?

跟.
 
listview的viewstyle是什么型的?你的XXXX是item吗?
 
to menxin:
Viewstyle是报表类型的 。
(图片)×××的意思是图片加上文字。

to cAkk:
是啊,我一直在不断完善它
 
有不少listview控件是可以在subitem上加图标的.
其实我想原理不过就是一个Ownerdraw.
 
但是我一直加不上, StringGrid很简单就能加上。
ListView却不行,有这方面的例子吗?
或者有空帮我试试看如何?
 
/demos/customdraw/customdraw.dpr
 
就是一个ownerdraw呀, 没问题呀?!
 
是这个意思吗?

procedure TForm1.Button1Click(Sender: TObject);
var i,j:Integer;
begin
with ListView1 do begin
Items.Clear;
for j:=1 to 5 do begin
Items.Add;
Items[j-1].Caption:=format('左%d',[j]);
For i:=1 to 4 do begin
if i<3 then
Items.Item[j-1].SubItems.Add('') //subitem 1&amp;2 put ''
else
Items.Item[j-1].SubItems.Add(Format('%d,%d',[j,i]))
end;
end;
end;
end;

procedure TForm1.ListView1GetSubItemImage(Sender: TObject; Item: TListItem;
SubItem: Integer; var ImageIndex: Integer);
begin
if SubItem<>2 then
ImageIndex:=SubItem
else
ImageIndex:=-1;
end;
 
不是这个意思,我要的是在ListView的第4列显示图片和文字(两者都要),
这样能做到吗?
 
第四列?我的例子中是按你的表格的意思做的!还是有点不明白你的意思。
 
原来你用的D5, 我用的是D4, 在D4里怎么办?
 
D4里可费事了,一定是自己customdrawsubitem。
计算rect.position....
你没见D4自己的items编辑器都不能设置imageindex吗,说明 难!
但定能做到,太麻烦!我以前customdraw过item,subitem没做过!加点分,也许有人能干!
 
我现在是用Delphi 5来解决了。
但是SubItems的图片显示出来的好象不是透明的。这样子太难看了。
怎么把它搞成透明的。
 
hehe, imagelist的masked:=true, 然后用addmasked添加图片不就可以了:-)
 
cytown is right.
应该是mask的问题。
 
我是这么做的:

with MailList.Items.Add do
begin
Caption := '';
ImageIndex := 0;

SubItems.Add('');
SubItemImages[0] := 1;

SubItems.Add('');
SubItemImages[1] := 2;
end;

这样怎么把图片搞成透明的?
 
图片透明不透明,关键在添加到imagelist的时候.
 
是你的imagelist的masked property应该设为true!
 
看, ImageList是这么设置的:
AllocBy := 4
BkColor := clNone
BlendColor := clNone
DrawingStyle := dsTransparent
ImageType := itMask
Masked := True
ShareImages := True
可是就是不行,

to menxin: 你是怎么做的, 能搞出一个透明的例子给我吗?
 

Similar threads

D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
639
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部