C++Builder 编程指南1
Borland C++ Builder(以下简称C++ Builder)是由Borland公司 继Delphi之后又推出的一款高性能可视化集成开发工具。C++ Builder具有快速的可视化开发环境:只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++ Builder内置了100多个完全封装了Win95公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件;C++ Builder具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等。它实现了可视化的编程环境和功能强大的编程语言(C++)的完美结合。特别是Borland公司新发布的C++ Builder 3.0,不但在可视化编程工具上提供了比Delphi 3.0更强大、易用的编程工具 ,还在C++语言上提供了增强功能。
一、功能简介
1.充分利用C++的强大功能
C++ Builder优化的32位原码(Native Code)编译器建立在Borland公司久经考验的编译技术基础之上,提供了高度安全性、可靠性、快速性的编译优化方法,完全编译出原始机器码而非中间码,软件执行速度大大提高。在编译和连接过程中,C++ Builder自动忽略未被修改的原代码和没有使用的函数,从而大大提高了编译和连接速度。C++ Builder的CPU透视工具包括五个独立的小面板,可以对正在运行程序从内部进行深层次的了解。另外C++ Builder还提供了一个专业开发环境所必需的命令行工具,以帮助建立C++程序或者准备编译和连接的程序进行更精细的控制。
C++ Builder可以编译所有符合ANSI/ISO标准的原代码,支持最新ANSI C++/C语言特征:模板(Templates)、例外(Exceptions)、运行类型信息(Runtime Type Information)、Namespaces等,另外它还可以使用标准C++库且支持标准模板库(STL),以前的所有C++/C原代码可以不经过修改,直接移植到C++ Builder环境下来。C++ Builder完全支持32位长文件名、多线程程序设计,且允许程序员直接调用任何Win95和NT API函数。
2.高效可视化开发环境
C++ Builder的集成开发环境(IDE)提供了可视化窗体设计器、对象观察器、控件板、工程管理器、集成编辑器和调试器等一系列可视化快速应用程序开发(RAD)工具,让程序员可以很轻松地建立和管理自己的程序和资源。
3.可重用控件
在面向对象语言(如Smalltalk、Java等)中,一个类包含特定对象感兴趣的数据和定义对象行为的方法,而子类是对父类的继承,又增加了一些新的方法。在C++ Builder中所使用的可视化控件库(VCL)也具有同样的概念 ,每一对象中包括数据成员和方法,程序员利用方法管理该对象。VCL建立在类库结构之上,充分利用了控件的属性和事件概念,每个控件不仅包含允许程序员管理其外观的公共数据部分,还包括通过属性和事件访问的函数部分。
4. 数据库开发工具和客户机/服务器(C/S)连接
C++ Builder同Delphi一样,提供了一整套数据库开发工具,可以开发出功能强大、界面美观、便利的数据库应用程序。C++ Builder提供了一个最新的数据库引擎BDE,所有的数据库连接使用的指令,均会通过BDE进行处理。对于单机使用的数据库而言,C++ Builder可以直接通过BDE来控制数据库数据的读取;而对于远端的数据库系统,BDE尚需通过SQL Links或ODBC才能读取数据库的内容。
C++ Builder的C/S版本可以通过32位SQL Links驱动器直接连接Oracle、Sybase、MS SQL Server、DB2、Informix和InterBase数据库,建立起企业级客户机/服务器应用程序。另外C++ Builder提供了与数据库相关的对象和强大的报表产生工具:ReportSmith,增加了程序编写的便利性。
C++ Builder中提供了几个使用数据库的工具,让用户可以直接修改数据库中的数据,或是执行一些指令。主要有SQL Explorer,SQL Monitor,Database Desktop,Form Expert等,大大增强了C++ Builder的数据库开发功能,具体用法可参阅有关书籍。
5.Internet解决方案
C++ Builder支持Microsoft、Sun、Netscape等公司关于Internet的关键技术,其中包括象ActiveX、CGI、ISAPI、WinInet、NSAPI等Internet标准。通过Borland公司的Internet解决方案包(Internet Solutions Pack),程序员使用C++ Builder的RAD工具(把一个Internet控件拖到窗体上,然后设置其属性和事件)就可以很方便地建立起C++ Builder的Internet应用程序。利用ActiveX控件,可以实现自己的Web浏览器、管理Internet电子邮件、进行文件传输等一系列Internet功能。
二、集成开发环境(IDE)
1.集成开发环境(IDE)
双击C++ Builder图标或在Win95/NT的“开始”菜单中选择“C++ Builder 3”选项,就可以启动C++ Builder 3.0,进入C++ Builder的集成开发环境。在正常启动情况下,C++ Builder的界面图(510cb01.Jpg )所示。
Main Menu:主菜单。它位于窗口的最上面,提供了C++ Builder的全部操作功能。
Toolbar:工具栏。它位于集成开发环境的左上侧,是一些常用的菜单命令,如打开、保存文件、运行应用程序等的快捷方式。使用工具栏比使用菜单更加方便。
Component palette:控件板。它是C++ Builder的可视化控件库(VCL),是程序设计的主要工作区。C++ Builder 3.0共有13个标签页(客户机/服务器版),分别是Standard、Additional、Win32、System、Internet、Data Access、Data Controls、Decision Cube、QReport、Dialogs、Win 3.1、Samples、ActiveX。其中在每一标签页上都有不同的控件对象供使用,它们是进行可视化程序设计的主要工具。
Object Inspector:对象观察器。利用它可以设定和查看所有对象的属性。对象观察器共有两个标签页:属性页(Properties)和事件页(Events)。其中的属性页用于设定控件对象的各种属性,如控件的标题名、大小、位置、字体、颜色等等;事件页用于设定与该控件相关的消息处理事件响应。如可以设定Button按钮的OnClick(按钮单击)消息响应函数为“ButtonClick”等,然后就可以在消息响应函数中加入自己的程序代码了。启动C++ Builder后,用鼠标点击对象观察器的属性页(Properties),对象观察器里包含的就是“Form1”窗体的各项属性。对象观察器的标题栏下面一行显示为“Form1:TForm1”,它表示下面的内容为窗体“Form1”的属性。如果要改变属性页里的内容,例如把“Caption”栏的“
Form1”改为“C++Builder3.0速成”,则会发现窗体的标题已变成
“C++Builder3.0速成”。同样,也可以改变其他的属性。用户不
用编写代码和执行程序,就可以知道程序的运行结果是什么了。在
窗体Form1中放置其它控件和设置其属性的方法与此类似(窗体也
是一个控件)。
Unit1.cpp和Form1:窗体“Form1”和装有“Unit1.cpp”文件
的代码编辑器。其实它们都不是编辑环境的组成部分,而是系统在
启动开发环境的同时自动装入的默认工程文件(Project1)所包括
的部分。其中,装有Unit1.cpp代码的编辑框叫代码编辑器,是程
序员设计代码的地方。Form1为窗体,是C++ Builder的可视化界面
设计部分。
2.工程文件管理器
在C++ Builder3.0中,开始一个新的应用程序就称为开始一个工程,系统会自动生成许多各种文件。如果要用户自己来管理这些文件的话,随着应用程序复杂性的增加,工程会越来越大,文件也会越来越多,管理起来就显的越来越麻烦。C++ Builder提供了工程文件管理器来管理一个工程,大大减轻了用户的负担,好多文件
交由工程文件管理器来管理,用户只需关心其中的一些文件即可。
例如,以系统在启动C++ Builder时自动装入的默认工程文件“Project1”为例,它一般包括以下几个文件:
Project1.bpr(C++ Builder 1.0为Project1.mak):工程文件。该文件是一个文本文件,记录了各种资源信息,通过工程文件,系统就知道如何把各种文件连接起来,最终生成用户的可执行文件。
Project1.cpp:该文件是工程文件生成的可执行文件的入口点,有点象WinMain函数。通过该文件,系统知道如何去调用窗体或者实现其它功能,一般情况下用户不用对此文件进行改动。
Project1.res:系统资源文件。包括各种图标资源、光标资源等,系统以二进制文件的方式存放,这个文件由系统自动生成。
Unit1.cpp和Unit1.h:两个都是对应于窗体“Form1”的文件,“Unit1.h”是头文件,“Unit1.cpp”是关于窗体消息的代码文件。用户进行代码编辑时,就是对“Unit1.cpp”文件进行编辑。
Unit1.dfm:它是和窗体“Form1”对应的文件。用户创建的窗体被系统转换为二进制文件存放,扩展名为.dfm。此文件是系统自动生成的,用户不用对它进行管理。
系统通过工程文件管理器来对一个工程进行管理,在主菜单“图(510cb02.Jpg )
所示的工程文件管理器。
利用工程文件管理器,就可以对上述各种文件进行有效管理(删除、增加、新建等)。
3.菜单编辑器
在C++ Builder中设计菜单也是一个可视化过程,下面介绍在C++ Builder中利用菜单编辑器设计菜单的具体过程。
启动C++ Builder,产生默认工程文件“Project1”,然后从控件板的“Standard”标签页中拖动“MainMenu”控件到窗体“For图(510cb03.Jpg )
所示。
用鼠标左键双击窗体“Form1”中的“MainMenu”控件或者用鼠标右键单击“MainMenu”控件,在弹出的菜单中选择“Menu De图(510cb04.Jpg )所示的菜单编辑器。
用鼠标单击上图所示的蓝色小方块,这时对象观察器里出现该菜单的属性,在“Caption”属性中填入“&File(在一个菜单命令的符号前面加&,则菜单中该符号下有一下划线,且该菜单命令的快捷键为Alt+该符号)”,则出现相应的菜单命令,并且小方块右移,再填上“&Edit”,对应的菜单命令就出现在前一命令的右方,图(510cb05.Jpg )。同时,“Form1”里也会自动出现主菜单。
最后可以用鼠标单击主菜单项,系统自动弹出下拉菜单框,用户只需填上相应的命令就可以设计好自己的下拉式菜单了。
菜单设计好后,相应的事件响应函数可以由用户自己设定或系统自动生成。例如,设计“Open”菜单命令为打开一个文件。用鼠标单击菜单编辑器里“File”菜单中的“Open”选项,对象观察器中出现的是该对象的属性,选择“Events”标签页,用户就可以填图(510cb06.Jpg )所示。
在“OnClick”项里填写“OpenFile”,也就是说,当“File”菜单里的“Open”命令被选中或单击时,就会调用OpenFile()函数。如果想要插入代码,只需双击“OpenFile”,系统即自动切换到代码编辑器里,而且系统已经生成了一个函数“TForm1::OpenFile()”,如上图所示,只需在该函数体内加入代码即可。其他菜单命令发送的消息和事件响应也同样按上述方法设定。用户再也不用考虑应用程序的消息是如何发送的,消息是怎样封装的等等一大堆麻烦事了!
4.程序调试器
C++ Builder提供了程序调试器,用户只需进行简单的设置就可以实现强大的调试功能。为了使一个工程文件产生用于调试的调试信息,则须做如下设置:图(510cb07.Jpg )所示的对话框。
选择“Compiler”页,在“Speed Settings”设置栏里,选择“Full debug”,则产生程序调试信息, 选择“Release”则生成的可执行文件中不包含调试信息。
选择“Linker”标签页,在“Linking”框里,确认“Include debug information”被选中。
在应用程序调试通过,一切正常后,为使可执行代码文件最小,应该把调试信息关闭,重新对原代码进行编译,生成的执行代码会更小。即在上述对话框“Compiler”页的“Speed settings”栏里,选中“Release”。
C++ Builder提供的集成调试器可以对应用程序很简单地实现单步执行、设置断点和观察点、鼠标热点指示(在调试状态下,当移动鼠标到某一变量上时,该变量的值就立刻显示出来)等各种调试功能,为应用程序的顺利执行提供了强大保证。
5.模板对象的使用
很多情况下,用户可能需要开发一系列类型和功能都差别很小的应用程序,如果每次都从头开始的话,就会给增加很多不必要的负担。因此,C++ Builder提供了模板功能供用户使用,大大便利图(510cb08.Jpg )所示的对话框。
把这个对话框叫做对象陈列框(Object Repository)。
这里面包括了各种各样的程序模板供程序员选择,如DLL程序、多线程程序、MDI应用程序等等。利用这些模板,只需点击几下鼠标就可以设计出一个具备基本功能的Windows应用程序框架,然后再在上面做一些修改就可以轻松设计出符合自己要求的应用程序了。
除上述介绍的以外,C++ Builder的集成开发环境(IDE)中的其他内容,读者可以参考C++ Builder提供的帮助文件或其他书籍,这里不再详述 。下面通过编写一个简单的程序来说明程序设计步骤。
(1) 启动C++ Builder3.0,采用系统默认工程文件(或者选择“FileNew Application”菜单,重新产生一个工程文件 ),其窗体为“Form1”,默认主程序为“Unit1.cpp”。
(2) 从控件板(Component Palette)的“Standard”页拖动一个静态文本框(TLable)控件到“Form1”上,用鼠标把它放到适当的位置。在对象观察器(Object Inspector)中设置该静态文本框的“Caption”属性为“欢迎使用C++ Builder”,最后再利用“Font”属性设置其合适的字体。
(3) 从控件板的“Standard”页拖动一个“TButton”标准按钮控件到“Form1”上,利用对象观察器设置其“Caption”属性为“退出”,“Name”属性为“ExitButton”;然后用鼠标选择对象观察器的“Events”事件页,在位于最上一栏的“OnClick”中键入“ExitButtonClick”,表示用窗体的“ExitButtonClick()”成员函数来响应鼠标单击按钮这一事件。从这里也可以看出C++ Builder面向对象的程序设计方法。
(4)用鼠标双击对象观察器的“OnClick”栏后会自动跳转到代码编辑器“ExitButtonClick()”函数体内。输入程序行“Cl图(510cb09.Jpg )所示。
该程序的功能就是显示一个字符串“欢迎使用C++ Builder”,用鼠标单击“退出”按钮就可以退出该应用程序。
从以上的实例中,可以总结出用C++ Builder设计一般应用程序的步骤:
(1) 从控件板上的控件页(如Standard、Win32等)拖动所需控件(如MainMenu、Button、StatusBar等)到窗体上,排列好其顺序并设置其属性,这样就设计好了应用程序的界面。
(2) 用对象观察器设置好菜单、按钮或其它控件的事件响应函数。如上例中的ExitButtonClick()。
(3) 最后加入事件响应函数代码,如上例中的Close()。编译运行该程序,便大功告成了!
从以上的叙述中,可以看出在C++ Builder的程序设计中,掌握常用控件(如按钮Button等)的使用方法对可视化程序设计至关重要,下面 结合实例详细介绍常用控件的属性和使用方法。
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论