程序的启动界面是为了让需要较长时间的程序启动时,避免用户错误的以为程序没有打开或者没有响应,而设计的一个“小甜点”,但许多人设计时,却忽略了根本,反而将启动界面用Sleep等延时方法,强制在主屏上显示一段时间,以增加“存在感”,这显然是违背启动界面设计初衷的。
那么,这个启动界面,我们应该在什么时候创建和显示呢?这就需要我们从设计的初衷开始,讨论下启动界面的生存周期问题。
首先,启动界面应在程序一启动时就创建。在 Delphi 或 C++ Builder 程序中,它应该在TApplication对象创建之后,由于我们一般不推荐修改项目的入口源码,所以我个人推荐是在主窗体的构造函数或OnCreate事件中创建启动画面。
其次,启动界面在主窗口初始化完成后,主窗体显示之前关闭。而不要故意加入Sleep一类的函数来延长用户的等待时间,除非你将启动界面当成是电视广告,否则没必要耽误用户宝贵的时间。
还有一个问题,如果程序很快就初始化完成,启动画面会一闪而过,怎么办?实际上这本身不是问题,毕竟没人不乐意程序快点进入,唯一需要解决的问题就是是否需要显示画面的问题。这里我个人一般推荐使用定时器来延迟显示启动画面,如果启动进程已经超过 50% 初始化完成,而只用了小于 500ms 的时间,那我个人认为完全没必要显示一个启动界面来显示自己的存在。
其实,这里牵涉到另一个问题,就是你的程序是否需要加入一个启动界面。如果你的程序的启动没有多少需要初始化的东西,那个人感觉就完全没有必要。启动界面的设计初衷是为了增强用户体验,避免用户在等待程序启动过程中发生错误的认知,如果你很快启动完成,何必加入没必要的东西。
我们接下来讨论下,启动界面都要做些什么?
(1)、一幅制作精美的图片,给用户美好的印象。甚至可以在图片上加上一些操作提示一类实用的技巧啥的;
(2)、应用程序初始化进度提示,以便告诉用户我还活着,不要着急;
至于其它的东西,那不属于启动界面应该操心的事,就交给别的地方去做吧。
启动界面一般也是一个普通的窗体,不同的是我们一般会将其设计为无边的窗口,或者标新立异一点设计成不规则形状的窗口(设置一个背景图片,然后设置TransparentColor就可以实现),然后注意在显示时是用Show而不是ShowModal来显示,初学者容易卡在这一个小地方,提示一下。具体的实现此处就不粘贴了,因为~~~~实在没啥可说的了。