巧用Delphi制作溅射屏幕

原创 2000年12月11日 09:24:00


(作者:施路 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)<(stopTime+2)) do

   Sleep(1);

  end;

  end.

  12、按F9编译、运行程序。

 

 

巧用Delphi制作溅射屏幕

2000年12月11日 09:24:00 (作者:施路 2000年12月08日 09:32)  精心编写的WINDOWS程序显示启动注意事项,称之为溅射屏幕(splash screen)。利用...
  • softart
  • softart
  • 2007年10月27日 07:44
  • 286

巧用Delphi制作溅射屏幕

     精心编写的WINDOWS程序显示启动注意事项,称之为溅射屏幕(splash screen)。利用一点儿小小的内容,即可给程序的显示添加不少色彩。   由于工程本身创建程序的主窗口,且启动溅射...
  • lanyus
  • lanyus
  • 2005年07月28日 08:16
  • 921

HOW TO:溅射屏幕(Splash Screen),也叫程序启动画面的制作(.NET2003)

HOW TO:溅射屏幕(Splash Screen),也叫程序启动画面的制作(.NET2003)Posted on 2005-10-31 20:40 水如烟(LzmTW) 阅读(2021) 评论(1)...
  • yoeoo
  • yoeoo
  • 2008年11月28日 18:13
  • 768

Qt之溅射屏幕

我们看到的基于Qt开发的产品一般在开机时会显示一些基本信息,而后进入产品的操作界面,这里就是用到了Qt中的溅射屏幕,即在系统构造Qt的界面这个过程中,做一些显示工作。int main(int argc...
  • u013816798
  • u013816798
  • 2016年04月12日 12:51
  • 390

Delphi屏幕绘图

以下代码在全屏幕中心绘制一个十字架:procedure TForm1.Button1Click(Sender: TObject);var   FullscreenCanvas:TCanvas;    ...
  • jqandjq
  • jqandjq
  • 2009年12月09日 14:50
  • 885

用Delphi实现远程屏幕抓取

用Delphi实现远程屏幕抓取 山东巨力股份有限公司CAD中心 檀革勤 ---- 在网络管理中,有时需要通过监视远程计算机屏幕来了解网上微机的使用情况。虽然,市面上有很多软件可以实现该功能,有些甚至可...
  • ghj1976
  • ghj1976
  • 2000年08月21日 18:14
  • 1249

Delphi经典实例4------区域抓取和屏幕抓取

1.区域抓取:如下图所示建立工程:代码如下:unit mainunit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, G...
  • kunshan_shenbin
  • kunshan_shenbin
  • 2010年05月25日 11:53
  • 868

溅射屏幕(Splash Screen),也叫程序启动画面的制作

由于MSDN中文文档还没出来,不晓得那些名词怎叫法,所以不说多了,贴代码和图象(我将操作的步骤一并说了)。      MS2005自带的SplashScreenForm少了一项功能,就是主窗体在加载...
  • minsenwu
  • minsenwu
  • 2013年01月29日 15:07
  • 1817

Delphi中开发使用多显示器的应用程序

Delphi中开发使用多显示器的应用程序
  • hncsl
  • hncsl
  • 2017年04月11日 16:44
  • 670

用delphi写多屏幕程序

别现在有些POS机是双屏幕的(比如卡西瓦POS机),一个屏幕可以当顾客显示屏用,当闲时也可以显示一些广告。其实用delphi写双屏幕的程序是比较简单的,Screen.MonitorCount就是当前系...
  • zyyjc
  • zyyjc
  • 2011年06月07日 23:45
  • 3680
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:巧用Delphi制作溅射屏幕
举报原因:
原因补充:

(最多只允许输入30个字)