[界面]程序启动欢迎窗体(splash) 制作方法(附原码) 发表时间:2004-8-10 举个例子,你自己看吧,挺简单的 在许多应用软件中,启动程序后,在主导界面出现之前,有一个一般以图象为主,文字为辅的画面,通常用来显示软件或公司的主题标志、软件名称、作者、版权和版本信息等,停留数秒或按了任意键后软件进入主导界面,这个画面称为splash画面,意思为引人注目画面。这个画面的另外一个用处是在处理耗时进程时,为用户展示一幅优美、舒心的图象。 其实在delphi中可以很容易实现这一技巧。下面用一个例子来逐步说明如何实现splash画面。 1在你的程序中增加一个窗体,把它的名字改为splashform,borderstyle属性设置为bsnone,position属性设置为poscreencenter。 2为splashform窗体增加一系列必要的构件,如label、panel、image、shape以及bevel等。 3使用ide的project|option功能项把splashform窗体从auto-create表移到available 表中。 4将splashform窗体的unit加入到主窗体unit的uses语句中。 5在主程序的.dpr文件中加入一段控制代码,位置是在begin之后、其他代码之前,代码如下: splashform:=tsplashform.create(application); splashform.show; splashform.refresh; 其目的是在建立其他窗体及运行程序之前,建立并显示splash窗体。 6编写主窗体onshow事件的响应过程。 splashform.free; 在本例中,这段代码作用为当屏幕显示主窗体时,释放splash窗体。 7最后,为主程序的.dpr文件写一段延迟程序,目的是使splash画面在屏幕上有一段停留的时间。最简单的办法使用一个无效循环,如: var i,x:longint for i:=1 to 100000 do x:=i; 但是,由于机器运行速度不同,有快有慢,表现出来的效果并不理想,最好的办法是使用时间函数,预先规定splash画面的停留时间。下列代码使splash画面在屏幕上停留5 秒钟。 var time1:tdatetime; time1:=now; repeat until time1+strtotime(′00:00:5′)<=now; 当然,时间延迟代码必须在splash画面显示之后,具体位置是在splashform.refresh; 语句的后面,建立程序主窗体之前。 读者可以运用上述方法,在你的应用程序当中增加一个splash画面,使你的程序更加漂亮。 以下为程序源代码。其中splash窗体借用了delphi\demos\db\mastapp\splash。 {project1.dpr} program project1; uses forms,sysutils, unit1 in ′unit1.pas′ {form1}, splash in ′..\..\demos\db\mastapp\splash.pas′ {splashform}; {r *.res} var time1:tdatetime; begin splashform:=tsplashform.create(application); splashform.show; splashform.refresh; time1:=now; repeat until time1+strtotime(′00:00:5′)<=now; application.initialize; application.createform(tform1, form1); application.run; end. {unit1.pas 主窗体} unit unit1; interface uses windows, messages, sysutils, classes, graphics, controls, forms, dialogs,splash; type tform1 = class(tform) procedure formshow(sender: tobject); private { private declarations } public { public declarations } end; var form1: tform1; implementation {r *.dfm} procedure tform1.formshow(sender: tobject); begin splashform.free; end; end. {splash.pas splash窗体} unit splash; interface uses sysutils, windows, messages, classes, graphics, controls, forms, dialogs, stdctrls, extctrls; type tsplashform = class(tform) panel1: tpanel; label3: tlabel; bevel1: tbevel; label1: tlabel; image1: timage; end; var splashform: tsplashform; implementation {r *.dfm} end.
作者:未知[获得此文档时候没有作者记录,深感抱歉,本文档全为转载]