PFC是基於PowerBuilder原生對象/函數的進一步抽象,抽象出了程式開發的準系統,並提供了一套規則用於程式開發。
本篇主要是學習這套規則的基本使用方法。
一、設定應用程式管理器
1、首先設定擴充層的n_cst_appmanager,或建立一個基於n_cst_appmanager的對象。此對象貫穿整個應用程式的始終。以 gnv_app.event pfc_open(commandline)為起點,以gnv_app.Event pfc_close()為終點,並提供pfc_systemerror()、pfc_idle()、pfc_ConnectionBegin()、 pfc_ConnectionEnd()事件對應application的各事件。
2、在n_cst_appmanger的pfc_open()事件中設定要啟用的應用服務,包括:
of_SetAppPreference —— 應用選項服務
of_SetDWCache —— 資料視窗快取服務
of_SetError —— 錯誤服務
of_SetMRU —— 最近使用過的物件服務
of_SetTrRegistration —— 事務註冊服務
of_SetSecurity —— 安全性服務
of_SetDebug —— 調試服務
3、可在pfc_PreAbout、pfc_PreLogonDlg、pfc_PreSplash事件中添加代碼以定製關於、登陸、閃屏視窗。
二、建立應用程式
PFC提供了兩種應用程式模式,即MDI和SDI。
1、建立MDI應用程式
w_frame作為應用程式的架構的祖先視窗,w_sheet作為頁程式的祖先視窗。
of_SetStatusBar啟用狀態條服務
of_SetSheetManager啟用頁管理服務
2、建立SDI應用程式
w_main作為應用程式主視窗的祖先視窗。
三、使用PFC函數進行程式設計
1、函數命名規則:of_Get,of_Set,of_Is,of_Register,of_UnRegister
2、使用函數前需要確定其所屬對象已經被建立。
3、函數過載。通過兩種方法實現:多重文法及選擇性參數
四、使用PFC事件進行程式設計
PFC充分體現了事件響應驅動的設計思路。
1、PFC通過廣泛的預編碼事件,可在其中定製或擴充相應事件的功能。
例如:pfc_PreAbout,pfc_PreClose,pfc_PreLogonDlg,pfc_PreOpen, pfc_PrePageSetupDlg,pfc_PrePrintDlg,pfc_PreRestoreRow,pfc_PreRMBMenu, pfc_PreSplash,pfc_PreToolbar,pfc_PreUpdate
2、PFC提供空使用者事件,可以添加代碼實現相應的功能。
很多空使用者物件部分是通過訊息路由被功能表項目觸發的,其他的則由應用程式中的代碼觸發。
五、使用屬性對象
PFC提供了一些只有屬性的使用者物件,具有以下特點:
1、包含公用的執行個體變數
2、是自動執行個體化的
3、對象名稱以attrib結尾
4、常用於向PFC的預先處理過程傳遞資訊
5、是可擴充的
6、PFC使用它們代替了結構
六、使用PFC常量
使用常量增加程式碼可讀性。PFC約定常量的所有字母都要大寫
七、訊息路由器
PFC使用訊息路由器處理菜單與視窗間的通訊。其根據一種定製的搜尋演算法決定接收訊息的合適對象。
1、菜單指令碼僅需要知道要調用的使用者事件,而不必知道當前視窗或相關空間的名稱。
2、視窗不必維護那些僅僅調用資料視窗事件的使用者事件。
3、訊息路由器傳遞的實際上是一個字串,包含要觸發的使用者事件的名稱。
4、訊息路由器內建了錯誤訊息
5、當使用者選中一個功能表項目時,該功能表項目的Clicked事件指令碼調用菜單的of_SendMessage函數,傳遞要調用的使用者事件名稱。 of_SendMessage函數調用n_cst_menu的of_SendMessage函數,該函數調用視窗的pfc_MessageRouter事件,該事件再調用指定的使用者事件。
八、PFC的交易管理
PFC使用n_tr代替標準的事務對象。提供了一組函數,用來執行資料庫的串連、斷開、提交和復原,以實現事務的管理。