• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphixe7判断listbox滚动条是否到达底部,并加载数据

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

或者说成,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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab常用快捷键总结发布时间:2022-07-18
下一篇:
Matlab基本操作发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap