如何给listview动态添加数据?(10分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
我想动态的给listview添加记录,可是试了好久总是没有很好的实现。
比如listview有3列,我想点个按钮就在listview的最后一行加上

1 2 3

该如何实现呢?
 
看一下以下例子,你就明白了:

正宗的方法:procedure TListItem.MakeVisible(PartialOK: Boolean);

在Form中放个按钮即可,粘贴以下程序段就可查看效果。
uses ...,conctrls;

procedure TForm1.Button1Click(Sender: TObject);
const
Names: array[0..5, 0..1] of string = (
('Rubble', 'Barney'),
('Michael', 'Johnson'),
('Bunny', 'Bugs'),
('Silver', 'HiHo'),
('Simpson', 'Bart'),
('Squirrel', 'Rockey')
);
var
I: Integer;
NewColumn: TListColumn;
ListItem: TListItem;
ListView: TListView;
begin
ListView := TListView.Create(Self);
with ListView do
begin
Parent := Self;

Align := altop;
ViewStyle := vsReport;

NewColumn := Columns.Add;
NewColumn.Caption := 'Last';
NewColumn := Columns.Add;
NewColumn.Caption := 'First';

for I := Low(Names) to High(Names)*20 do
begin
ListItem := Items.Add;
ListItem.Caption := Names[I mod 5][0];
ListItem.SubItems.Add(Names[I mod 5][1]);
listitem.MakeVisible (true); //正宗的方法。
application.ProcessMessages ;
sleep(100);
end;
end;
end;
 
提示conctrls.dcu没找到,是离线数据库里的代码:)
 
var
ListItem: TListItem;
i:integer;
begin
ListItem := Listview1.Items.Add;
ListItem.Caption := '1';
i:=listview1.Items.Count-1;
with Listview1.Items do
begin
SubItems.Append('2');
SubItems.Append('3');
end;
end;
 
嘿嘿,jsxjd又是你啊,多谢了,仔细看了一下,解决了:)
 
后退
顶部