您的位置:首页 > 编程语言 > Delphi

Delphi - 手把手教你基于D7+Access常用管理系统架构的设计与实现 (更新中)

2019-12-11 16:25 1371 查看

前言

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

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

 

procedure TMainFrm.FormShow(Sender: TObject);
begin
// 动态连接Access数据库
try
Screen.Cursor := crSQLWait;
ChDir(ExtractFilePath(Application.ExeName));
ChDir('..');
try //动态加载数据库
conMain.Connected := False;
conMain.ConnectionString := 'Provider=Microsoft.Jet.OlEDB.4.0;Data Source=' + GetCurrentDir + '\DataX\DataX.mdb' + ';User ID=admin;Password=;Persist security Info=False';
conMain.Connected := True;
conMain.LoginPrompt := False;
statusPaneAccess.Caption := '数据库已连接';//状态栏控件statusPane
Screen.Cursor := crDefault;
except
Screen.Cursor := crDefault;
statusPaneAccess.Caption := '数据库未连接';
MessageDlg('数据库连接失败,请确认!', mtError, [mbOK], 0);
end;
Screen.Cursor := crDefault;
except
statusPaneAccess.Caption := '数据库未连接';
MessageDlg('数据库连接失败,请确认!', mtError, [mbOK], 0);
end;
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/
  本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: