东西作完了,想作一个类似于PHOTOSHOP的那样的动态启动画面,可是尝试了几次效果都不理想,大家是怎么作的呀?
我尝试过的方法:
1。通过全局变量更新启动窗体上的LABEL。
2。通过计时器来更新LABEL.(假更新)。
发现在启动窗体好长时间之后才能更新,而这一段时间程序没有做什么耗时的动作。
我的代码如下:
begin
CreateMutex(nil, True, 'Tform1');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, '程序正在运行!', '警告!' ,MB_ICONERROR);
Halt;
end;
Application.Initialize;
qd:=Tqd.Create(application);
qd.Show;
qd.Update;
Application.CreateForm(Ttietongdb, tietongdb);
//数据模块窗体,其中有qd.label1.caption:='正在连接数据库';qd.update;语句,但不显示
qd.AlphaBlend:=true;
qd.Update;
Application.CreateForm(TForm1, Form1);
//主窗体,同上,这个里面的更新信息显示
while qd.AlphaBlendValue > 15 do
qd.AlphaBlendValue := qd.AlphaBlendValue - 5;
qd.Hide;
qd.Free;
Application.Run;
end.
我尝试过的方法:
1。通过全局变量更新启动窗体上的LABEL。
2。通过计时器来更新LABEL.(假更新)。
发现在启动窗体好长时间之后才能更新,而这一段时间程序没有做什么耗时的动作。
我的代码如下:
begin
CreateMutex(nil, True, 'Tform1');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0, '程序正在运行!', '警告!' ,MB_ICONERROR);
Halt;
end;
Application.Initialize;
qd:=Tqd.Create(application);
qd.Show;
qd.Update;
Application.CreateForm(Ttietongdb, tietongdb);
//数据模块窗体,其中有qd.label1.caption:='正在连接数据库';qd.update;语句,但不显示
qd.AlphaBlend:=true;
qd.Update;
Application.CreateForm(TForm1, Form1);
//主窗体,同上,这个里面的更新信息显示
while qd.AlphaBlendValue > 15 do
qd.AlphaBlendValue := qd.AlphaBlendValue - 5;
qd.Hide;
qd.Free;
Application.Run;
end.
解决方案 »
- delphi按键问题.....等待解决
- 时实刷新 表格 怎么实现 ???
- 文件传输的网上的一段代码???
- 新手求救(特别急):怎样释放ADODataSet占用的内存
- 加价,人民币500元求解一个完整的解决方案.......
- 如何使用BroadcastSystemMessage在不同程序间发送结构。
- 哪里有可以打印Panel上所有控件的控件呀?
- DecisionQuery结果为空的时候能不能通过Cube
- 关于Winsock! 用SendStream发出的数据流如何在另一端接收! 谢谢!
- 如何暂停一个程序并继续? 即: 如何把“控制权”交给系统并重新获得?
- 记录类型
- 我程序中有50个界面图大小为80*80 , 请问搞主文件才是最小,一定要编辑在主文件中。??
begin
if assigned(frmQdck) then
try
FrmQdck.Close;
except
end;
end;procedure TfrmQdck.Timer1Timer(Sender: TObject);
begin
if label1.Left = panel1.Width then
label1.Left := 0;
label1.Left := label1.Left + 2;
refresh;
end;
program Project1;uses
Forms,
windows,
Unit1 in 'Unit1.pas' {FormMain},
Unit2 in 'Unit2.pas' {FormSplash};{$R *.RES}begin
FormSplash:=TFormSplash.Create(Application);//FormSplash是启动窗体
FormSplash.Show;
FormSplash.Update;
Application.Initialize;
Application.CreateForm(TFormMain, FormMain);
Sleep(2000);//如果程序小则加延时函数,否则最好不要
FormSplash.Hide;
FormSplash.Free;
Application.Run;end
在启动画面中放TIMER的方法好像不可以!
FormSplash.Hide;
FormSplash.Free;free以前先hide。可以避免FormSplash闪烁。