ListItem1.Items.BeginUpdate;
while not eof do
begin
Cname:=fieldbyname('Cname').asstring;
CcardId:=fieldbyname('CcardId').asstring;
ListItem1:=listview1.Items.Add;
listItem1.Caption:=Cname;
listItem1.SubItems.Append(Ccardid);// listItem1.ImageIndex:=showIcon(date,Ccardid);//
ListItem1.subItems.append(currentTime);
next;
end;
ListItem1.Items.EndUpdate
while not eof do
begin
Cname:=fieldbyname('Cname').asstring;
CcardId:=fieldbyname('CcardId').asstring;
ListItem1:=listview1.Items.Add;
listItem1.Caption:=Cname;
listItem1.SubItems.Append(Ccardid);// listItem1.ImageIndex:=showIcon(date,Ccardid);//
ListItem1.subItems.append(currentTime);
next;
end;
ListItem1.Items.EndUpdate
解决方案 »
- 第一次搞COM,谁告诉我啥叫非进位累加?
- 很简单的问题,BDE连接ORACL数据库
- 简单问题,如何把listbox里的内容读到ComboBox里去?
- 关于运行时更改程序文件名的问题??????
- ███【★】█★█【★★★★★热烈庆祝★★★★★】█★█【★】███↑--███【★】█★█【★天津聚会CS★DN圆满结束★】█★█【
- 如何实现把两个不同的报表放在一起预览??
- netwolfds(晓竹)请来拿分
- BCB怎样定义类型(class)?
- 请教数据库连接问题
- 为什么我在Form Active事件中加入的Close方法并不能关闭当前窗口?
- 如何动态加字段?
- 如何在combobox1.items里面显示出数据库的tablename ,马上给分。
while not eof do
begin
Cname:=fieldbyname('Cname').asstring;
CcardId:=fieldbyname('CcardId').asstring;
ListItem1:=listview1.Items.Add;
listItem1.Caption:=Cname;
listItem1.SubItems.Append(Ccardid);// listItem1.ImageIndex:=showIcon(date,Ccardid);//
ListItem1.subItems.append(currentTime);
next;
end;
ListView1.Items.EndUpdate
select top items.count * from xxxxtable where 条件
这样每次可以取到有限个满足要求的记录,然后显示到listview中,向前向后翻页要注意:
1 向后,取listview中的最后一个记录的id值为比较条件值:按照id>item中的id值进行升序(按照id)
2 向前,取listview中的第一个记录的id值为比较条件值:按照id<item中的id值进行降序(按照id)
3 如果是向后翻页,在向listview添加时:
要将取回的记录由第一条到最后一条添加,
如果是向前翻页,要将取回的记录由最后一条项第一条添加建议不要使用渐进搜索,让用户输入一个值按回车后执行查找
谢谢给我的启发!
): TListItem;
搜索的代码:
function TfrmMainkq.findCardid(const card:String):Tlistitem;
//card为要查找的卡号
var i:integer;
begin
result:=nil;
if listview1.Items.Count=0 then exit;
for i:=0 to listview1.Items.Count-1 do
begin
if card=listview1.Items.Item[i].SubItems.Strings[0] then
begin
result:=listview1.Items[i];//如果检查到符合的员工自动退出循环
break;
end;
end;
end;
这样为什么很慢?怎么才能快点?