巧用Delphi制作溅射屏幕


======================================================
注:本文源代码点此下载
======================================================

(作者:施路 2000年12月08日 09:32)

精心编写的windows程序显示启动注意事项,称之为溅射屏幕(splash screen)。利用一点儿小小的内容,即可给程序的显示添加不少色彩。

由于工程本身创建程序的主窗口,且启动溅射屏幕必须在创建主窗口之前出现,所以工程文件必须创建自己的启动屏幕。这意味着用户必须修改源代码来创建工程文件,而这通常在delphi编程中是不需要的。下面的过程介绍了溅射屏幕的建立过程。

1、开始一个新的工程。将窗体命名为mainform,同时将其caption属性设置为splashindemo。把这个工程保存在一个目录中,如c:\projects\splashin。把mainform的单元命名为main,把工程文件命名为splashin。

2、在mainform中插入一个button组件。将button的name属性改为exitbutton,而将其caption属性改为exit。为exitbutton的onclick事件创建一个处理器,在过程的begin和end关键词之间插入close;语句。

3、选取file|new form命令,或者单击new form速度按钮。添加一个新的窗体。

4、将这个窗体的name属性改变为splashform,删除其caption属性。此外,将其borderstyle属性改变为bsnone,同时将bordericons下的三个子值设置为false。

5、保存这个工程。当delphi提示读者提供单元文件名时,要确信当前目录为正确的目录。为splashform的单元文件名输入splash。

6、将splashform的enabled属性设置为false。这里不想让用户能够给窗口提供键盘和鼠标命令,这是极少见的情况之一。在这个例子中,我们想让程序对splashform的显示拥有完全的控制权。

7、由于窗口没有轮廓,所以从additional组件类中插入一个bevel组件对象。这有助于定义窗口的边缘。将bevel1的align属性设置为alclient。同时,将对象的shape属性改变为bsframe,将其style属性改变为bsraised。这些值由使用者来确定。

8、在splashform中插入想使用的组件,在这里不要插入任何按钮或者其他相互作用的控件。应用程序本身显示和去除启动溅射对话框。

9、选择project菜单。高亮显示splash工程个弹出式菜单。选择options命令。在所产生的project options对话框中,选取forms页标签。注意,mainform和splashform位于自动创建的窗体列表中。高亮显示每个窗体并单击鼠标右按钮来将其移动到available窗体。所有的delphi窗体在运行时都是在内存中自动创建的,这要消耗内存和系统资源。在这样的一个案例中,程序是在运行时创建窗体的,读者应该从自动创建的列表中删除窗体。关闭projectoptions窗口。

10、接下来,修改工程的源代码,以便在显示主窗口之前显示溅射对话框。这里需要在工程文件中插入语句,以便与splash.dpr工程文件相匹配。工程源代码如下:

program project3;

uses

forms,

main in 'main.pas' {mainform},

splash in 'splash.pas' {splashform};

{$r *.res}

begin

splashform:=tsplashform.create(application);

splashform.show;

splashform.update;

application.createform(tmainform,mainform);

splashform.close;

application.run;

end.

11、如果这时编译和运行程序,它就非常快速地显示和去除启动溅射对话框,以至用户可能没机会见到它。为了强迫对话框保持几秒钟的可见时间,请选取程序的mainform。为窗体的oncreate命令创建一个处理器。在关键词的前面添加一个名为stoptime的长整型变量。在begin和end之间插入两个语句:一个为对windows gettickcount函数的调用。来将stoptime设置为windows已在运行的秒数;另一个语句为while语句,这个语句另外延迟2秒钟。程序清单如下:

unit main;

interface

uses

windows, messages, sysutils, classes, graphics, controls, forms, dialogs,

stdctrls;

type

tmainform = class(tform)

exitbutton: tbutton;

procedure exitbuttonclick(sender: tobject);

procedure formcreate(sender: tobject);

private

{ private declarations }

public

{ public declarations }

end;

var

mainform: tmainform;

implementation

{$r *.dfm}

procedure tmainform.exitbuttonclick(sender: tobject);

begin

close;

end;

procedure tmainform.formcreate(sender: tobject);

var

stoptime:longint;

begin

stoptime:=gettickcount div 1000;

while ((gettickcount div 1000)

trackback: http://tb.blog.csdn.net/trackback.aspx?postid=3231


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值