在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
或者说成,listbox下拉加载数据 方法1:当listbox滚动条完全到达底部; var Form2: TForm2; i: Single = -1; implementation {$R *.fmx} procedure TForm2.lst1Gesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin case EventInfo.GestureID of sgiLeft: ShowMessage('sgiLeft'); sgiRight: ShowMessage('sgiRight'); sgiDown: ShowMessage('sgiDown'); sgiUp: begin if i = lst1.ViewportPosition.Y then begin ShowMessage(FloatToStr(i)); end else begin i := lst1.ViewportPosition.Y; ShowMessage(FloatToStr(i)); end; { 设置类型为Single全局变量i,初始值为了-1; 目的是记录滚动条每次的位置变化; 如果滚动条两次的位置是相同,表示滚动条已经到达底部,可以加载数据了。 } //另一个问题又来了,就是怎么判断滚动条接近底部,但是还没有到达底部的时候加载数据呢? end; end; end; 方法2:listbox滚动条快要到达底部,离底部仍有段距离,就要加载数据; procedure TForm2.lst1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); //这个是listbox鼠标经过事件 var items:TListBoxItem; i:Integer; begin i := lst1.Count - 3; //获取listbox控件的总行数;减3的目的是获取倒数第N行。 items := lst1.ItemByPoint(X,Y); //通过坐标获取子项; // items := lst1.ItemByIndex(2); //通过素引值获取子项; // items := Sender as TListBoxItem; //强制转化为 TListBoxItem 类型,同样获取子顶; // lst1.Items[2]; //以上3种方法可以灵活设置子项的属性,例如,图标,高度,文本等;而这一项只能简单地通过素引值获取指定的子项的文本;但是,被注释的这3种方法在本例中暂不适用。 btn2.Text := items.Text; if items.Index = i then begin btn1.Text := '加载数据'; end; //本例最终目的就是,每当手势或鼠标滑过子项的时候,进行判断是不是倒数第N行, //如果是的话,说明1.滚动条快要到达底部了,2.旧数据将会全部被显示出来,这个时候就可以实现动态加载更多的新数据了。 end; 参考资料: Delphi-XE5-手势操作-Gestures-使用方法 http://blog.csdn.net/gzxiaorou/article/details/44537917
Windows phone应用开发[18]-下拉刷新 http://www.cnblogs.com/chenkai/p/3347636.html
每日程炼-触摸屏编程OnGesture http://blog.csdn.net/godyad/article/details/6437625 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论