设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> delphi >> 窗体的建立时机及缓冲的思想在ini文件中的应用.txt_Delphi教程_src119.com

窗体的建立时机及缓冲的思想在ini文件中的应用.txt_Delphi教程_src119.com -

1 窗体建立的时机问题
由于窗体属于比较占系统内存的对象,所以在应用程序中何时建立窗体就变得比较重

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

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

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

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

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

超连接”对话框。
示例代码:
在主窗体的  private 部分加入
  FHouseTypeFrm: THouseTypeDlg;//THouseTypeDlg是自定义的一个窗体类
在您激活窗体的地方加入
  if not A igned(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.SetD ackupFileName(AValue: string);
begin
  FIniFile.WriteString('D ackup', 'DBFileName', AValue);
end;

function TConfigMgr.GetD ackupFileName: string;
begin
  result := FIniFile.ReadString('D ackup', 'DBFileName',
  FRootPath + 'D ackup.mdf');
end;

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

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

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

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

type
  TConfigMgr = cla 
  private
  FIniFileName: string;
  FIniFile: TIniFile;
  FRootPath: string;
  FFormerD ackupFileName: string;
  procedure SetD ackupFileName(AValue: string);
  function GetD ackupFileName: string;
  public
  ……
  published
  property D ackupFileName: string read GetD ackupFileName write

SetD ackupFileName;
  end;

implementation
……
procedure TConfigMgr.SetD ackupFileName(AValue: string);
begin
  if FFormerD ackupFileName < gt; AValue then
  begin
  FIniFile.WriteString('D ackup', 'DBFileName', AValue);
  FFormerD ackupFileName := AValue;
  end;
end;

function TConfigMgr.GetD ackupFileName: string;
begin
  if FFormerD ackupFileName < gt; '' then
  result := FFormerD ackupFileName
  else
  result := FIniFile.ReadString('D ackup', 'DBFileName',
  FRootPath + 'D ackup.mdf');
end;



 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· 使用MIDAS访问远程Access数据库_Delphi教程_
· Delphi2005学习笔记4——再谈NameSpace和D
· 多层数据库开发十二:使用数据控件_Delphi教程_src1
· 在Delphi中自己建立交叉表_Delphi教程_src11
· 用Delphi设计代理服务器_Delphi教程_src119
· Delphi开发单机瘦数据库程序要点_Delphi教程_sr
· 拖拉打开文件_Delphi教程_src119.com
· 搜索字符串在流中的位置_Delphi教程_src119.co
· 用Delphi编写Win2000服务程序_Delphi教程_
· 創建一個簡單的"專家"_Delphi教程

热点文章

更多