本例效果图:
代码文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
ListView1: TListView;
Button1: TButton;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure CheckBox1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
const
ps: array[0..7, 0..2] of string = (
('赵', '男', '88'),
('钱', '男', '77'),
('孙', '女', '66'),
('李', '男', '55'),
('周', '女', '44'),
('吴', '女', '33'),
('郑', '男', '22'),
('王', '男', '11'));
var
i: Integer;
Item: TListItem;
Column: TListColumn;
begin
ListView1.Align := alTop;
ListView1.ViewStyle := vsReport;
ListView1.GridLines := True;
ListView1.Checkboxes := True; {显示复选框}
Column := ListView1.Columns.Add;
Column.Caption := '姓名';
Column.Width := ListView1.Width div 4;
Column := ListView1.Columns.Add;
Column.Caption := '性别';
Column.Width := ListView1.Width div 4;
Column := ListView1.Columns.Add;
Column.Caption := '年龄';
Column.Width := ListView1.Width div 4;
for i := Low(ps) to High(ps) do
begin
Item := ListView1.Items.Add;
Item.Caption := ps[i][0];
Item.SubItems.Add(ps[i][1]);
Item.SubItems.Add(ps[i][2]);
end;
CheckBox1.Caption := 'RowSelect';
Button1.Caption := '显示复选的项';
end;
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
if Item.SubItems.Count > 0 then
Text := Format('%s: %s, %s', [Item.Caption, Item.SubItems[0], Item.SubItems[1]]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Item: TListItem;
str: string;
begin
str := '';
for Item in ListView1.Items do
if Item.Checked then
str := str + Item.Caption + sLineBreak;
ShowMessage(TrimRight(str));
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ListView1.RowSelect := CheckBox1.Checked;
end;
end.
窗体文件:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 156
ClientWidth = 259
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poDesktopCenter
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object ListView1: TListView
Left = 8
Top = 8
Width = 233
Height = 109
Columns = <>
TabOrder = 0
OnChange = ListView1Change
end
object Button1: TButton
Left = 158
Top = 123
Width = 93
Height = 25
Caption = 'Button1'
TabOrder = 1
OnClick = Button1Click
end
object CheckBox1: TCheckBox
Left = 8
Top = 131
Width = 97
Height = 17
Caption = 'CheckBox1'
TabOrder = 2
OnClick = CheckBox1Click
end
end