Delphi是Borland公司的产品。它是一个运行在Windows下的可视化编程环境,可以创建Windows应用程序。Borland公司以其高质量的软件开发工具独树一帜,其用户遍布世界各地、各个行业。1995年2月,Borland公司推出了Delphi 1.0,它提供给用户一种全新的可视化环境,用于快速开发Windows 3.1的应用程序。1996年1月,Borland公司正式宣布了Delphi 2.0的诞生。Delphi 2.0是在Window 95和Windows NT平台上的一套既方便又功能强大的开发工具,此外,还增加了如数据模块(data module)等多种高效的数据重用功能。在美国国家软件测试实验室1996年3月进行的软件评估中,Delphi Client/Server Suite 2.0获得了最高评价。Delphi客户机/服务器开发工具在高性能的快速应用程序开发领域已经成为新的标准。随后,Borland又推出Delphi的第三代版本—Delphi 3.0多层client/server的32位快速开发工具。
1998年8月,在完成了必要的法律程序后,美国著名软件厂商Borland公司正式更名为INPRISE公司。1998年8月20日,INPRISE公司在北京的新闻发布会上发布了其备受关注的企业级开发工具—Delphi 4.0。该产品系列包括标准版、专业版、客户/服务器版三个版本,可全面支持Oracle 8对象关联扩展功能及CORBA分布式对象技术。本书以Delphi 4.0标准版为基础,介绍使用Delphi的基本知识和软件开发技术,力求使读者能快速掌握这一先进的面向对象的可视化开发工具。
1. Delphi的主要特点
Delphi不仅是编辑器和编译器,还是一种使用构件进行编程的工具,可使软件开发工作更加简单。限于篇幅这里只介绍最常用和最有用的几个特性,其中将涉及许多全新的技术和概念,读者不可能仅阅读本节便弄清所有概念,还需要在今后的反复学习、反复实践中逐渐加深理解。
Delphi作为一种面向对象的可视化开发工具,其主要特点如下:
(1)应用程序的快速开发
Delphi是基于Object Pascal的开发工具,它具有高性能的32位本地化代码编译器。其应用程序像用C++语言编写的应用程序一样,可直接运行,能够最终生成可单独执行的DLL与EXE文件。
实现了对Win32 API,Multi-threading,OLE,OLEDB,COM,DCOM,ActiveX,ISAPI,NSAPI,MAPI,DirectX等最新技术的完全支持。
充分支持Windows 95/NT应用程序。
(2)高效的可视化构件库与面向对象的架构。
(3)具有集成的快速报表生成工具和集成的图表构件,能将企业数据转换成决策信息。
(4)能可视化地创建构件,以及通过鼠标拖放生成构件模板;具有对Windows 95/NT OLE Automation Controller和Server的完全支持。
(5)具有多种操作向导,可加速程序编写和减少语法错误。
(6)具有开发式数据库架构,可轻松连接企业内的各式数据库结构。
(7)具有集成的数据库开发工具、强大的客户/服务器运算开发功能。
(8)具有可伸缩的多层面数据库架构,便于维护和增加重用性。
(9)具有Web数据库应用程序开发的能力。
1.1 Delphi 4.0的一些新特性
Delphi 4.0包含10个新的调试工具,一个带有工程管理器的可定制集成开发环境,以及对于Windows 98/95的完全支持。Delphi 4.0的一些主要特点如下:
(1)一步生成COM和CORBA对象
COM是构建对象模型(component object model)的缩写。COM是微软为生成和实现可重用构建所确立的标准。CORBA是公共对象请求代理体系结构(common object request broker architecture)的缩写,是分布式对象管理规范。在CORBA下,服务器端应用程序实现的对象通过特定用户界面可以被客户端应用程序使用。与COM不同的是,CORBA可以应用于Windows以外的其他平台。
CORBA使开发人员摆脱了异构平台、异构数据库、继承应用等烦琐工作,Delphi又使开发者和IT部门避开了COM和CORBA之间的差异带来的麻烦。Delphi一步生成COM和CORBA组件的功能使应用程序可同时支持多种标准,因此开发者可以集中精力于应用逻辑的开发,而不会纠缠于烦琐的分布式API对象和协议中。
(2)与分布式Java的完全互操作性
目前Delphi 4.0所生成的所有对象都符合CORBA标准。Java应用和Delphi组件能在调用方式下互操作。使用全新的MIDAS for Java界面,Java和Delphi开发者能在分布式环境下迅速分享信息。MIDAS对Java的完全支持是Delphi开发者能迅速创意和Java应用立即互操作的分布式数据库应用,从而在NT,UNIX和Internet应用之间架起了桥梁。
(3)先进的分布式数据管理
在一个企业中,对所有数据源提供全局访问需要一个复杂的网络和数据库驱动程序的组合。对于数据库驱动程序(比如ODBC),存在一个仅支持数据库服务器中某一功能子集的弊病。Delphi 4.0完全支持通过ODBC数据库的访问,同时,它还提供了性能优化的本地驱动程序,提供对数据库的高效访问,并支持各种数据库的所有特性。Delphi 4.0目前支持与Oracle,DB2,Informix,Sybase,InterBase,MS SQL Server,dBASE,Paradox,Access和FoxPro的本地连接,同时提供对AS/400的本地连接。
(4)先进的开发工具
Delphi简化了应用开发的复杂工作,能自动处理重复性的开发工作,大大提高了开发效率。Delphi通过构件提高了代码的重用性,新的应用逻辑一经创建,就能打包成构件并在应用开发中使用。由于创建Delphi构件非常容易,因此Delphi的开发者可迅速得到对新技术的支持。
1.2 Delphi产品系列
Delphi为分布式应用开发提供了一整套集成开发工具。从功能上来讲,Delphi产品主要有以下几种类型:
(1)Delphi集成开发工具(IDE):现在,只有Delphi能够将用于编译本地代码的高效编译器、项目管理器和团队(team)开发支持、可视化双向工具以及高级调试(debug)功能集成于一体。
(2)Delphi可视化构件库(VCL):VCL提供了成百个用户接口、数据库访问、数据处理、数据分析、报表和Internet开发的预建构件。
(3)Borland数据库引擎(BDE)和数据库工具:除了具有数据库管理的多数功能外,BDE还是一个可与数据库服务器进行高速连接的数据库引擎。
(4)MIDAS:MIDAS是一个集成于Delphi的分布式应用的强大集合,能够确保对商业逻辑的职能集中管理和企业交易的高效处理。
2. Delphi中的一些常用术语和概念
(1)类、对象、属性与事件
类定义了一个包含域(fields)、方法(method)和属性(property)的抽象数据结构。类的实例称做对象。例如,TObject是一个类,它在Delphi中是所有其他类的祖先。TComponent也是一个类,它是TObject的后裔,也是在Delphi中所有构件对象的共同祖先。在设计阶段,放置到窗体上的每一个构件都是一个具体对象,是相应构件类的一个实例。例如,在某程序单元的类型说明部分有如下程序行:
1: Label1:TLabel1;2: Button1:TButton;3: Edit1:TEdit;
这里,Label1,Button1,Edit1是构件类的实例,是放到窗体上的具体构件;而TLabel,TButton,TEdit是构件类,它们都是TComponent类的后裔。
在Delphi中,程序设计所面临的一切事物都被视为对象(object)。按钮是对象,图标、窗口是对象,有些不可见的事物或事件也是对象。比如,异常(exception)就是对象。对象的结构由它们的类类型定义。类的域,方法和属性称为对象的元素或成员。Delphi对象由方法组成,多数对象还有属性和事件。属性代表包含在对象中的数据。方法是指对象可以完成的动作,代表着一个对象中的过程,可以在该对象的外部被调用。事件是对象能够做出反应的条件,在这个特定条件下,执行与之相关的代码过程。
举一个普通的例子:一个窗体上包含两个按钮,它们都是TButton类的实例。由于它们都是对象,所以都有若干属性和事件。例如,它们各自的Left和Top属性值确定了它们在窗体上的位置;而它们的OnClick事件句柄编写不同的代码,可使这两个TButton有不同的行为。典型的构件事件有OnChange,OnKeyDown等。典型的方法有Hide,Refresh,BringToFront,Show等,这些方法可以直接调用。例如:
1: Form1.Hide;2: Form2.Show;
(2)构件
构件(Components)是在项目设计时可以使用、处理的可视对象。Delphi用构件来辅助应用开发。构件是那些用于生成用户界面以及为程序提供附加功能模块的对象。在Delphi中,绝大多数构件都可以从集成开发环境中的构件板上找到。所有的构件都是可视构件库的组成部分。在这个构件类的大家族中,TComponent类是所有其他构件类的功能祖先。TComponent提供了一个构件能够在Delphi环境中工作所必须具有的属性和事件。虽然每一个构件都有自己的特性,但所有构件都分享了它们共同的祖先TComponent的特性。
放置到窗体上的每一个构件都将成为一个用户接口对象,或者一个数据库对象,或者是一个系统函数。只要把构件放置到窗体上,就创建了应用程序的用户界面。
构件包含三种类型的信息
状态信息:是关于构件的目前条件,称为构件的属性。属性的值可以由用户或应用程序读取和设置。典型的构件属性有:Color,Height,Text,以及Left,Top,Caption等。在程序中读取或设置属性值的例子如下:
1: Edit2.Text := Edit1.Text;
2: Shape1.Color := clBlue;
动作信息:构件通常可以完成一定的动作。这些动作由方法定义。方法实际上是一些过程(procedure)或函数(function),它们可以在程序中被调用,以告知构件要做什么。Delphi构件有很多方法可以被调用。常用的构件方法有Click(注意:不是OnClick),Create,Destroy,DragOver,Free等。
反馈信息:Delphi提供了对发生在构件上的特定事件(event)编写代码的机会,这使得构件成为完全交互式的。通过对事件的响应,Delphi为应用程序赋予了“生命”。构件的事件可以从对象观察器中找到。
在可视构件库中约有177个预创建构件。用户可以使用这些构件来开发应用程序,也可以创建自己的新构件。创建新构件实际上是创建新的类,而应用程序开发人员使用的是类的实例。
(3)可视化程序设计
Delphi提供了一套可视化的工具,通过它们可以观察界面设计中的变化。这种设计过程基本上是“所见即所得”的。
除了Delphi之外,还有相当数量的其他可视化开发环境。其中最流行的有PowerBuilder(Sybase公司出品),Visual Basic和Visual C++(均为Microsoft公司出品)。Visual Basic和Delphi十分相近。
(4)面向对象的程序设计
面向对象方法的实质是强调从客观世界中的固有规律出发来构造系统,用人类在现实生活中常用的思维方式来认识、理解和描述客观事物。
编写面向对象的程序设计使开发人员能够重复使用工作成果并使程序维护更为容易,并且不易出错。原因在于它们都是很容易分离开来的对象。对象的继承性是指可以在已有对象类型的基础上创建新的对象,这个新对象将继承其先辈对象的所有事件、属性及方法,并且在对衍生对象添加新过程方面有很大的灵活性。
(5)事件与事件驱动
事件就是所发生的事情。按动一个键是一个事件,移动鼠标是一个事件。计算机有一个内部时钟,时钟每跳动一次也是一个事件。一个事件就是程序应该相应的、由用户或计算机完成的事情。事件驱动的编程方法与传统的线性编程方法不同。
过去,程序员按如下形式编程:
1: begin
2: 做某件事;3: 做另一件事;4: 读取用户输入的数据;5: 处理数据,执行下一个任务。6: end
事件驱动的编程形式如下:
1: begin
2: 如果一个事件发生,那么,适当处理这一事件;3: 否则,继续当前的(任何)活动。4: 如果用户没有要求结束程序,则返回,并监视下一个事件的发生。5: end
这就是事件驱动程序的概念。在此,事件驱动意味着等待某件事情的发生,如移动鼠标,单击一个按钮等,然后对这些事情做出反应。当然,也有一些事件是系统或程序员生成的。在Delphi中,一个由系统引发而无须用户介入的事件是属于Timer控件的OnTimer事件。该事件能够在达到程序员指定的时间间隔后自动启动。
(6)Object Pascal和Delphi
什么是Delphi?简单地说,它是功能强大的Pascal编译器。Object Pascal是Delphi的基础语言。而VCL(可视化构件库)是Object Pascal对象集,这些对象可用来设计应用程序。因此Delphi是基于Object Pascal的可视化开发环境。
Delphi使用Object Pascal作为底层编程语言。Object Pascal是一种高级的编译语言,它支持结构化和面向对象编程。它的代码易读性强,编译快,使用多个unit文件以支持模块化程序设计。Object Pascal具有支持Delphi构件框架和RAD(快速应用开发)环境的特性。程序员可以在Delphi的集成开发环境IDE中编写Object Pascal程序,使用可视构件库来创建应用程序。IDE帮助开发者处理许多在建立工程文件和源文件中的细节问题,例如,检查和维持程序模块单元之间的依赖问题。
Delphi应用程序通常被分成若干源代码模块,称做units(单元)。每个程序单元存储在一个独立的文件中,并且分别编译。编译后的单元(.DCU文件)互相链接起来,生成一个应用程序。Delphi的这种程序结构允许把大的程序分成若干小的模块、分别编写和编译;允许创建可以在不同程序间共享的程序单元库;允许其他开发者使用单元库,而不必提供源代码。在常规的Pascal程序中,所有的程序代码,包括主程序,都存储在后缀为.PAS的文件中。而Delphi用一个项目文件(.DPR)存储主程序,其他的程序代码存储在单元文件(后缀为.PAS)中。每一个应用项目可以包含一个项目文件、一个或多个单元文件。
作者:银月莲
出处:http://www.cnblogs.com/moonsilvering
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,包括文章,代码,图片等本站内所有资源,否则保留追究法律责任的权利。