庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>Delphi语言>实例分析>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

窗体的建立时机及缓冲的思想在ini文件中的应用

 作者:本站收集   日期:2005-3-14
字号选择〖 〗/ 双击滚屏 单击停止   
1 窗体建立的时机问题
由于窗体属于比较占系统内存的对象,所以在应用程序中何时建立窗体就变得比较重

要。
窗体的建立时机有一下几种:
(1)、在主窗体建立时自动建立窗体
(2)、在需要的时候才建立窗体,然后窗体关闭时也不销毁窗体
(3)、在需要的时候才建立窗体、然后窗体关闭时销毁窗体
第一种方式是delphi默认的实现方式,但是除了主窗体之外的其他窗体如果不是在每

次使用应用程序的时候都一定用到,那么就不要让窗体自动建立。不要让窗体自动建

立的方法是:点击主菜单中“project”-“option”,然后在弹出的对话框中将你不

想自动建立的窗体名从Auo-create forms中拖到Available forms中去。
第二种方式适用于每次使用应用程序的时候不一定都用到,但是一旦用到那么以后会

用到多次,例如数据库程序中的“数据查找”对话框、网页制作软件中的“设定文字

超连接”对话框。
示例代码:
在主窗体的 private 部分加入
FHouseTypeFrm: THouseTypeDlg;//THouseTypeDlg是自定义的一个窗体类
在您激活窗体的地方加入
if not Assigned(FHouseTypeFrm) then
FHouseTypeFrm := THouseTypeDlg.Create(self);
FHouseTypeFrm.ShowModal;

第三种方式适用于一般情况下不会用到,即使用到也不会在程序中多次调用。例如“

关于”对话框,“系统设置”对话框等。
示例代码:

var
FUserManageFrm: TUserManageForm;//TUserManageForm是自定义的一个窗体类
begin
FUserManageFrm := TUserManageForm.Create(nil);
FUserManageFrm.SetCurrentUserName(FUsername);
FUserManageFrm.ShowModal;
FreeAndNil(FUserManageFrm);
end;

2 缓冲的思想在ini文件中的应用

下列代码是我们在用ini文件读写系统配置常用的方法:
procedure TConfigMgr.SetDBBackupFileName(AValue: string);
begin
FIniFile.WriteString('DBBackup', 'DBFileName', AValue);
end;

function TConfigMgr.GetDBBackupFileName: string;
begin
result := FIniFile.ReadString('DBBackup', 'DBFileName',
FRootPath + 'DBBackup.mdf');
end;

因为读写磁盘文件是比较占用系统资源的操作,所以能够不读写硬盘就不读写,可以

学习操作系统中缓冲区的概念来改进配置文件的读写。如果在读取系统配置之前已经

读取过了那么只要返回上次读取的值就可以了,不用再去读硬盘;在向配置文件前将

配置的值与上次的值比较,如果相同就没有必要写配置文件了。

type
TConfigMgr = class
private
FIniFileName: string;
FIniFile: TIniFile;
FRootPath: string;
FFormerDBBackupFileName: string;
procedure SetDBBackupFileName(AValue: string);
function GetDBBackupFileName: string;
public
……
published
property DBBackupFileName: string read GetDBBackupFileName write

SetDBBackupFileName;
end;

implementation
……
procedure TConfigMgr.SetDBBackupFileName(AValue: string);
begin
if FFormerDBBackupFileName <> AValue then
begin
FIniFile.WriteString('DBBackup', 'DBFileName', AValue);
FFormerDBBackupFileName := AValue;
end;
end;

function TConfigMgr.GetDBBackupFileName: string;
begin
if FFormerDBBackupFileName <> '' then
result := FFormerDBBackupFileName
else
result := FIniFile.ReadString('DBBackup', 'DBFileName',
FRootPath + 'DBBackup.mdf');
end;

上一篇:一个四舍五入的函数    下一篇:用Delphi实现文件下载的几种方法  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-14
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿