代码如下:
procedure TForm1.ShowDataInList;
var
i:integer;
TotalRecord:integer;
TempItem:TListItem;begin
with Form1.ADOQuery3 do
begin
TotalRecord:=Recordcount-1;
if TotalRecord>=0 then
begin
form1.ListViewData.Items.Clear;
for i:=0 to TotalRecord do
begin
with form1.ListViewData do
begin
TempItem:=Items.Add;
TempItem.Caption:=Fields[1].AsString ;
TempItem.SubItems.Add(Fields[2].AsString);
TempItem.SubItems.Add(Fields[3].AsString+Fields[4].AsString);
TempItem.SubItems.Add(Fields[5].AsString+Fields[6].AsString);
TempItem.SubItems.Add(DateToStr(RecordSet.Fields.Item[8].Value));
TempItem.SubItems.Add(TimeToStr(RecordSet.Fields.Item[9].Value));
end;
RecordSet.MoveNext;
end;
end;
end;
end;显示数据时,listview总是在第二行加一个空行,调试时显示listview.item.count居然在第一次使用listview.item.add方法后直接从0变到2,以后倒是一个一个的加,是不是我的listview设置有问题?请各位指教。急!!!!
procedure TForm1.ShowDataInList;
var
i:integer;
TotalRecord:integer;
TempItem:TListItem;begin
with Form1.ADOQuery3 do
begin
TotalRecord:=Recordcount-1;
if TotalRecord>=0 then
begin
form1.ListViewData.Items.Clear;
for i:=0 to TotalRecord do
begin
with form1.ListViewData do
begin
TempItem:=Items.Add;
TempItem.Caption:=Fields[1].AsString ;
TempItem.SubItems.Add(Fields[2].AsString);
TempItem.SubItems.Add(Fields[3].AsString+Fields[4].AsString);
TempItem.SubItems.Add(Fields[5].AsString+Fields[6].AsString);
TempItem.SubItems.Add(DateToStr(RecordSet.Fields.Item[8].Value));
TempItem.SubItems.Add(TimeToStr(RecordSet.Fields.Item[9].Value));
end;
RecordSet.MoveNext;
end;
end;
end;
end;显示数据时,listview总是在第二行加一个空行,调试时显示listview.item.count居然在第一次使用listview.item.add方法后直接从0变到2,以后倒是一个一个的加,是不是我的listview设置有问题?请各位指教。急!!!!
解决方案 »
- 关于数据类型定义的问题,请指教!
- 紧急求救,关于格式化数据。谢谢
- 谁能帮忙画个HORIZ.BAR风格的DBCHART,在线等待....
- 用递归的方法建树的问题,up者有分!
- 求补丁的制作方法
- 自定义纸张大小
- 怎么样怎么样把a.aiv,b.avi这几个文件合并到一个AA.dat文件中
- 急! 如何将stringgrid中网格中的内容合并,请各位高手指点一二?在线等
- 在一个字符串中有中文也有英文,如何将中文字分辨出来??
- 在ClientDataset中删除最后一条记录时出Invalid variant type conversion,怎么解决?
- reportMachine3.0制作的报表,在98下正常,在2000下表头打印不出来,谁遇到过?
- 我的软件超过3000个人下载,开心放分.
if TotalRecord>0 then
begin
TotalRecord:=RecordCount-1;
Self.ListViewData.Clear;
First;
while not Eof do
begin
//你的添家Item的代码
Next;
end;
end;
end;
var
i:integer;
TotalRecord:integer;
TempItem:TListItem;begin
with Form1.ADOQuery3 do
begin
TotalRecord:=Recordcount-1;
if TotalRecord>=0 then
begin
form1.ListViewData.Items.Clear;
for i:=0 to TotalRecord do
begin
with form1.ListViewData do
begin
TempItem:=Items.Add;
TempItem.Caption:=Fields[1].AsString ;
TempItem.SubItems.Add(Fields[2].AsString);
TempItem.SubItems.Add(Fields[3].AsString+Fields[4].AsString);
TempItem.SubItems.Add(Fields[5].AsString+Fields[6].AsString);
TempItem.SubItems.Add(DateToStr(RecordSet.Fields.Item[8].Value));
TempItem.SubItems.Add(TimeToStr(RecordSet.Fields.Item[9].Value));
end;
///action here;
Next;
end;
end;
end;
end;
加一句:
Form1.ADOQuery3.first;RecordSet.MoveNext; 改-》 Form1.ADOQuery3.next 试试
偶还是看不出来上面两个方法有什么区别(可惜手头没有D)!
Clear;
FRecordset.MoveFirst;
while not FRecordset.EOF do begin
Selected := Items.Add;
Selected.Caption := FRecordset.Fields[0].Value;
for i := 1 to FRecordset.Fields.Count - 1 do
Selected.SubItems.Add(FRecordset.Fields[i].Value);
FRecordset.MoveNext;
end;很可能是其他地方出了问题。
Form1.ADOQuery3.first;
我也试过了,只要更改
RecordSet.MoveNext; 改-> Form1.ADOQuery3.next
就可以了,没有楼主说的那个问题呀