第1章认识Delphi8本章首先为读者介绍Delphi的基本情况和发展历史,然后讲述Delphi8的新特性并举了一个简单的编程实例,以使读者对Delphi8有一个初步的了解。1.1Delphi简介作为一种可视化编程环境,Delphi为程序开发人员提供了快速应用程序开发(RAD,RapidApplicationDevelopment)的理念。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了可重复利用的完整的面向对象程序语言(Object-OrientedLanguage)、当今世界上最快的编译器、领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,会大大提高编程效率,而且随着应用的深入,编程也将会变成一件很有趣的事情。1.2Delphi8的特性Delphi每个版本功能的增加或减少都是和Windows操作系统技术上的进步密不可分的,而总体上看Delphi的功能越来越强大,使用上也更人性化。Delphi产品设计的目的其实是提供Windows平台上最方便、最强大的开发工具。随着Microsoft的产品和服务发展战略向.NET平台的全面转移,Delphi作为Windows上的开发工具,也完全提供了对.NET平台的支持。2003年12月,Borland软件公司正式宣布推出支持Microsoft.NET框架的Delphi8产品。它能帮助开发者实现基于.NET框架的应用并实现了从现有的Win32Delphi向.NET框架的过渡。这一转变,对在.NET框架上进行开发的普及而言意义深远。业内知名分析机构Gartner报告来说,到2004年年中之前,大多数主流机构都会着手将Win32和COM应用过渡到微软.NET框架应用中,.NET框架将在2007年以后成为主流。Delphi8主要特性如下:1.使用Delphi8与.NETFramework,可改善应用程序的互操作性、安全性与可靠性Microsoft.NETFramework被设计用来增强应用程序的互操作性、安全性与可靠性,利于开发者构建更好、更安全并且更可靠的应用程序,促进Windows应用程序开发活动。Delphi8程序设计教程•2•Delphi8fortheMicrosoft.NETFramework提供了生产力高、基于标准的.NET开发环境,完全支持所有的.NET标准,比如.NET基本类、ASP.NETWeb框架、ADO.NET数据库开发与WindowsForms,为下一代.NET应用程序提供了齐备的Delphi应用程序工具库。2.Delphi开发者可通过现有的Delphi技术和设备实现向.NET框架转变开发者可以立即使用现有的Delphi语言与框架技巧,构建真正的.NET与ASP.NET应用程序,这些应用程序也能与其他的.NET语言与Web业务进行互操作。使用开发者的解决方案可以更快、更方便地向.NET迁移。开发者的解决方案与先前Delphi开发基本相似,能带来更多的好处。3.开发团队可通过向.NET框架过渡,提升原先在Delphi上的投资价值开发者可以重复利用Delphi应用程序源代码中大部分的现有投资,这样,Windows应用程序向.NET的过渡就变得简单。使用VCL控件、dbExpress、MIDASClient、IBX与BorlandDatabaseEngine(BDE)的.NET版本,可以直接将现有的代码与应用程序过渡到.NET,通常变化不大或基本上没有什么变化,能够显著地节省时间。使用Delphi8,用户就可以拥有VCL控件与.NET框架之所长,进行卓越的开发工作。4.使用Delphi8与ASP.NET可开发高性能的Web解决方案使用Delphi8与ASP.NET框架能构建具有ASP.NETWeb格式、健壮的XMLWeb业务与丰富的服务器动态HTML应用程序。Delphi8使用专门为ASP.NET生成的、生产力高的LiveTools可视化开发环境与动态集成的HTML编辑器,有助于更快地提供功能强大的电子商务解决方案。用于ASP.NET的BorlandDBWeb控件统一并简化了ASP.NET与ADO.NET开发,自动处理Web格式的ADO.NET捆绑与进程管理。用于ASP.NET的BorlandDBWeb控件既节省时间,又简化维护,能够更快地生成高质量的Web应用程序。5.使用EnterpriseCoreObjects(ECO)模型驱动的框架,可缩短开发生命周期使用BorlandEnterpriseCoreObjects(ECO)for.NET,Delphi8可以实现UML建模环境、开发与运行阶段的无缝隙集成,以便创建一个真正模型驱动的应用程序设计系统。这个功能强劲的.NET业务对象运行平台将使用户的应用程序在Delphi应用程序与大量的外部建模工具之间无缝隙地导入、导出UML模型,并进入Delphi。从ECO平台之中,也可以可视化地生成并编辑UML模型,所使用的工具为可视化模型设计大师,这个工具是由BorlandTogether技术驱动的。设计驱动的应用程序好处在于保留了UML模型的紧密而准确的表述,因此在开发周期的全过程中维持了设计的一致性。6.更好地进行企业的ADO.NET数据库应用开发Delphi8为构建整个企业的ADO.NET数据库提供了方便,适于企业数据库的建设。第1章认识Delphi8•3•用于ADO.NET的BorlandDataProvider(BDP,数据提供器)可为大量的企业级数据库提供高性能支持,能更快、更方便、更灵活地进行ADO.NET开发。BDP可灵活生成用于一个供应商的数据库原型,并可以分发到另一个供应商的数据库。自动.NET数据类型映射大大降低了学习曲线。Delphi8Architect包括用于MicrosoftSQLServer、BorlandInterBase与IBMDB2全部开发者版本与开发者许可证。1.3HelloWorld程序为了能够更好地理解Delphi8的应用程序,下面通过一个简单的例程来讲解如何在Delphi8集成开发环境中编写Windows应用程序。该例程实现的功能是:在应用程序的窗体中每隔1s交替显示“Hello,World!”和“世界,你好!”。运行时显示的两个界面如图1-1所示。图1-1例程S1_1运行时交替显示的两个界面具体实现过程如下:●运行Delphi8可以通过Windows的“开始”菜单来运行Delphi8,如选择“开始”|“程序”|BorlandDelphi8|Delphi8命令。●创建工程通常在开发一个应用程序的过程中,会存在多个不同类型的文件,如Pascal代码文件、窗体文件、资源文件等。为了集中管理这些文件,可以创建一个工程进行统一管理。(1)创建工程目录为了单独存放与工程有关的文件,先创建一个目录。可以通过Windows环境中的资源管理器来实现,如C:\Samples\Sp1_1。(2)创建一个新的工程在Delphi集成开发环境中通过选择File|New|VCLFormsApplication命令创建一个新的应用程序,Delphi会自动创建工程文件及其他的相关文件。(3)保存工程及相关文件选择菜单命令File|SaveAll将保存与工程有关的所有文件。此时首先会弹出SaveUnit1As对话框。定位到刚才创建的目录后,按下“确定”按钮,接着会弹出SaveProject1AsDelphi8程序设计教程•4•对话框。这时目录自动定位到刚才创建的目录,接着单击“确定”按钮。如果事先没有为新建的工程创建一个目录,可以在工程生成以后,通过选择菜单命令File|SaveAs打开SaveAs对话框,在文件、目录列表框的空白位置处右击,通过选择菜单命令“新建(N)”|“文件夹(F)”创建一个新的目录,或者单击SaveAs对话框中的“新建文件夹”按钮来新建一个目录。●定制窗体(1)向窗体中添加组件为了在Form1窗体中显示文字,添加一个标签(Label)组件。标签组件是组件面板的Standard组件分类中的第4个组件。将鼠标移动到Standard组件分类中的第4个组件上,稍停一下后会出现一个内容显示为“Borland.Vcl.StdCtrls”的提示窗口,如图1-2所示,表示该.NET组件所属的名字空间。单击鼠标左键,然后移动鼠标到Form1窗体中再单击一下左键,标签组件就被添加到窗体中了。图1-2组件提示为了每隔1s将显示的内容改变一次,采用同样的方法,往Form1窗体中添加一个定时器(Timer)组件。定时器组件是System组件分类中的第1个组件。在程序运行的过程中,定时器组件并不在窗体中显示,所以将定时器组件随便放置在窗体中的某个位置就可以了。添加完成的标签组件和定时器组件如图1-3所示。图1-3添加标签组件和定时器组件(2)设置组件属性在Form1窗体中选中标签组件,然后在对象编辑器窗口中将标签组件的主要属性设置,如表1-1所示。第1章认识Delphi8•5•表1-1标签组件的属性设置属性属性值AlignmenttaCenterAutoSizeFalseCaptionHello,World!Font字体:Arial,大小:36NameLabel1注意:改变字体属性时,可以单击组合框右面的省略号(…)按钮,在弹出的“字体”对话框中设置字体、大小和颜色等。也可以展开Font属性,对子属性进行设置。设置好组件的属性后,可以改变窗体的大小。将鼠标移动到窗体的边缘时,鼠标的形状会变成双箭头模式,然后按住鼠标左键拖动就可以改变窗体的大小。定制好的窗体如图1-4所示。图1-4设置好的Form1窗体●添加代码(1)在Form1窗体中选中定时器组件,然后选中对象编辑器窗口中的事件页,为定时器组件添加OnTimer事件的处理过程,如图1-5所示。只要双击OnTimer栏右面的组合框,系统就会自动添加该事件的处理过程,并自动定位到相应的代码处。图1-5事件页中添加OnTimer事件(2)在TForm1.Timer1Timer处理过程中添加以下代码:procedureTForm1.Timer1Timer(Sender:TObject);beginDelphi8程序设计教程•6•if(Label1.Caption='Hello,World!')thenLabel1.Caption:='世界,你好!'//如果显示内容为“Hello,World!”,//则显示“世界,你好!”elseLabel1.Caption:='Hello,World!';//如果显示内容为“世界,你好!”,//则显示“Hello,World!”end;end.●运行程序通过选择菜单命令Run|Run运行程序。如果程序没有编译和链接,在程序运行前系统会自动进行编译和链接。说明:本例程通过定时器每秒执行一次TForm1.Timer1Timer处理过程,在该处理过程中,通过“ifthenelse”语句将组件Label1的Caption属性改变,也就是将窗体中显示的内容每秒改变一次。用户可以自己尝试进行以下工作:(1)改变窗体中显示内容交替的频率。通过设置定时器的Interval属性来实现。比如设置Interval为500ms,如图1-6所示。(2)改变窗体标题栏的内容,通过设置窗体的Caption属性来实现。如可以将“Form1”改为“小闹铃”,如图1-7所示。图1-6设置Interval属性图1-7改变窗体标题属性(3)改变窗体的大小、显示内容、字体和颜色等。如可以将显示内容改为“It’stimeforlunch!”和“现在是吃午饭的时候了!”。这样,就可以在Windows系统中的“任务计划”程序中添加一个新的任务,实现在午饭前某个时候自动运行该应用程序。(4)有兴趣的用户还可以让程序在运行过程中发出声音,这样提示的效果会更明显。可以在TForm1.Timer1Timer过程的后部添加一条Beep语句实现:第1章认识Delphi8•7•procedureTForm1.Timer1Timer(Send