全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1053
推到 Plurk!
推到 Facebook!

EEP的Baseform設計

 
t0922610976
一般會員


發表:11
回覆:16
積分:15
註冊:2003-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-14 13:42:58 IP:61.220.xxx.xxx 未訂閱
EEP的Baseform Baseform的架構,在最初始的狀態為TAncestorForm2,屬於最基底的表單。在TAncestorForm2的基礎設計中,大致提供屬於「資料集的處理函式」、「按鈕處理函數」、「按鍵處理函數」、「使用者Utilities函數」以及「系統實作」等五大類,合計有五十支的主要處理函數,相關支援處理的函式也高達上百支。 TAFM2BaseForm1繼承自TAncestorForm2,專司單檔資料的處理;TAFM2BaseForm2繼承自TAncestorForm2,專司多檔資料的處理;TAFM2BaseForm3繼承自TAncestorForm2,專司查詢及列印資料的處理。運用Baseform的繼承好處在於簡化程式的設計以及方便維護,這也是非「OOP」開發工具所不及的地方。EEP開發平台,利用Delphi所提供的「OOP」物件導向程式設計,開發出對於處理「資料導向」的基礎表單,可減少錯誤的發生,以臻於快速完美的開發。 【Dataset Event處理函數】 1. Procedure BeforeOpen(DataSet: TDataSet); 處理資料表在開啟前的函數。 2. Procedure AfterOpen(DataSet: TDataSet); 處理資料表在開啟後的函數。 3. Procedure BeforeClose(DataSet: TDataSet); 處理資料表在關閉前的函數。 4. Procedure AfterClose(DataSet: TDataSet); 處理資料表在開啟後的函數。 5. Procedure BeforeInsert(DataSet: TDataSet); 處理資料表在新增前的函數。 6. Procedure AfterInsert(DataSet: TDataSet); 處理資料表在新增後的函數。 7. Procedure BeforeDelete(DataSet: TDataSet); 處理資料表在刪除前的函數。 8. Procedure AfterDelete(DataSet: TDataSet); 處理資料表在刪除後的函數。 9. procedure BeforeEdit(DataSet: TDataSet); 處理資料表在修改前的函數。 10. procedure AfterEdit(DataSet: TDataSet); 處理資料表在修改後的函數。 11. procedure BeforePost(DataSet: TDataSet); 處理資料表在存檔前的函數。 12. procedure AfterPost(DataSet: TDataSet); 處理資料表在存檔後的函數。 13. procedure BeforeCancel(DataSet: TDataSet); 處理資料表在取消前的函數。 14. procedure AfterCancel(DataSet: TDataSet); 處理資料表在取消後的函數。 15. procedure BeforeApplyUpdates(Sender: TObject; var OwnerData: OleVariant); 處理資料表在寫入資料庫前的函數。 16. procedure AfterApplyUpdates(Sender: TObject; var OwnerData: OleVariant); 處理資料表在寫入資料庫後的函數。 【按鈕處理函數】 1. procedure FirstButtonClick(Sender: TObject); 將資料游標移到第一筆的函數。 2. procedure PriorButtonClick(Sender: TObject); 將資料游標往前移一筆的函數。 3. procedure NextButtonClick(Sender: TObject); 將資料游標往後移一筆的函數。 4. procedure LastButtonClick(Sender: TObject); 將資料游標移到最末筆的函數。 5. procedure InsertButtonClick(Sender: TObject); 將資料表插入一筆空白記錄的函數。 6. procedure ModifyButtonClick(Sender: TObject); 將資料表設為修改的函數。 7. procedure DeleteButtonClick(Sender: TObject); 將資料表設為刪除的函數。 在刪除前會詢問使用者是否刪除。 8. procedure SaveButtonClick(Sender: TObject); 將資料表存檔的函數。 在存檔前會先判斷資料是否有異動。 9. procedure CancelButtonClick(Sender: TObject); 將資料表由新增或修改模式中取消的函數。 10. procedure QueryButtonClick(Sender: TObject); 查詢功能函數。 11. procedure PrintButtonClick(Sender: TObject); 列印功能函數。 12. procedure PreviewButtonClick(Sender: TObject); 預覽功能函數。 【按鍵處理函數】 1. procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 處理Edit的鍵盤控制,以Enter取代tab的函數。 2. procedure DBGridKeyDown(Sender:TObject;var Key: Word; Shift: TShiftState); 處理DBGrid的鍵盤控制,以Enter取代tab的函數。 3. procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); 處理Form的鍵盤控制,以Enter取代tab的函數。 4. procedure DBCtrlGridEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 處理DBCtrlGrid的鍵盤控制,以Enter取代tab的函數。 【使用者Utilities函數】 1. function FindMasterClientDataset(Sender: TObject): TInfoClientDataset; 找到主要的ClientDataSet函數。 2. function GetMasterClientDataset(Sender: TObject): TInfoClientDataset; 取得主要的ClientDataSet,如果找不到則引發錯誤的函數。 3. function FindMasterBLPanel(Sender: TObject): TButtonLayoutPanel2; 找到主要的ButtonLayoutPanel函數。 4. function GetMasterBLPanel(Sender: TObject): TButtonLayoutPanel2; 取得主要的ButtonLayoutPanel函數,如果找不到則引發錯誤的函數。 5. function GetNextEdit(aEdit: TWinControl; bForward: boolean; bIsTab: boolean): TCustomEdit; 取得下一個Edit的函數。 6. function FindNextControl(ParentControl,CurControl: TWinControl;GoForward, CheckTabStop, CheckParent: Boolean;ControlClass: TWinControlClass=nil): TWinControl; 取得下一個Control的函數。 【系統實作】 1. procedure DisableControls; virtual; 控制元件不顯示在畫面上的函數。 2. procedure DisableField(AInfoLabel: TInfoLabel);virtual; 控制InfoLabel所對應欄位的TColmun物件為隱藏的函數。 3. procedure DisableFIeld1(AField:TField); 控制TField所對應的TInfoLabel 、TInfoDBEdit 、InfoDBGrid.Columns物件為隱藏的函數。 透過上述的詳細說明來看,在撰寫一般常用的資料庫應用程式而言,舉凡資料的處理-新增、修改、刪除、查詢,資料的移動-上、下、首、末筆,鍵盤熱鍵的配置,元件使用及資料欄位權限的控制,這是屬於例行性的工作,皆可由Baseform的基底程式來處理,這樣子程式人員在開發時,就可免去重覆性的工作,而將所擅長的程式撰寫放於較艱深的部份。
系統時間:2024-05-15 9:36:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!