我想通过点击右键按钮N24,从而添加imagelist3中的第1个图标于listview2中符合第八项中头二位是’13‘开头的数据行中,我的代码是这样的写的但是却无法得到正确的结果,所有的行都显示这个图标
procedure Tmainpagefrm.N24Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to listview2.Items.Count-1 do
if copy((listview2.Items[i].SubItems.Strings[7]),1,2)='13' then
gitem:=listview2.Items.Add;
listview2.SmallImages:=imagelist3;
listview2.Items[i].ImageIndex:=0;
end;
不知是错在那,请专家指点一二,在线急待!!!,如能解决,另帖给高分
procedure Tmainpagefrm.N24Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to listview2.Items.Count-1 do
if copy((listview2.Items[i].SubItems.Strings[7]),1,2)='13' then
gitem:=listview2.Items.Add;
listview2.SmallImages:=imagelist3;
listview2.Items[i].ImageIndex:=0;
end;
不知是错在那,请专家指点一二,在线急待!!!,如能解决,另帖给高分
解决方案 »
- 帮我找找歌曲吧
- 请问这样的关机代码,关机原理是什么
- intraweb 生成的Tiwusersession 中可不可以直接添加ADO访问控件,怎样进行访问??急急急急
- 如何打包程序
- 请教Delphi写ASP组件问题
- 怎样在delphi7 下编译pascal 程序呀! 第一次用的说.
- 请问char型和byte型有什么区别?
- 请教窗口之间消息传递,以及如何截获DOS窗口内的字符?
- 关于研究生年龄情况的调查
- 我初次到DELPHI论坛,请各位高手给点建议。。。
- 怎样写代码自动安装控件?
- 如何判断idftp客户端与server是否相连,好象用idftp1.ClosedGracefully来判断不行啊!!!!(急) (
if copy((listview2.Items[i].SubItems.Strings[7]),1,2)='13' then
gitem:=listview2.Items.Add;你看不出自己的逻辑乱吗。
你的循环这里没意义,无论怎样,最后i都是要循环到终点,改成这样:
第8项,是不是应该是SubItems[6].
listview2.SmallImages:=imagelist3;
for i:=0 to listview2.Items.Count-1 do
if copy(listview2.Items[i].SubItems[6],1,2)='13' then
begin
gitem:=listview2.Items.Add;
listview2.Items[i].ImageIndex:=0;
end else
listview2.Items[i].ImageIndex:=-1;
/////////////////////
也太吝啬了吧,一分也没。
gitem:=listview2.Items.Add;惹的祸,因为每出现一个'13',都会执行一次,这样ListView就增加了很多空的行。
你可以看看22行后面多了几行图标,就是上面有几个'13'的数据。
var
bShowIcon:boolean;
......procedure .....
...
begin
bShowIcon:=not bShowIcon;
listview1.SmallImages:=imagelist1;
for i:=0 to listview1.Items.Count-1 do
if copy(listview1.Items[i].SubItems[1],1,2)='33' then
begin
// gitem:=listview1.Items.Add;
if bShowIcon then
listview1.Items[i].ImageIndex:=0
else
listview1.Items[i].ImageIndex:=-1
end else
listview1.Items[i].ImageIndex:=-1;