首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Delphi TApplication 類別完整應用指南:十大實用技巧

     編輯:更多程式設計知識

TApplication 是每個 Delphi VCL 專案的全域單例物件,封裝應用程式層級的行為與資訊。善用其屬性、方法與事件,能實作許多專業級功能。本文精選十大常見實用場景,附完整程式碼範例。

1. 偵測應用程式是否為前景作用中

if not Application.Active then
  ShowMessage('目前視窗非作用中,未獲焦點');

Active 為 Boolean,True 表示擁有輸入焦點。

2. 取得執行檔完整路徑與檔名

ShowMessage('執行檔路徑: ' + Application.ExeName);
// 範例輸出: C:\MyApp\Bin\MyProgram.exe

3. 區分「視窗標題」與「工作列最小化標題」

Form1.Caption := '主視窗標題';      // 視窗標題列顯示
Application.Title := '我的應用程式'; // 任務列/最小化按鈕顯示

兩者獨立設定,符合 Windows UI 規範。

4. 取得主視窗參考

var
  MainForm: TForm;
begin
  MainForm := Application.MainForm; // 回傳 TForm 實例
  if Assigned(MainForm) then
    MainForm.WindowState := wsMaximized;
end;

5. 顯示支援中文按鈕的訊息方塊

var
  Res: Integer;
begin
  Res := Application.MessageBox('需要存檔嗎?', '提示訊息', MB_OKCANCEL or MB_ICONQUESTION);
  case Res of
    IDOK:       ; // 使用者按確定
    IDCANCEL:   ; // 使用者按取消
  end;
end;

常用旗標組合:MB_OK/MB_OKCANCEL/MB_YESNO/MB_RETRYCANCEL、MB_ICONINFORMATION/MB_ICONWARNING/MB_ICONERROR/MB_ICONQUESTION、MB_DEFBUTTON1~MB_DEFBUTTON4。

返回值常數數值對應按鈕
IDOK1確定
IDCANCEL2取消
IDABORT3中止
IDRETRY4重試
IDIGNORE5忽略
IDYES6是
IDNO7否

6. 程式化控制視窗最小化/還原

Application.Minimize; // 等同主視窗最小化
Application.Restore;  // 從最小化還原

適用於托盤圖示雙擊還原、啟動參數檢查單一實例還原等情境。

7. 整合線上說明系統

Application.HelpFile := 'MyHelp.chm'; // 或 .hlp
Application.HelpJump('GettingStarted'); // 跳轉主題 ID

HelpJump 參數為說明檔內部主題識別字串。

8. 執行期動態建立表單

var
  Form3: TForm3;
begin
  Application.CreateForm(TForm3, Form3); // 建立並註冊至 Application
  Form3.ShowModal;
  // 結束時自動釋放(若在專案選項啟用自動建立,則無需手動 CreateForm)
end;

動態建立可減少啟動記憶體佔用,按需載入大型表單。

9. 正確終止應用程式

Application.Terminate; // 發送 WM_QUIT,觸發正常關閉流程

優於 Close 或 Halt:會依序觸發 OnCloseQuery、OnClose、OnDestroy,確保資源釋放。

10. 緊急終結(掛死時的最後手段)

Application.Terminate; // 正常終止
// 若主執行緒已掛死,Terminate 無效,需外部程式呼叫 TerminateProcess
注意:Application.Destroy 非公開方法,切勿直接呼叫。Terminate 是唯一正規關閉入口。

進階:Application 事件處理

// 專案原始碼 .dpr 或主表單 OnCreate 中
Application.OnIdle := AppIdleHandler;      // 閒置時處理背景工作
Application.OnMessage := AppMessageHandler; // 全域訊息攔截
Application.OnException := AppExceptionHandler; // 未捕捉例外統一處理

結語

TApplication 是 Delphi 應用程式的中樞神經,掌握其十大核心用法,能解決焦點偵測、路徑取得、標題管理、訊息方塊國際化、視窗狀態控制、說明整合、動態表單、優雅關閉等 90% 以上的應用層需求。建議將常用封裝為輔助單元,提升團隊開發一致性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved