事件 OnViewportPositionChange 判断滚动条位置,实现加载内容
procedure TForm2.Button1Click(Sender: TObject); var ListBoxItem:TListBoxItem; A_Code:string; begin ListBox1.BeginUpdate; ListBoxItem := TListBoxItem.Create(ListBox1); ListBoxItem.Height := 30; ListBoxItem.ItemData.Accessory := TListBoxItemData.TAccessory(1); { A_Code:='custID'; ListBox1.Items.AddObject('one',TObject(A_Code)); memo1.Text := string(listbox1.Items.Objects[1]); 方法1: } { ListBoxItem.Text := '2017'; ListBox1.AddObject(ListBoxItem); 方法2; } { ListBox1.Items.Add('2017'); 方法3; } ListBox1.EndUpdate; end;//上面3种方法都可以在ListBox控件中添加子项,感觉方法1有点麻烦;方法3简单直接;方法2够灵活,可以设置子项的其它属性,例如添加ico图标,设置高度等。 procedure TForm2.ListBox1ViewportPositionChange(Sender: TObject; const OldViewportPosition, NewViewportPosition: TPointF; const ContentSizeChanged: Boolean); begin memo1.Lines.Add(FloatToStr(NewViewportPosition.Y)); //NewViewportPosition 该参数可以获取滚动条当前位置; //同理,OldViewportPosition,应该是过去的位置; //通过该事件 OnViewportPositionChange 可以判断滚动条的位置,从而实现动态加载内容。 end; procedure TForm2.ListBox1VScrollChange(Sender: TObject); begin memo1.Lines.Add('a'); //这个 OnVScrollChange 事件应该是纵向滚动条事件; //还有一个 OnHScrollChange 这个应该是横向的。 end;
var ListBoxItem:TListBoxItem; begin ListBoxItem := lst1.ListItems[0]; //通过该代码可以获取到指定的子项,并修改子项的属性。 ListBoxItem.Height := 50; //第1个子项高度值设置为50; end;
附上相关学习资源:
delphi xe7 判断listbox滚动条到达底部,并加载数据
http://www.cnblogs.com/devcjq/articles/7434982.html
delphi中AddObject的使用方法
http://che19870620.blog.163.com/blog/static/87785840201010249364510/
Fmx判断ListBox显示到最下面一个文件(用来延迟加载)
http://blog.csdn.net/mywmy/article/details/61625193
Delphi XE5中TListBox的使用方法
http://www.cnblogs.com/azhe127/p/3446743.html //图文教程,比较全面;
怎么理解delphi的这句代码:listbox1.items.Objects[listbox1.ItemIndex]
https://zhidao.baidu.com/question/442156160.html
listbox1 items add是什么作用
http://wenda.tianya.cn/question/4f3fb326d5dbad68
XE7下修改FMX.Grid.pas解决Grid列头与文本内容的样式设定,实现标题栏文字居中,内容的文本可右对齐。
http://www.cnblogs.com/bigsong/p/3983405.html