前言

  从事软件开发工作好多年了,学的越深入越觉得自己无知,所以还是要对知识保持敬畏之心,活到老,学到老!

健身和代码一样都不能少,身体是革命的本钱,特别是我们这种高危工种,所以小伙伴们运动起来!有没有健身撸铁,体脂现在是多少呀?明年(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!(

02-11 06:50