Delphi - 手把手教你基於D7+Access常用管理系統架構的設計與實現 (更新中)
前言
從事軟體開發工作好多年了,學的越深入越覺得自己無知,所以還是要對知識保持敬畏之心,活到老,學到老!
健身和程式碼一樣都不能少,身體是革命的本錢,特別是我們這種高危工種,所以小夥伴們運動起來!有沒有健身擼鐵,體脂現在是多少呀?明年(2019/03/22)徐州的馬拉松有沒有報名呀!?
扯的有點遠了,接下來我將抽三天時間手把手教你基於Delphi7+Access,同時搭配第三方控制元件RC、AlphaControl(第三方控制元件主要用於美化介面),完成通用管理系統架構的設計。騷年,想想是不是還有點小激動?
涉及知識點
- Access資料庫建立與關鍵表結構設計
- Delphi ADOConnection動態連線Access資料庫
- Delphi前臺fsMDIForm和fsMDIChild窗體設計
- dxBarManager方式通用選單架構設計
- 主介面常見狀態列涉及與動態更新(軟體版本資訊、時間狀態資訊、登入組資訊、滾動資訊、當前時間...)
- Delphi通用登入介面設計及主介面載入互動
- MD5方式驗證和儲存密碼
- 動態窗體選單列表(開啟窗體事件、銷燬窗體事件)
- RzCheckTree方式設計常見使用者許可權
- imageList圖表庫
- 第三方控制元件:RC、AlphaControl面板控制元件
看到這麼多知識點是不是感覺有點暈啊!
沒關係,接下來我們一步一步實現!注意我們的口號,保持對知識的敬畏之心!
整體設計方案
這個是我們系統實現部分的一個設計方案,因為系統是通用的嘛,所以這裡我就叫它Common Management System了,下面簡稱CMS。
這裡暫不做DFEMA和PFEMA的深層次分析,有BUG的系統才是好系統,不然還要開發和維護人員做什麼?(客戶小姐姐:呸,渣男!)
專案實現
騷年,扶好了,我要教你開車了, 啊呸,我要教你開發了。
Access資料庫建立與關鍵表結構設計
建立一個Access檔案,命名為DataX.mdb,再建立兩張表,分別命名為sysUser和sysUserAuthority,其中ID欄位自動生成,VDate欄位為日期格式,其餘欄位均為長文字根式,並新增如下資料,如下圖。
Delphi ADOConnection動態連線Access資料庫
啟動Delphi7,新建一個專案,分別命名為:工程檔案命名為:CommonManagementSystem.dpr,單元檔案命名為:uMain.pas,主窗體命名為:MainFrm。
然後儲存,注意檔案的儲存位置,因為接下來連線Access資料庫時需要根據相對路徑來,參考下圖。
然後,在主窗體上放一個ADOConnection控制元件,命名為conMain。接下來在工程onShow事件中寫如下程式碼:
1 procedure TMainFrm.FormShow(Sender: TObject); 2 begin 3 // 動態連線Access資料庫 4 try 5 Screen.Cursor := crSQLWait; 6 ChDir(ExtractFilePath(Application.ExeName)); 7 ChDir('..'); 8 try //動態載入資料庫 9 conMain.Connected := False; 10 conMain.ConnectionString := 'Provider=Microsoft.Jet.OlEDB.4.0;Data Source=' + GetCurrentDir + '\DataX\DataX.mdb' + ';User ID=admin;Password=;Persist security Info=False'; 11 conMain.Connected := True; 12 conMain.LoginPrompt := False; 13 statusPaneAccess.Caption := '資料庫已連線';//狀態列控制元件statusPane 14 Screen.Cursor := crDefault; 15 except 16 Screen.Cursor := crDefault; 17 statusPaneAccess.Caption := '資料庫未連線'; 18 MessageDlg('資料庫連線失敗,請確認!', mtError, [mbOK], 0); 19 end; 20 Screen.Cursor := crDefault; 21 except 22 statusPaneAccess.Caption := '資料庫未連線'; 23 MessageDlg('資料庫連線失敗,請確認!', mtError, [mbOK], 0); 24 end; 25 end;
OK,到這裡工程動態連線Access資料庫的功能已經實現了。
騷年,是不是感覺很簡單,是的,你沒有看錯,跟著我一步步做,就是so easy!(