六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

窗體的創建時機及緩沖的思想在ini文件中的應用

[摘要]1 窗體建立的時機問題由于窗體屬于比較占系統內存的對象,所以在應用程序中何時建立窗體就變得比較重要。窗體的建立時機有一下幾種:(1)、在主窗體建立時自動建立窗體(2)、在需要的時候才建立窗體,然后窗體關閉時也不銷毀窗體(3)、在需要的時候才建立窗體、然后窗體關閉時銷毀窗體第一種方式是delphi默...
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;


主站蜘蛛池模板: 天天爱综合 | 四虎国产欧美成人影院 | 日韩成人免费在线视频 | 婷婷丁香五月中文字幕 | 欧美一区二区aa大片 | 色婷婷中文网 | 亚洲成a人片毛片在线 | 手机看片福利日韩 | 手机在线毛片免费播放 | 自拍成人 | 日本高清视频免费观看 | 羞羞色院91网站 | 日韩欧美亚洲每日更新网 | 最新天堂网 | 四虎影视免费 | 四虎永久在线免费观看 | 日日干夜夜爽 | 羞羞漫画弹窗 | 亚洲国产高清在线精品一区 | 日日摸夜夜摸狠狠摸日日碰夜夜做 | 四虎影院永久 | 在线观看黄日本高清视频 | 桃色视频网| 日韩一级淫片 | 日本欧洲亚洲一区在线观看 | 日本三区四区免费高清不卡 | 在线免费观看亚洲 | 日本午夜网站 | 日韩成人小视频 | 日本高清免费中文在线看 | 亚洲精品九色在线网站 | 日日碰日日摸日日澡视频播放 | 亚洲天堂高清 | 日韩视频专区 | 日韩精品一区二区三区免费视频 | 亚洲第成色999久久网站 | 欧美天天在线 | 青草国产精品久久久久久 | 日韩欧美三区 | 欧美一级α片 | 亚洲天堂视频在线免费观看 |