下载此文档

Delphi 7组件与分布式应用开发.pdf


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/ 12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 12 下载此文档
文档列表 文档介绍
踏雪无痕
Delphi 7组件与分布式应用开发
分类: Delphi 2011-09-28 15:09 300人阅读评论(0) 收藏举报
Delphi之面向对象的界面复用技术
作者陈省
代码复用和界面复用
 
面向对象的编程思想强调代码的可复用。而Delphi的精髓实际上就是Object Pascal语言,Object Pascal语言是一
个非常强大的面向对象的编程语言,可以通过对象的继承实现代码复用。同时Delphi作为一个强大的RAD开发工具,
不仅可以实现代码复用,还可以实现可视化界面的复用。
 
基于复制粘贴的界面重用
 
Delphi最早提出的复用不是面向对象的,而是类似于代码库的重用,比如在执行窗体右键菜单的Add To Repository
命令,可以将一些常用的窗体如关于对话框添加到Delphi的代码库中,以后可以在新建窗体时,直接创建一个完全
的一样的对话框。其实这种复用无法是帮助我们简化了复制粘贴的过程而已,会带来很多后续维护的问题,过多的
使用这种方式编程,会导致大量重复的代码,大量重复的错误。而现代的编程思想如XP,则认为不允许复制粘贴代
码,一旦遇到这种情况,就要进行重构。
 
可视化窗体继承(Visual Form Inheritance)
 
可视化窗体继承,以下我们简称其为VFI是Delphi2开始出现的一种软件复用技术。允许我们创建一个基类窗体,并
从这个基类窗体派生新的窗体。它在标准的以代码重用为目的类继承的基础上实现了对可视化界面元素的重用。让
我们做个试验,假设我们现在编写一组系统配置管理界面,为了统计界面样式,规定所有的配置管理界面都应该有
一个容器面板,一个确定和一个取消按钮,由于这样的界面非常多,为了界面的统一,我们就来创建这样一个基类
界面,首先新建一个项目起名VFI,然后使用 File | New Form菜单命令新建一个界面,起名为TBaseOptionDlg,界
面示意图如下:

 
然后下面创建一个派生类窗体,用来配置数据库连接的参数,选择 File | New …菜单,调出New Items 对话框
中,切换到当前的项目VFI下,选中刚才创建的基类BaseOptionDlg,注意在界面的下边inherit的单选框处于选中的
状态。点击确定,就会创建一个新的派生配置管理界面了。
1
可以看到我们的派生类自动就继承了父窗体所有的按钮和面板等界面元素。下面,在主窗体上添加一个数据库连接
参数菜单,添加我们的DB参数配置界面,
(Sender: TObject);
var
AForm:TDBOptionDlg;
begin
AForm:=(Application);
try
;
finally
;
end;
end;
 
运行一下后,我突然想起来,一般配置管理界面都会有一个默认值的按钮,可以用来恢复默认配置参数的值,而刚
才设计界面时忽略了这个问题。打开基类窗体,在窗体上放置一个新的默认设置按钮,保存后。回过头来,可以发
现我们的数据库配置界面也神奇增加了一个新的按钮。想像一下,如果你的工程中需要编写几十个配置管理窗体,
如果不使用窗体继承的方式来编写的话,在程序已经进入测试阶段时候,客户突然发现上面这个问题,要求修改,
那么修改的工作量就会非常大,而且很难保证不会因为疏忽而忘记修改某个配置界面。而使用窗体继承的方式,我
们只要修改基类窗体就可以保证修改对所有的派生类都生效。
 
除了界面继承之外,VFI也可以实现代码继承,在基类窗体的OnCreate事件中显示一个提示信息对话框:
(Sender: TObject);
begin
ShowMessage(' '); 配置参数界面
end;
 
2
运行程序后,你会发现虽然我们没有编写派生窗体的OnCreate事件处理过程,但是显示界面时,仍然会弹出消息对
话框。
 
同时,由于窗体的属性通过VFI被共用,可以有效的地减少占用的系统资源,比如有时我们可能会在界面上放上一个
大的图片进行界面美化,如果这个图片被放在多个界面中,而这些界面之间没有继承关系的话,图片就会被多次编
译进资源中,在我们不知不觉中文件大小可能会翻了几倍。而将图片放在基类窗体中,无论图片被多少个子窗体共
用,资源都只被编译一次,因此可以极大的

Delphi 7组件与分布式应用开发 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 12
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 紫岑旖旎
  • 文件大小 0 KB
  • 时间2012-09-15
最近更新