ActivityIndicator如何使用?

秋天之落叶 2018-02-27 03:08:42
ActivityIndicator1.StartAnimation;
ADOQuery1.Close;
ADOQuery1.sql.Clear;
ADOQuery1.sql.add('select * from 含有大量数据的表'); //查询时会有等待时间,比如10秒
ADOQuery1.open;
DBGridEh1.DataSource := DataSource1;
ActivityIndicator1.StopAnimation;

阻塞方式下ActivityIndicator这玩意根本就显示不出来,查资料说在安卓下还行,我是在win下使用。
按照老办法,用
ADOQuery1.DisableControls;
Application.ProcessMessages;
ActivityIndicator1.Animate := true;
统统不好使,既然能做出这个控件,那就肯定有方法使用,网上几乎没有教程,单独使用没有问题,
用进度条要open后做一次循环,显示和数据错时严重,有点画蛇添足了,没什么实际意义。
有什么办法处理,或其他不错的办法?有请高手出手。
...全文
760 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋天之落叶 2018-03-05
  • 打赏
  • 举报
回复
没有满意的答案也给参与分。
秋天之落叶 2018-03-01
  • 打赏
  • 举报
回复
没人用过这个控件吗? 我只好动态创建一个TLabel显示在表格中,显示正在处理中,然后再释放,以达到目的了。 用memo不太直观,只能先这样了
  • 打赏
  • 举报
回复
只要是可视组件,都是在主线程中绘制的,所以主线程消息循环阻塞的时候,就不能得到及时更新,只能把耗时较长的操作放在其他线程中。或者在form上放一个TIdAntiFreeze试试。
秋天之落叶 2018-02-27
  • 打赏
  • 举报
回复
引用 1 楼 fpj123 的回复:
针对 大数据量问题: 你 select * from 是用来展示数据吗?如果只用来展示几个字段,那么可以select 展示的字段即可; select * 时, 你 ADOQuery1.open,打开数据集应该需要一定的时间; 你查询的字段最好加上索引,这样查询时会快一些。 针对ActivityIndicator1问题: 他的相关属于你是怎么设置的?
都是默认属性: ActivityIndicator1.Enabled := true; ActivityIndicator1.Visible := true; ActivityIndicator1.Animate := False; (true都不行) 我觉得这是阻塞方式的问题,和属性没有关系
东南西北风 2018-02-27
  • 打赏
  • 举报
回复
针对 大数据量问题: 你 select * from 是用来展示数据吗?如果只用来展示几个字段,那么可以select 展示的字段即可; select * 时, 你 ADOQuery1.open,打开数据集应该需要一定的时间; 你查询的字段最好加上索引,这样查询时会快一些。 针对ActivityIndicator1问题: 他的相关属于你是怎么设置的?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧