数据库载入时显示进度 (200分)

  • 主题发起人 主题发起人 KenLee
  • 开始时间 开始时间
K

KenLee

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库载入时用progressbar是不是只能用线程技术?(不要gauge,太难看了)
GraphicalForm中:
PostThreadMessage(GraphicalForm.MyThread1.handle,MMs_StepProgress,0,0);
PB.pas中:
case MsgWaitForMultipleObjects(1, Event, False, INFINITE, QS_POSTMESSAGE) of
WAIT_OBJECT_0:
begin
while ((Terminated = false) and (pb.Position < PB.Max))do
Synchronize(UpdateProgressBar);
end;
这样行吗??
另外数据库载入期间滚动字幕、动画全部停下,是不是也只能用多线程解决?
请给出一个多线程显示进度的实例。
email:liganx@263.net
 
数据库载入时显示进度
看你用的是不是 ADO
 
不需用多线程,只需在循环里加入Application.ProcessMessages;
 
接受答案了.
 
其实我相信用多线程会好点,因为现在动画和进度条虽然都能都了,但是登录时间从原来的20秒变
成了近40秒!
早知道不该给你200分!
还有谁知道怎样做成用多线程控制登录过程或者控制动画的?谁给一个简单例程我另开题目给300分
我的mail是liganx@263.net
 
用线程是可以,但你的动画也很快结束了
 
//线程部分
type
OpenDataBase = class(TThread)
private
protected
procedure Execute;
override;
Public
constructor Create;
end;

constructor OpenDataBase.Create;
begin
FreeOnTerminate:=True;
inherited Create(False);
end;

procedure OpenDataBase.Execute;
begin
inherited;
CoInitialize(nil);
try
// DCOMConnection1.Open;
ADOConnection1.Open;
except
end;
end;

//执行线程
OpenDataBase.Create;
for i:=1 to 40do
//等待线程把数据库打开
begin
Sleep(50);
Application.ProcessMessages;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
653
import
I
后退
顶部