那你得先添加listviewitem,添加完后,遍历每一列,对该列不同行填充
解决方案 »
- 存储过程快还是直接写SQL快
- 画图问题
- asp中访问自己写的com倥件,提示“Microsoft VBScript 运行时错误 错误 '800a01a8' ”,请教如何解决
- mouse hook的dll问题,高手帮忙啊!!急,马上结贴!!
- 请高手指点安装程序的问题(wise或者installshield都好)
- 希望大家帮个忙:)非常感谢
- 怎样处理主-明细表的输入?
- 这是什么原因?
- Null怎么了?
- 有没有搞电力系统的,交个朋友,问一下,电力中的潮是怎么回事??
- Timer在delphi2010的执行不行,在delphi7执行成功,找不出原因
- xp下安装delphi xe5 update2安装完成但不能运行。
NewItem:TListItem;
begin
//新增一行
NewItem := ListView1.items.Add;
//为每一行的每一列添加信息。
NewItem.Subitems.Add('第一列');
NewItem.Subitems.Add('第二列');
end;
with ListView1.items.Add do
begin
Subitems.Add('第一列');
Subitems.Add('第二列');
Subitems.Add('第n列,依此类推');
end;
Subitems.Add创建对象,要创建后才可以直接赋值
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, Buttons, ComCtrls;Type
TForm1 = Class(TForm)
ListView1: TListView;
BitBtn1: TBitBtn;
Procedure FormCreate(Sender: TObject);
Procedure BitBtn1Click(Sender: TObject);
Private
Procedure ListViewAdd(R, C: Integer; S: String);
Public
End;Var
Form1: TForm1;Implementation{$R *.dfm}Procedure TForm1.FormCreate(Sender: TObject);
Begin
ListView1.ViewStyle := vsReport;
ListView1.ReadOnly := True;
End;Procedure TForm1.ListViewAdd(R, C: Integer; S: String);
Var
I: Integer;
Begin
If (R < 1) Or (C < 1) Then
Begin
Exit;
End;
With ListView1 Do
Begin Items.BeginUpdate;
Try
While Columns.Count < C Do
Begin
Columns.BeginUpdate;
Try
With Columns.Add Do
Begin
Width := 50;
Caption := Format('No.%d', [Columns.Count]);
End;
Finally
Columns.EndUpdate;
End;
For I := 0 To Items.Count - 1 Do
Begin
Items[I].SubItems.Add('');
End;
End; While Items.Count < R Do
Begin
With Items.Add Do
Begin
Caption := '';
For I := 0 To Columns.Count - 1 Do
Begin
SubItems.Add('');
End;
End;
End; If C = 1 Then
Begin
Items[R - 1].Caption := S;
End
Else
Begin
Items[R - 1].SubItems[C - 2] := S;
End;
Finally
Items.EndUpdate;
End;
End;
End;Procedure TForm1.BitBtn1Click(Sender: TObject);
Var
R, C: Integer;
Begin
Randomize;
R := Random(20) + 1;
C := Random(20) + 1;
ListViewAdd(R, C, Format('%d.%d', [R, C]));
End;End.