type E_Listviewmain=class(tdcreateform) uses tslvcl; listview1:tlistview; btn1:tbtn; btn2:tbtn; btn3:tbtn; btn4:tbtn; btn5:tbtn; btn6:tbtn; btn7:tbtn; btn8:tbtn; function Create(AOwner);override; //构造 begin inherited; end function btn8_clk(o;e);virtual; begin Messageboxa(tostn(listview1.SelectedValue),"选中数据",0,self); end function btn7_clk(o;e);virtual; begin Messageboxa(tostn(listview1.ListValues),"数据",0,self); end function btn6_clk(o;e);virtual; //插入 begin listview1.InsertItem(array(0,datetimetostr(now())),listview1.SelectedId); ModifyIndex(); end function btn4_clk(o;e);virtual; //清空所有 begin listview1.DeleteAllColumns(); end function btn3_clk(o;e);virtual; //删除数据项 begin listview1.DeleteAllItems(); end function btn2_clk(o;e);virtual; //删除选中 begin listview1.deleteselect(); ModifyIndex(); end function btn1_clk(o;e);virtual; //追加一项 begin listview1.appendItem(array(listview1.ItemCount+1,datetimetostr(now()))); end function btn5_clk(o;e);virtual; //初始数据 begin listview1.Columns := array(("text":"id"),("text":"value","width":260)); listview1.DeleteAllItems(); d := array((1,"福田"), (2,"南山"), (3,"宝安"), (4,"龙岗"), (5,"罗湖"), (6,"盐田") ); listview1.Appenditems(d); end function e_listviewmain1_close(o;e);virtual; begin {** @explan(说明) 主窗口关闭回调 %% @param(e)(tuievent) 消息对象 %% @param(o)(ttimer) 当前主窗口 %% **} if MessageBoxA('是否关闭当前窗口','关闭',MB_YESNO,o)<>IDYES then e.skip := true; end function DoControlAlign();override;//对齐子控件 begin //当窗口大小改变时,该函数会被调用, //可以通过 clientrect 获取客户区大小,设置子控件的位置以及大小 //如果自己处理了子控件的对齐,就可以去掉 inherited inherited; end function Recycling();override; //回收变量 begin inherited; ci := self.classinfo(); //将成员变量赋值为nil避免循环引用 for i,v in ci["members"] do begin invoke(self,v["name"],nil); end end function ModifyIndex(); //修正序号 begin for i := 0 to listview1.ItemCount-1 do begin listview1.SetSubItemByIndex(i,0,i+1); end end end