查询ListView内容!![急] ---------------------- ( 积分: 50 )

  • 主题发起人 主题发起人 subosoft
  • 开始时间 开始时间
S

subosoft

Unregistered / Unconfirmed
GUEST, unregistred user!
我ListView格式如下:
编号 姓名
001 道奇
.. ..
请问我怎么对[姓名]这列进行查询[模糊查询] 。并且将所有符合条件的行改变其颜色。。
 
自己写代码遍历,如果数据量大的话先排序,再根据二分法查找
 
To
wang_junfan
查询后怎么让符合条件的行改变颜色??
 
在CustomDrawItem事件里写代码

procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
with sender.Canvas do
begin
if pos('(3)(1)',item.SubItems[0])>0 then //这部分模糊查询+改颜色
Font.Color:=clred
else
Font.Color:=clWindowText;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
item:tlistitem;
begin
listview1.Items.Clear;
for i:=0 to 99 do
begin
item:=listview1.Items.Add;
item.Caption:='Cap('+inttostr(i)+')';
for j:=1 to listview1.Columns.Count-1 do
item.SubItems.Add('Sub('+inttostr(i)+')'+'('+inttostr(j)+')');
end;
end;
 
TO
hs-kill;
如果ListView的Item都已建好后怎么改变其颜色??
 
........item不建好你改变谁的颜色去

我创建item只是为了测试用的,改颜色都在CustomDrawItem事件里呢,item你想怎么创建就怎么创建
 
如果你需要在ListView中查找,数据量肯定不小,建议使用虚表机制,把数据放在一个ListObject中,先在ListObject中找到对应行,然后在CustDrawItem中作标记
 
找到方法了。。。
结贴。。
答者给分。。。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
851
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部