写完FMX StringGrid向上滑动自动加载记录(一)自己也觉得不理想,实现的别扭与复杂,现在找到更好的实现方法,原来,StringGrid从基类TCustomPresentedScrollBox继承了OnViewportPositionChange事件,只不过没有published出来,所以在设计期StringGrid的事件列表中无法找到。

想了解OnViewportPositionChange,先得了解Viewport是什么概念,通俗的说,Viewport就是StringGrid的可见区域,或者说是ScrollBox的可见区域。当用户在StringGrid上滑动时,无论是上下还是左右,这个Viewport是变化的,这时候,会触发OnViewportPositionChange事件。

这正是需要的事件,在这个事件中,我们可以判断用户滑动的可见区域Viewport是否到了最底部,由此来加载分页查询回来的记录。

上图中,标记出来StringGrid的左上角坐标及左下角坐标,同时也标计出Viewport的左上角及左下角的坐标,初始显示状态,StringGrid内容区域的左上角坐标与Viewport的左上角坐标是相同的,都是从(0,0)开始。当在StringGrid上滑动,Viewport的左上角坐标会变化,这个变化,会反应在OnViewportPositionChange事件中的NewViewportPosition参数中。也就是说,我们可以通过NewViewportPosition参数,可以得到Viewport左上角的新的坐标。当Viewport滑动到StringGrid底部时,Viewport左下角的坐标与StringGrid的内容区的左下角坐标相等,即(0,NewViewportPosition.y+StringGrid1.ViewportSize.Height)等于(0,StringGrid1.ContentBounds.Height),好了,原理就这样,依照这个原理,可以判断用户是否滑动到StringGrid底部了:

procedure TMainForm.ViewportPositionChange(Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean);
begin
if (StringGrid1.ContentBounds.Height-NewViewportPosition.y-StringGrid1.ViewportSize.Height)< then
begin
pq.NextPage;
end;
end;

由于OnViewportPositionChange事件没Published出来,还需要手工联接上面的方法。

procedure TMainForm.FormCreate(Sender: TObject);
begin {...}
StringGrid1.RowCount:=; StringGrid1.OnViewportPositionChange:=ViewportPositionChange; end;

编译成app,在Android上实测,达到目的。

环境:Delphi 10.2.3+kbmMW 5.05.11

FMX StringGrid向上滑动自动加载记录(二)的更多相关文章

  1. FMX StringGrid向上滑动自动加载记录(一)

    有时候,做的app还是需要用StringGrid来显示数据,但如果用StringGrid的Livebinding绑定到一个数据集TDataset,当记录超过1000条时,效率非常低,甚至达不到实用状态 ...

  2. iScroll.js 向上滑动异步加载数据回弹问题

    iScroll是一款用于移动设备web开发的一款插件.像缩放.下拉刷新.滑动切换等移动应用上常见的一些效果都可以轻松实现. 现在最新版本是5.X,官网这里:http://iscrolljs.com/ ...

  3. Web App 向上滑动动态加载数据 2015-06-11 09:36 20人阅读 评论(0) 收藏

    好久没有写博客了 - - ,个人原因 个人原因..  宣传一下...自己的.NET群:252713569 欢迎各位大神加入 嗯..最近在公司开发微信平台的东西..需要做一个WebAPP(PS:其实就是 ...

  4. Android RecyclerView使用 及 滑动时加载图片优化方案

    1.控制线程数量 + 数据分页加载2.重写onScrollStateChanged方法 这个我们后面再谈,下面先来看看RecyclerView控件的使用及我们为什么选择使用它 RecyclerView ...

  5. PSR-4 自动加载器

    div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,cod ...

  6. PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载

    参考文献: 1.PHP PSR-4 Autoloader 自动加载(中文版) 2.PHP编码规范(中文版)导读 3.PHP-PSR-[0-4]代码规范 基本步骤: (1)在vendor 下新建一个项目 ...

  7. js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的

    js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...

  8. [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件

    页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...

  9. Android打造(ListView、GridView等)通用的下拉刷新、上拉自动加载的组件

    原文 http://blog.csdn.net/bboyfeiyu/article/details/39253051       前言 下 拉刷新组件在开发中使用率是非常高的,基本上联网的APP都会采 ...

随机推荐

  1. rg.apache.ibatis.binding.BindingException: Mapper method 'com.dao.Cameao.getOnlineDayRation attempted to return null from a method with a primitive return type (float)

    本文为博主原创,未经允许不得转载: 异常展示如下: org.apache.ibatis.binding.BindingException: Mapper method 'com.dao.Cameao. ...

  2. HDU 5877 Weak Pair(树状数组+dfs+离散化)

    http://acm.hdu.edu.cn/showproblem.php?pid=5877 题意: 给出一棵树,每个顶点都有权值,现在要你找出满足要求的点对(u,v)数,u是v的祖先并且a[u]*a ...

  3. codevs 1200 同余方程 逆元

    题目描述 Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入描述 Input Description 输入只有一行,包含两个正整数 a, b,用 一个 空 ...

  4. python flask demo

    from flask import Flask, jsonify from flask import abort from flask import make_response from flask ...

  5. 对不队——Alpha冲刺

    第五天  日期:2018/6/20 一. 今日完成任务:专家审稿逻辑的开发 冯晓.马思远:会议网站栏目管理开发,软件功能测试 王爽.彭辉:审稿管理员分稿和稿件查找功能开发,博客撰写 吴琼.郝延婷:更换 ...

  6. jsonp跨域远离

    http://blog.csdn.net/sky_beyond/article/details/54096275 function ajax( obj ){ // 默认参数 由于 jsonp 原理是 ...

  7. ln软连接

    ln软连接 ln -s 源目录/文件    目标目录/文件 例如,有个应用 /var/www/html/webapp,下面有个logs日志文件夹,想吧  webapp/logs日志文件夹链到/home ...

  8. PHP面向对象初中高级之由浅入深

    php面向对象编程基本实践:(了解类,类到对象的实例化,构造和析构,对象的引用); 类的概念: 物以类聚,把具有相似特性的对象对垒到一个类中 类定义了这些相似对象拥有的相同的属性和方法 类是相似对象的 ...

  9. Sergey's problem CodeForces - 1019C (图论,构造,神题)

    链接 大意: 给定有向图, 求选择一个点集$S$, 使得$S$任意两点不相连, 且对于不属于$S$的任意点$x$, 均存在$S$中的点$y$, 使得$d(x,y)<=2$, $d(x,y)$为从 ...

  10. PowerDesigner16工具学习笔记-工具介绍

    1.初始界面 1.1 .浏览窗口:本地(Local)浏览窗口.知识库(Repository)浏览窗口 Local:用于显示本地模型 Repository:用于显示知识库模型 1.2 .输出窗口:用于显 ...