谁能给个满足下面的功能的TListView的例子?

whulph 2006-07-14 10:43:06
Form中有如下控件:
ListView : TListView
Label1 : TLabel
Label2 : TLabel
1、ListView的checkboxes属性为true;
2、用户点击ListView中没条记录前面的checkbox时(实际上是有Item的checked属性改变时),Label1的Caption变为checked := true的Item的数目
3、用户点击某个Item时,Label2的Capition显示这个Item各个字段的值

我自己用OnChange事件和OnClick来实现,可是总是得不到想要的效果,多点几次后就乱套了似的。
希望大家能给个完整的例子,谢谢!
...全文
243 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
andyzhou1101 2006-07-14
  • 打赏
  • 举报
回复
2

------------------------------------------------

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
var
i :integer;
begin

if item.Checked then
begin
Label2.Caption := item.Caption;

for i := 0 to item.SubItems.Count - 1 do
begin

label2.Caption := Label2.Caption+item.SubItems.Strings[i];

end;
end;


end;
andyzhou1101 2006-07-14
  • 打赏
  • 举报
回复
1

----------------------------------------
先写个统计选中item的总数的函数
function GetCount: integer;
var
I, J: integer;
begin
J := 0;
for I := 0 to ListView1.Items.Count - 1 do
begin
ListView1.Items[I].Selected := False;
if ListView1.Items[I].Checked = True then
begin
J := J + 1;

end;
end;
Result := J;
end;


然后在onClick
label1.Caption := inttostr(GetCount);
xzhifei 2006-07-14
  • 打赏
  • 举报
回复
点击checkbox时会触发OnChange事件:
begin
if Item.Checked then
............
end;


------------------------------------------------------- 本回复由大傻的破玩意儿【CSDN's forum Explorer】完成! 软件功能强大,速度超快!!支持中... 软件下载地址:http://CoolSlob.ys168.com
whulph 2006-07-14
  • 打赏
  • 举报
回复
to :andyzhou1101(〆.赱 極端(NND,杀光所有打女人的男人))
click会触发change事件吗?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧