Delphi - 手把手教你基于D7+Access常用管理系统…

2019-12-11 16:00:48来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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!(??,不要忘记我们的口号)其实复杂的功能都是通过简单的功能组合起来的!所以,加油吧!骚年!


Delphi前台fsMDIForm和fsMDIChild窗体设计

  OK,回到主界面,在对象控制面板中选中MainFrm,单击F11,在属性控制面板中设定WindowState属性设置为wsMaximized,FormStyle属性设置为fsMDIForm,后续再建立的From,FormStyle属性都设置为fsMDIChild。


dxBarManager方式通用菜单架构设计

  拖一个dxBarManager控件到主界面,命名为dxbarManagerMain,双击该控件打开Toolbars界面,New两个Toolbar分别为菜单和快捷工具条,如下图。

 

  • 在控件Commands界面新增Categories分别为主菜单系统设置窗口
  • 在主菜单下建立dxBarSubItem类型的菜单系统设置窗口
  • 在系统设置菜单下建立dxBarButton类型的菜单系统权限设置帮助
  • 在窗口菜单下建立dxBarButton类型的菜单窗口平铺窗口层叠窗口垂直,和dxBarListItem类型的菜单窗口列表

        注意:这里的菜单类型不能选错!!!

注意:这里的菜单类型不能选错!!!

注意:这里的菜单类型不能选错!!!

 

  OK,菜单设计好之后,我们选中dxbarManagerMain控件,单击F11,设置Style为bmsFlat。然后双击打开控件,选中Toolbars中菜单,单击F11,分别设置IsMainMenu、MultiLine和OneOnRow属性为True。如下图。

OK,接下来,拖动菜单完成菜单架构设计,快捷工具条暂时不用,后续我们再介绍,请看下图。

 


 主界面常见状态栏涉及与动态更新(软件版本信息、时间状态信息、登录组信息、滚动信息、当前时间...)

  鼠标点击主界面空白处,单击右键选择 Add a Status Bar,添加一个statusBar控件,命名为statusBarMain,然后选中statusBar,右键单击New一些控件,分别设置其名称、对齐方式、Caption等。


  最终效果,如下:

  OK,今天就到这里了,明天,我们继续!骚年,注意关注、收藏、推荐,不要迷了路!!!


Delphi通用登录界面设计及主界面载入交互

>>>

MD5方式验证和保存密码
>>>

动态窗体菜单列表(打开窗体事件、销毁窗体事件)
>>>

RzCheckTree方式设计常见用户权限
>>>

imageList图表库
>>>

第三方控件:RC、AlphaControl皮肤控件

>>>


 

任何疑问、建议、意见请留言或者私信我哦~~~~ 

  作者:Jeremy.Wu
  出处:https://www.cnblogs.com/jeremywucnblog/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


原文链接:https://www.cnblogs.com/jeremywucnblog/p/12022001.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi - Server Monitor开发并实现指定端口定时刷新、重启和邮

下一篇:Delphi 任务栏中不显示窗口