软件启动画面中启动状态的显示(2)
2008-04-09 04:21:45来源:互联网 阅读 ()
try
Instance.Create();
FManagerList.Add(@AManager);
Instance.OnAppLoading:=OnAppLoading;
Instance.Initialize();
Instance.OnAppLoading:=nil;
except
TCustomManager(AManager):= nil;
raise;
end;
end;
它用来启动一个Manager,并将其加入TAppLoader的一个FManagerList列表中,在TAppLoader析构时,它会自动按照这个列表,来释放所有的Manager。
在Manager的Initialize()结束后,比较保险的是将它的OnAppLoading重新设为空,这样如果在程序运行过程中,由其它功能来调用Manager的Initialize()时,就不会再回调到显示启动文字的部分了。
最后,看一下DoLoad()函数:
function TAppLoader.DoLoad: Boolean;
begin
Result:=false;
Application.Title:=''''Ultra Album'''';
FSplashForm:=TfrmSplash.Create(nil);
try
try
FSplashForm.Show;
OnAppLoading(nil,''''Starting...'''');
Sleep(100);
InitializeManager(GOptionManager,TOptionManager);
InitializeManager(GRdItemClassManager,TRdItemClassManager);
InitializeManager(GImageManager,TFileImageManager);
InitializeManager(GThemeManager,TFileThemeManager2);
InitializeManager(GMaskManager,TFileMaskManager);
OnAppLoading(nil,''''Ending...'''',0);
Application.CreateForm(TfrmMain, frmMain);
if ParamCount>=1 then begin //deal with the filename in the parameter
FSplashForm.Hide;
frmMain.Show;
frmMain.DoOpenFile(ParamStr(1));
end;
Result:=true;
except
on E:Exception do begin
MessageBox(Application.Handle,PChar(E.ClassName '''':'''' #13 #10 E.Message),
PChar(Application.Title),MB_ICONERROR);
end;
end;
finally
FreeAndNil(FSplashForm);
end;
end;
这个函数是我的一个软件中的代码,它首先构造并显示一个启动画面,然后使用InitializeManager()分别初始化了5个Manager类,其中的GOptionManager,GRdItemClassManager。。。都是全局对象,在今后需要访问时,都使用这个全局对象来进行访问,这里我没有使用Singleton模式,因为我觉得这几个对象都必须在程序主窗体创建前完全初始化,而Singleton的设计思路是在对象第一次使用时才创建它的实例,在我的这个使用中不需要这样的功能。当然,你也可以自己改造这些Manager类成为Singleton的,改动代码不会很多。
最后,再将程序的主界面创建出来,可以看到这个主界面的创建代码就是我们从dpr文件中删除的那行。
好了,介绍到这里,最后再看一下这个类在实际软件中的使用画面吧:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
