如何用DELPHI7制作程序启动封面?
展开全部
一、 启动封面实现思路
为了实现启动封面的效果,我们要在delphi中使用两个窗体。一个窗体A用于显示程序的启动封面,而另一个为程序的主窗体B包含了您所设计的种种功能。窗体A是一个非规则窗口,其标题栏及最大化、最小化按钮和边框都被屏蔽掉了,其用一个Image控件装载一个图片文件来显示程序的封面,并用一个timer控件实现该窗口的定时关闭。为了方便程序使用者快速跳过启动封面直接进入程序主窗体,我们还要设置一个click事件来关闭窗体A并调用主窗体B。
二、操作具体步骤
1、 请先在delphi6.0中创建一个应用程序及主窗体。选择主菜单下的File/New/Application命令,这个操作将创建一个应用程序和一个主窗体。随后将主窗体的name属性由form1改为Mainform,主窗体的其余情况在此不详述,请根据您所设计的应用程序功能自行操作。
2、 制作程序启动封面的图片。图片的大小您应该细细考虑一下,为此笔者还专门将foxmail4.0的启动封面用抓图软件抓了下来,在绘图软件中细细测量了一下。其大小为380×240,笔者觉得foxmail这款主流软件在设计启动封面的大小时一定进行过周全的考虑。故建议您也采用这个尺寸,当然您也可以自行设置启动封面的大小。(请考虑当今流行的屏幕主分辨率是800×600)在制作启动封面时要考虑您所编制软件的功能及名称,软件的封面是给人的第一印象。假如您的软件是要在市场上推广的话,建议您找专业的美工设计师来设计一番为好!笔者在此偷懒了一番,随意去因特网抓了一幅风景画用paint shop pro缩小了图片的尺寸便做为了封面。另外图片的格式最好为gif或者jpg格式,这样在编译出来的程序不致于太肥。
3、 增加封面窗体,请点击delphi工具栏中的new form按钮。创建一个新窗体,并在其上添加一个 Image控件,并且选中Image控件并在属性框中找到picture属性点右边的小按钮。在弹出的图像编辑窗口中,单击load键载入您所制作的封面。然后将Image控件的Autosize属性设为True,这样Image控件便能自动适应图片的大小了。为了实现启动封面的定时关闭,再添加一个Timer控件,将其enable属性设为true以触发ontimer事件,Interval属性设为5000(即5秒),这两项属性操作便是在窗体显示5秒后触发ontimer事件来关闭窗口。
图一
4、 设置封面窗体属性使之符合启动封面要求。请修改下列封面窗体属性:
Position = PoscreenCenter
//运行时居于屏幕中央
Autosize = true
//自动适应Image控件,使启动图片完整显示
BorderStyle = bsnone
//窗口无标题栏及最大化、最小化及关闭按钮和边框
Name = splashform
三、 程序代码解析
选择主菜单下的Project/View Scource 命令,打开这个项目的项目文件。根据下列代码进行修改。
program Project2;
uses
Forms,Controls,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {SplashForm};
{$R *.res}
begin
Application.Initialize;
SplashForm :=TSplashForm.Create(Application);
//创建splash窗体
SplashForm.ShowModal;
//以模式对话框的方式显示splash窗体
if (SplashForm.ModalResult = mrOK) then
//如果定时时间到或单击了窗体上的图形
begin
Application.Title := '测试Splash窗体';
//设置应用程序的标题
Application.CreateForm(TMainForm, MainForm);
//自动方式创建的主窗体
SplashForm.Hide;
//将启动封面窗体隐藏
SplashForm.Release;
//将启动封面窗体清除
Application.Run;
end;
end.
随后在splash窗体上编写下列事件代码
procedure TSplashForm.Timer1Timer(Sender: TObject);
begin
SplashForm.ModalResult:= mrOK;
//定时时刻到后的事件处理程序
end;
procedure TSplashForm.Image1Click(Sender: TObject);
begin
SplashForm.ModalResult:= mrOK;
//单击splash窗体上图像的事件处理程序
end;
为了实现启动封面的效果,我们要在delphi中使用两个窗体。一个窗体A用于显示程序的启动封面,而另一个为程序的主窗体B包含了您所设计的种种功能。窗体A是一个非规则窗口,其标题栏及最大化、最小化按钮和边框都被屏蔽掉了,其用一个Image控件装载一个图片文件来显示程序的封面,并用一个timer控件实现该窗口的定时关闭。为了方便程序使用者快速跳过启动封面直接进入程序主窗体,我们还要设置一个click事件来关闭窗体A并调用主窗体B。
二、操作具体步骤
1、 请先在delphi6.0中创建一个应用程序及主窗体。选择主菜单下的File/New/Application命令,这个操作将创建一个应用程序和一个主窗体。随后将主窗体的name属性由form1改为Mainform,主窗体的其余情况在此不详述,请根据您所设计的应用程序功能自行操作。
2、 制作程序启动封面的图片。图片的大小您应该细细考虑一下,为此笔者还专门将foxmail4.0的启动封面用抓图软件抓了下来,在绘图软件中细细测量了一下。其大小为380×240,笔者觉得foxmail这款主流软件在设计启动封面的大小时一定进行过周全的考虑。故建议您也采用这个尺寸,当然您也可以自行设置启动封面的大小。(请考虑当今流行的屏幕主分辨率是800×600)在制作启动封面时要考虑您所编制软件的功能及名称,软件的封面是给人的第一印象。假如您的软件是要在市场上推广的话,建议您找专业的美工设计师来设计一番为好!笔者在此偷懒了一番,随意去因特网抓了一幅风景画用paint shop pro缩小了图片的尺寸便做为了封面。另外图片的格式最好为gif或者jpg格式,这样在编译出来的程序不致于太肥。
3、 增加封面窗体,请点击delphi工具栏中的new form按钮。创建一个新窗体,并在其上添加一个 Image控件,并且选中Image控件并在属性框中找到picture属性点右边的小按钮。在弹出的图像编辑窗口中,单击load键载入您所制作的封面。然后将Image控件的Autosize属性设为True,这样Image控件便能自动适应图片的大小了。为了实现启动封面的定时关闭,再添加一个Timer控件,将其enable属性设为true以触发ontimer事件,Interval属性设为5000(即5秒),这两项属性操作便是在窗体显示5秒后触发ontimer事件来关闭窗口。
图一
4、 设置封面窗体属性使之符合启动封面要求。请修改下列封面窗体属性:
Position = PoscreenCenter
//运行时居于屏幕中央
Autosize = true
//自动适应Image控件,使启动图片完整显示
BorderStyle = bsnone
//窗口无标题栏及最大化、最小化及关闭按钮和边框
Name = splashform
三、 程序代码解析
选择主菜单下的Project/View Scource 命令,打开这个项目的项目文件。根据下列代码进行修改。
program Project2;
uses
Forms,Controls,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {SplashForm};
{$R *.res}
begin
Application.Initialize;
SplashForm :=TSplashForm.Create(Application);
//创建splash窗体
SplashForm.ShowModal;
//以模式对话框的方式显示splash窗体
if (SplashForm.ModalResult = mrOK) then
//如果定时时间到或单击了窗体上的图形
begin
Application.Title := '测试Splash窗体';
//设置应用程序的标题
Application.CreateForm(TMainForm, MainForm);
//自动方式创建的主窗体
SplashForm.Hide;
//将启动封面窗体隐藏
SplashForm.Release;
//将启动封面窗体清除
Application.Run;
end;
end.
随后在splash窗体上编写下列事件代码
procedure TSplashForm.Timer1Timer(Sender: TObject);
begin
SplashForm.ModalResult:= mrOK;
//定时时刻到后的事件处理程序
end;
procedure TSplashForm.Image1Click(Sender: TObject);
begin
SplashForm.ModalResult:= mrOK;
//单击splash窗体上图像的事件处理程序
end;
参考资料: http://www.100j.net/Article/Programme/Program/Delphi/200504/8036.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询