我的程序因为要读大量的数据库,启动时比较慢,大概要12-15s,所以我想在程序启动时在启动界面上做一个progressbar进度条.
我该怎么做? 主要问题是怎样实现在程序启动时(主程序初始化时)进度条的position的累加.
急用,谢谢!
我该怎么做? 主要问题是怎样实现在程序启动时(主程序初始化时)进度条的position的累加.
急用,谢谢!
解决方案 »
- 能使用TSimpleDataSet控件向数据表中插入、编辑数据吗?
- 在往TCombobox中插入时遇到的问题。★★(来者有分!)★★
- 今天刚住上可以上网的房子,一来就看到大版要走~~~~~~~~祝
- dxdbtreeview的问题.
- 怎样忽略掉这个系统级错误??
- ●●●请问: 我使用了 TdxDBDateEdit,如何将时间也保存进数据库???
- 关于异型窗体的基础问题!!请各位高手指点一二!!!!
- SOS
- 怎么判断一个form是否已经Create?已经Show?已经ShowModal?
- delphi多线程?
- @@@@如何用TreeView像windows资源管理器一样选中某个节点后任意删除和添加◎◎◎◎◎
- 请问这种情况下,sql语句怎么写?
最后FREE 该DIALOG.用不着很精确的,其实我认为做不到100%的精确。
在初始化主程序的过程中,添加Progressbar的进度控制,然后Refresh就OK了
TADODataSet.OnFetchProgress在这个事件中可以知道取数据的进度
先用Gettickcount计算得出启动时间,
然后再设计时设置一常量来代表启动总时间
再用定时器根据已执行时间和总时间比较设置进度条。
有点苯,不过我找不到好方法
先用Gettickcount计算得出启动时间,
然后再设计时设置一常量来代表启动总时间
再用定时器根据已执行时间和总时间比较设置进度条。该方法和我当时的想法一样,但是timer好像在主程序create的时候没有触发,等到主程序create完后才触发,这样的话我程序都启动完了,进度条才显示进度,这样岂不没有意义了吗?
有没有好的方法解决这个问题
将启动时间赋值一常量,再在定时器里根据这个常量来设置progressbar,当然只是大概了!
因为以后启动数据库连接的时间会增长(如果你启动时连接数据库的话)
连接数据库.
progressbar.max:=数据记录数.
while not **.eof do begin
处理记录后
inc(progressbar.position);
End;。
就这样!