• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • 窗体的建立时机及缓冲的思想在ini文件中的应用

      1 窗体建立的时机问题

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

      窗体的建立时机有一下几种:

      (1)、在主窗体建立时自动建立窗体

      (2)、在需要的时候才建立窗体,然后窗体关闭时也不销毁窗体

      (3)、在需要的时候才建立窗体、然后窗体关闭时销毁窗体

      第一种方式是delphi默认的实现方式,但是除了主窗体之外的其他窗体如果不是在每次使用应用程序的时候都一定用到,那么就不要让窗体自动建立。不要让窗体自动建立的方法是:点击主菜单中“project”-“option”,然后在弹出的对话框中将你不想自动建立的窗体名从Auo-create forms中拖到Available forms中去。

      第二种方式适用于每次使用应用程序的时候不一定都用到,但是一旦用到那么以后会用到多次,

      在Delphi中开发使用多显示器的应用程序
      基于Delphi的屏幕抓图技术的实现,Delphi中数据的自动录入,Delphi编程:用流来读取TXT文件中的数据,使用Delphi创建IIS虚拟目录的方法,Delphi初学者应小心的六大陷阱,Delphi“判断服务器路径”与“清空日志文件”,利用VFW在Delphi中开发视频捕获程序,Delphi实现网页表单数据的自动提交,Delphi编程使用HOOK监视Windows,Delphi编程禁止用户关闭操作系统,Delphi中利用钩子实现QQ聊天窗口的修改,一个判断定文件是否为文本文件的函数,把Flash文件转换为Exe文件,用Delphi实现文件下载的几种方法,Delphi中保存图像列表,基于Delphi的接口编程入门,在Delphi中使用CreateOleObject方法对WORD文件进行操作,利用Delphi开发旅游景点微机售票系统,Delphi中用ICMP探测远程主机状态,Delphi7对XML的支持分析
      Delphi

      例如数据库程序中的“数据查找”对话框、网页制作软件中的“设定文字超连接”对话框。

      示例代码:

      在主窗体的  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中开发使用多显示器的应用程序
      基于Delphi的屏幕抓图技术的实现,Delphi中数据的自动录入,Delphi编程:用流来读取TXT文件中的数据,使用Delphi创建IIS虚拟目录的方法,Delphi初学者应小心的六大陷阱,Delphi“判断服务器路径”与“清空日志文件”,利用VFW在Delphi中开发视频捕获程序,Delphi实现网页表单数据的自动提交,Delphi编程使用HOOK监视Windows,Delphi编程禁止用户关闭操作系统,Delphi中利用钩子实现QQ聊天窗口的修改,一个判断定文件是否为文本文件的函数,把Flash文件转换为Exe文件,用Delphi实现文件下载的几种方法,Delphi中保存图像列表,基于Delphi的接口编程入门,在Delphi中使用CreateOleObject方法对WORD文件进行操作,利用Delphi开发旅游景点微机售票系统,Delphi中用ICMP探测远程主机状态,Delphi7对XML的支持分析
      Delphi

    • 0
    • 0
    • 0
    • 64
    • 单栏布局 侧栏位置: