请问delphi中如何显示信息后,自动继续执行下面的程序。
解决方案 »
- 【delphi编译驱动】
- 主从表的问题,大家幫頂呀。
- 其它窗口调用Data Module,总说Missing Connection or ConnectionString,但
- 急!急!请教:停止查询按纽怎么写?(在线等)
- 生日散分帖,下班揭贴
- 如何在QuickReport中的TQRDBText自动换行(很急的)
- Pdoxusrs.net文件有什么用,在运行delphi写的程序时经常提示它出错我用的是.dbf数据库
- 关于TMaskEdit
- 哪里有VCL方面的中文参考资料。
- 遍历系统进程问题 DELPHI+W2k 在线等待
- EXECL表的拷贝与粘贴
- delphi6中只有一个udp控件,怎么用来侦测某个端口上的数据?
0、前提:你的主窗口假设叫做Form1
1、在你的工程中添加一个窗口可把它命名为FormSplash,在它上面放一个Image控件,如果你想显示什么信息字之类,再放上几个Label控件。
2、设置Project Options选项(在菜单中选择Project Option…),打开这个对话框,选Forms页。设置Form1为FormMain,再将FormSplash从Auto-create forms中移到Avalilabe forms中。
3、在菜单中选择"Project-->View Source"命令,打开工程源文件,将Begin…End中的代码修改成下面的样子:
Begin
FormSplash:=TFormSpalsh.Creat(Application); //创建启动窗口
FormSplash.Show;
FormSplash.Update;
{以上语句必须写在Application.Initialize之前}
Application.Initialize;
Application.CreateForm(TmainForm,Form1); //Form1为程序主窗口
FormSplash.Hide;
FormSplash.Free;
Application.Run;
end
现在可以执行程序了你会看到启动窗口,如果你的程序太简单,你可能会看不到启动窗口,如果你是一个数据库应用程序,因要启动BDE引擎,需要一些时间,这时你能看到启动窗口。
对简单的程序来说,若也想看到启动窗口,可在FormSplash.Hide前加入延时,但通常不建议这么做。
//可以在form1加个timer1,到时间就form1.close;//继续
........
如果有键击则关闭窗口,应用自然继续往下执行.
var EventHandle : THandle;EventHandle := CreateEvent(Nil,true,false,'KeyEvent');ObjRtn := WaitForSingleObject(EventHandle,6000);
ResetEvent(EventHandle);
if ObjRtn = WAIT_FAILED then
你的代码
; //超时则....
CloseHandle(EventHandle);
如同做启动窗口一样,把它加入到Avalilabe forms中,以便在需要的时候即时创建。
假设Form1中的某个按钮在按下后有大量计算工作要做你想显示如同foxpro的wait。则在该按钮在Click事件中加入如下命令;procedure TForm1.cmdOKClick(Sender: TObject);begin
Screen.Cursor := crHourGlass;
frmWait:=TFrmWait.Create(Application);
frmWait.Label1.Caption :='希望在wait窗口中出现的提示语句';
frmWait.Show ;
frmWait.Update ;
{
.......
.......
此处是你的语句
.......
.......
}
Screen.Cursor := crArrow;
frmWait.Hide;
frmWait.Free;
end;
这样应该是你希望的wait了,不过,用进度条不是更好吗?那样更生动一些