本人做了一个小工具,listbox用来显示数据库里的人名,希望每行显示4个人名,第5个人名开始换第2行,以此类推。
但是实际结果却是,先显示第1列(20个人名),第21个人名开始换第2列。代码如下:
----------------------------------------------------------------------------
while i<20 do
begin
move:=random(100);
adoquery1.MoveBy(move);
mingz:=adoquery1.Fieldbyname('shuangm').AsString;
listbox1.Items.Append(mingz);
i:=i+1;
end;
--------------------------------------------------------------------------------该如何修改,或设置?
但是实际结果却是,先显示第1列(20个人名),第21个人名开始换第2列。代码如下:
----------------------------------------------------------------------------
while i<20 do
begin
move:=random(100);
adoquery1.MoveBy(move);
mingz:=adoquery1.Fieldbyname('shuangm').AsString;
listbox1.Items.Append(mingz);
i:=i+1;
end;
--------------------------------------------------------------------------------该如何修改,或设置?
Names: array[0..5, 0..1] of string = (
('Rubble', 'Barney'),
('Michael', 'Johnson'),
('Bunny', 'Bugs'),
('Silver', 'HiHo'),
('Simpson', 'Bart'),
('Squirrel', 'Rocky')
);var
I: Integer;
NewColumn: TListColumn;
ListItem: TListItem;
ListView: TListView;
begin
ListView := TListView.Create(Self);
with ListView do
begin
Parent := Self;
Align := alClient; ViewStyle := vsReport; NewColumn := Columns.Add;
NewColumn.Caption := 'Last';
NewColumn := Columns.Add;
NewColumn.Caption := 'First'; for I := Low(Names) to High(Names) do
begin
ListItem := Items.Add;
ListItem.Caption := Names[I][0];
ListItem.SubItems.Add(Names[I][1]);
end;
end;
end;有问题先找帮助,再找google和baidu,实在不行了再来csdn
相当于listbox1.Items.Append(mingz); 但是还不了解怎么限定只显示四列,请教如何设置,或用什么语句,谢谢啦!
或者,listbox.columns:=0;
listbox,items.add(每4条记录,中间用分隔符分隔);
然后在listbox的itemdraw事件里,分解得到4条记录,再根据listbox的宽度,在4个平均位置画出4条记录的值。
i: Integer;
begin
ListView1.ViewStyle := vsReport;
for I := 0 to 3 do
ListView1.Columns.Add.Caption := IntToStr(i);
with ListView1.Items.Add do
begin
Caption := 'caption';
SubItems.Add('subitems-1');
SubItems.Add('subitems-2');
SubItems.Add('subitems-3');
end;
end;