企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
FMX的ListView,可以呈现各种类型的Item,经测试,其用户体验程度,已经达到原生ios应用的水平。下图,是ListView呈现的各种样式,当把TListView放到Form上,设置ItemAppearance属性,就能得到这样的效果了。[![Delphi XE6学习笔记(2)FMX.TListView的基本用法](http://s12.sinaimg.cn/mw690/001gjF9lzy6ItzOTGVtdb&690 "Delphi XE6学习笔记(2)FMX.TListView的基本用法")](http://album.sina.com.cn/pic/001gjF9lzy6ItzOTGVtdb) ItemAppearance的值不同,Item的属性值会随之变化,主要是以下几项: Item.Text:Item左侧显示的标题 Item.Bitmap:左侧显示的图标 Item.ButtonText:右测按钮显示的标题 Item.Detail:右侧显示的详细内容 有两种方式给ListView传递数据,一种是代码方式填加,下面用代码演示: var  LItem:TListViewItem;  I:Integer; begin  ListView1.BeginUpdate;//提高效率  try    forI:\=1to10do    begin      LItem:\=ListView1.Items.Add;      LItem.Text:\=IntToStr(I);    end;  finally    ListView1.EndUpdate;  end; end; 另一种是利用binding,完全可视化的方式。放置一个TProtoTypeBindSource,为其增加几个Field,然后利用右键bind Visually,即binding可视设计器,将Field联接到item的Text等属性。如图: [![Delphi XE6学习笔记(2)FMX.TListView的基本用法](http://s8.sinaimg.cn/mw690/001gjF9lzy6ItAUOLlBa7&690 "Delphi XE6学习笔记(2)FMX.TListView的基本用法")](http://album.sina.com.cn/pic/001gjF9lzy6ItAUOLlBa7) ProtoTypeBindSource,为我们准备好了测试数据,这样即时得到了运行期才能看到的结果,EMB现在真是太贴心了。你不觉得?反正我是有些微微的感动,几颗清泪差动没下来,现在的好人不多啊。 删除一条项目 用过iphone都知道,提供的通话记录,横向划动一条内容,就会在右侧出现一个红色的删除按钮,用这个按钮就可以把当前这条内容删除掉。想当初被这个功能惊叹过,Apple真有创意,万万没想到啊,今天咱也可以轻松实现了。 ListView提供了一个属性:CanSwipeDelete,默认为True,即ListView默认就支持划动删除了!还有对应一个事件,OnDeleteItem,有个参数AIndex: procedure TForm1.ListView1DeleteItem(Sender: TObject; AIndex: Integer); begin   listview1.Items.Delete(AIndex);//不要在这里再删除了 end; 在这里,我犯了个错误,就是在事件中执行了: ListView1.Items.Delete(AIndex),结果,一删除就删除二条内容。原来,ListView已经做了删除,不用咱再费心了!