Download - 第一章 C++ Builder 6 概述
![Page 1: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/1.jpg)
1
第一章 C++ Builder 6 概述
安装,是使用 C++ Builder 的第一步,在这一章,我们将带领着大家进入 C++ Builder的世界里,让我们对 C++ Builder 有更进一步的认识。
![Page 2: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/2.jpg)
2
大纲
• 1-1.C++ Builder 6 简介• 1-2.C++ builder 6 快速入门• 1-3. 面向对象编程的基本概念• 1-4.C++ builder 的 IDE 应用环境进阶• 1-5. 在线寻求协助( On-Line Help )
![Page 3: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/3.jpg)
3
1.1 认识 C++ Builder 6
C++ Builder 6 是美国 Borland 公司最重要的程序语言产品之一 , 功能强大 , 操作简单。 C++ 将 C 语言加入了面向对象概念。 C++ 语言成功地将 c 语言简洁,快速的优点与面向对象的软件工程设计方法相结合,成为主流的应用程序开发工具。
![Page 4: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/4.jpg)
4
C++开发工具
Visual c++
C++ Builder
GNU C++ ( 适用于 UNIX 系统 )
C++ Builder 6 的版本
Enterprise (企业版):适用于企业开发人员,增值软件厂商,系统集成公司等需要构建现代 e-Business 应用系统的技术人员。
Professional (专业版):适用于需开发商业数据库应用程序,或想进入新兴 LinuxR 市场的专业开发人员,可将在Windows 平台上的开发投资轻易的移植到 Linux 平台。
Personal (个人版):提供初学者以可视化开发工具,以鼠标拖放的方式,轻松学习窗口程序设计。
![Page 5: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/5.jpg)
5
• 第一步 : 将光盘片放入光驱中, Windows 将会自动跳出以下的画面供我们安装。
– 我们选择第一项『 C++ Builder 6 』来安装 Borland C++ Builder 6
• 按下第一项之后,第一个出现的画面就是 Install Shield Wizard 出现的画面,主要是准备安装过程中会需要使用到的档案。等到准备画面跑到100% 后,会马上出现 Borland C++ Builder 6 的欢迎画面,在这个画面我们不需要有任何的思考,直接按下『 Next 』
如何安装使用 Borland C++ Builder 6
![Page 6: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/6.jpg)
6
如何安装使用 Borland C++ Builder 6
• 遇到序号以及认证码输入的画面。– 将序号以及认证码都输入后,请按安
装程序的『 Next 』进行序号以及认证码的确认。
– 选择『 Accept 』来继续进行我们的安装过程啰!
![Page 7: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/7.jpg)
7
• 来到安装模式的选单,在这个选单我们可以选择 Typical 、 Compact 、Custom 这三种模式– 如果担心安装不够完整,可以选择 Custom
来安装 Borland C++ Builder 6 ,因为在Custom 的安装模式下,可以选择『全部安装』。
– 当我们选择了 Custom 之后,有可能会出现一个『 Just-In-time Debugging 』的讯息窗口,这个窗口主要是想要告诉我们,目前在系统的 registry 中已经有一个 Just-In-Time 的 Debugger在运作,我们是不是要使用Borland C++ Builder 6当作这个 Just-In-Time Debugger ,如果要的话就选择『是』,如果不要的话就选择『否』。
如何安装使用 Borland C++ Builder 6
![Page 8: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/8.jpg)
8
• 当你决定要不要使用 Borland C++ Builder 6当你的 Just In Time Debugger 之后,就会出现 Custom Setup 的选单,这个选单主要就是希望让我们选择我们想要安装的项目,在这边我们将全部选择所有组件(预设)。
• 在选择安装组件的画面按下 Next 之后,还有几个画面是在设定『 BDE SQL Driver 』、是否安装『 VisiBroker / CORBA Support 』、『 Office 版本』、『想要连结的档案扩展名』、『安装目录』等等,最后还会要求使用者决定要不要纪录安装过程的数据到硬盘上。等上述一切都设定完毕, InstallShield 就会马上帮我们开始安装 BCB 6 。– BDE SQL Driver 设定画面
如何安装使用 Borland C++ Builder 6
![Page 9: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/9.jpg)
9
– 安装路径设定画面
– 决定是否储存安装过程信息
如何安装使用 Borland C++ Builder 6
![Page 10: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/10.jpg)
10
如何安装使用 Borland C++ Builder 6
– 在上述的设定过程中,还会有一个『 License Agreement 』要让我们确认,这个『 License Agreement 』就是有关 Deploying Multi-Tier Programs 的授权确认,在这边使用者也是一样选择『 I agree 』的选项之后继续按下『 Next 』。
![Page 11: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/11.jpg)
11
如何安装使用 Borland C++ Builder 6
• 当我们一切都 OK 了之后,就会出现安装的画面– 在这个画面的最下方有一个 Progress Bar 在显示安装的进度,在安装的过程
中• 如果读者临时想要放弃安装都
可以直接按下『 Cancel 』来取消这次的安装。
• 安装到最后快要结束的时候,还会出现一个小窗口请我们放入『 Disk 2 』继续进行安装,这时候我们就将光驱内的 Disk 1换成 Disk 2 后按下这个小窗口的『 OK 』钮继续进行我们的安装程序。
![Page 12: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/12.jpg)
12
1 如何安装使用 Borland C++ Builder 6
– 安装完 BCB 6 之后,因为我们是目前安装的是企业版,而且再之前的安装设定时有选择『 VisiBroker / CORBA Support 』的选项,所以安装系统还会帮我们安装 jdk 、 VisiBroker ,也会帮我们安装 InterBase Client这三样软件,如果你认为你不需要安装,则可以在此时选择取消。
![Page 13: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/13.jpg)
13
如何安装使用 Borland C++ Builder 6
– 整个安装完成后,安装程序会跳出一个画面告诉我们已经将 Borland C++ Builder 6顺利且成功的安装到我们的计算机里了,而且系统也会要求重开机,这时候只要重开机完毕,我们便完成所有的安装动作。
![Page 14: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/14.jpg)
14
• 重开机后,我们可以在开始选单中发现 BCB 6 的选单。接下来我们选择 C++ Builder 6 这个选项来启动 BCB 6 。– 如果这是安装后第一次开启 BCB 的话,将会有一个注册的画面要大
家做『 Register 』的动作,在这边大家就根据自己的需求选择一种最方便的方法就可以了。当注册成功之后,系统就会开始进入 BCB 6的动作。
如何安装使用 Borland C++ Builder 6
![Page 15: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/15.jpg)
15
如何安装使用 Borland C++ Builder 6
• 在你注册成功后继续开始 BCB 6 的过程中将会出现 BCB 6 的 Logo ,在 Logo 这个画面差不多停留了十多秒就会跳入 BCB 6 的主画面。当然,根据计算机配备的不同,停留在 Logo 的时间也会不同。
– 在这边我们还有一件事情要提醒各位。如果显示卡是 S3 系列的某些显示芯片(如: Virge DX 或 Virge GX2 等等),而且是使用 Win95/98 系列的操作系统,可能会在开启 BCB时当机,这时候你只需要在操作系统内找到 system.ini这个档案,用任何一种文字编辑器开启这个档案。先寻找 [Display] 这个项目,如果找不到这个项目,则可以在档案的最后面加入,接着在这个项目内加入DeviceBitmap=0 后存档,重开机,之后就不会有这个问题了。
![Page 16: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/16.jpg)
16
4.3 面向过程与面向对象
1 、面向过程的程序设计面向过程的程序设计是指针对所要解决的问题,在程序设计时以功能来划分,设计对应的函数或是子程序,再由主程序整合为一个解决完整问题的程序。缺点: 1 、开发速度慢 2 、调试和维护难
![Page 17: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/17.jpg)
17
2 、面向对象的程序设计面向对象程序设计与面向过程使用完全相反的思考模式,从人类的思考问题习惯来分析问题,利用面向对象的特性,把问题中的所有个体数据及操作程序,一一封装为独立的对象,重要的是对象彼此间的关系,对象之间如何传递消息。
![Page 18: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/18.jpg)
18
• C++ Builder 本身就是以 C++ 为基础的软件开发系统,所以整个项目架构就是对象导向的架构。在这一小节里,我们只稍微解释了一下在 BCB 中最容易遇到有关于对象导向的名词,我们将以最少的文字以及例子让大家尽快的了解这些名词的意义。至于详细的对象导向原理或是 C++ 的语法,可能就得请读者自行研读这方面的书籍,在这本书中不会提到这方面的东西。
![Page 19: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/19.jpg)
19
• 类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。这有点像 C 语言中的结构,唯一不同的就是结构没有定义所说的“数据相关的操作”,“数据相关的操作”就是我们平常经常看到的“方法”,因此,类具有更高的抽象性,类中的数据具有隐藏性,类还具有封装性。
• 对象是类的实例。对象是属于某个已知的类。因此,定义对象之前,一定要先定义好该对象的类。下面简单的介绍对象的定义。
• 对象在确定了它的类以后,其定义格式如下: < 类名 >< 对象名表 >
![Page 20: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/20.jpg)
20
• 什么是对象( Object )– 对象,照字面上的意义来说,就是一个一个的东西。没错,我们举几
个生活上的例子来说明:脚踏车是一个对象,汽车也是对象,锅子也是对象,房子也是对象。如以上所说,其实一般我们可以看的到,摸的到都可以称作是对象。
– 在 BCB 里面的对象则是一个一个的 VCL 组件,或是我们自己建立的对象也是,例如按钮是个对象,选单也是个对象等等。简单的说明一下对象的大概意义差不多就是这样子了。
![Page 21: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/21.jpg)
21
• 什么是属性( Property )– 属性,它就是对象的特性、特征。例如:汽车有颜色这个特征,但是
不同的汽车可能会有不同的颜色,所以颜色就是汽车的一个属性,其余的如汽车的马力、汽车的车门数目、汽车的极速、汽车的排器量……等等,只要是用来描述这台汽车的东西都可以称作是这台汽车的属性。
– 反观,在 BCB 中对于一个对象的属性是哪些呢?以按钮来说好了,按钮的颜色、位置、大小……等等,都是按钮的属性。说到这边,不知道大家对于属性有没有更进一步的认识呢?
![Page 22: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/22.jpg)
22
• 什么是事件( Event )– 事件,简单来说就是会发生的事情。例如对于一台汽车来说, " 正在驾驶 "就是一种事件,转弯、煞车等等都是。那对于 BCB 上的按钮来说,按下按钮就是一个事件。如果是对于整个窗口来说,开启窗口也是一个事件、窗口移动、窗口关闭等等也都是事件。
• 什么是方法( Method )– 如果你要将汽车从红色变成蓝色,所使用的 "方法 "就是我们这边所
要说的方法。很简单的,把这种观念转换到 BCB 上的对象,假设我现在想要让按钮变成 Focused ,那我只需要执行 SetFocus 这个方法。如果我要将一个字符串( AnsiString )变成整数,我只需要使用 ToInt 这个方法。所以,我们只要想成,要作一件事情一定需要一个方法,那就可以很清楚的将 "方法 "的定义弄清楚了。
![Page 23: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/23.jpg)
23
• 1-4.1. 主要的 IDE 画面– 下图是 Borland C++ Builder 6 的主要画面,这个画面也是我们主
要的工作环境。
1-4.C++ Builder 6 的 IDE 环境介绍
![Page 24: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/24.jpg)
24
• 1-4.2. 窗体( Form )– 窗体,是我们放置 VCL 组件的地方,它长成什么样子,我们的程序就
会变成什么样子,我们只需要用『拉』的方式,就可以很容易的建立出程序的基本架构及接口。这就是为什么我们会说,利用 BCB 来开发程序将会大大的减少窗口的建构速度。
1-4.C++ Builder 6 的 IDE 环境介绍
![Page 25: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/25.jpg)
25
• 1-4.3. 菜单以及 VCL 组件– 在下图内共有菜单( Main Menu )、快速按钮( Tool Bar )、以
及 VCL 组件( Component Palette )这三大部分。我们将在下面一一介绍这三大部分的主要功能及成员。
• 主菜单,顾名思义就是提供 BCB内所有的主要功能,总共分为『 File 』、『 Edit 』、『 Search 』、…、以及『 Help 』,共十一种不同的分类。每一种分类都有他的子选单,在这边笔者建议各位读者,有空的时候将这十一种不同的选单多少看一下,才不会要用的时候临时找不到该功能放在哪!
1-4.C++ Builder 6 的 IDE 环境介绍
![Page 26: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/26.jpg)
26
• 在快速按钮中,共分成五大部分,分别是『 Standard 』、『 Custom 』、『 View 』、『 Debug 』、以及『 Desktop 』这五部分。以下就是这五大部分的图示:这五种不同功能的 Tool Bar 皆可以在主选单中的『 View 』选单内的『 Tool Bars 』中做设定。在 Tool Bar 中提供的主要都是我们在程序开发中最常用到的功能,所以有了 tool Bar 的帮忙,可以让我们开发程序的速度加快一些。
1-4.C++ Builder 6 的 IDE 环境介绍
![Page 27: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/27.jpg)
27
1-4.C++ Builder 6 的 IDE 环境介绍
– VCL ( Visual Component Library )组件所在的地方我们称做『组件控制版( Component Palette )』,它提供我们许多窗口程序的对象,让我们在开发程序上更快速。 VCL 组件相当的多,在BCB 6.0 企业版里,就有超过 300 个以上的组件可以供我们重复使用,还好 BCB利用多页选单的方式将 VCL 组件分类好,让我们才能快速的找到我们所需要的 VCL 组件。每一个 VCL 组件都有自己特有的属性及方法,有很多情况我们只需要更改这些属性就可以达到我们的要求,而这些属性及方法我们将会在往后的章节内为大
![Page 28: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/28.jpg)
28
1-4.C++ Builder 6 的 IDE 环境介绍
• 1-4.4. 程序编辑器( Code Editor )– 程序编辑器提供了我们在 BCB内写程序的接口。在程序编辑器中有四个方便好用的子功能可以让我们利用。这四个子功能,我们将在以下慢慢介绍。
![Page 29: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/29.jpg)
29
1-4.C++ Builder 6 的 IDE 环境介绍
– Code parameters :自动显示函式或是对象所需要的参数以及参数型态,可以减少我们一直查阅 On-Line Help 。你只要键入函式的左括号后,将游标停住不动一下子, Code parameters 就会自动显示出它该显示的东西了。
– Code templates :按下『 Ctrl-J 』后,会跳出一个小窗口,这个窗口内包含了 C++ 语法中的命令叙述,可以省去 programmer 查语法的时间。
![Page 30: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/30.jpg)
30
1-4.C++ Builder 6 的 IDE 环境介绍
– Code completion :在写程序的过程中,我们可能宣告了很多结构体,可能宣告很多 class ,可能宣告很多对象,可能新增很多属性, BCB 本身提供的对象也相当多,我们当然不可能全部都记住每个对象的属性或是方法。这时候,为了减少我们翻阅 On-Line Help的时间,我们可以借着 Code completion 这项功能,让我们不需要在记住那些恼人的东西。当你想用 Code completion 的时候,你只要将光标停住不动一下子, Code completion 就会自动显示出它该显示的东西了。
![Page 31: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/31.jpg)
31
1-4.C++ Builder 6 的 IDE 环境介绍– Tooltip expression evaluation :这个功能可以说是 Debug 工具
中的高手,也是 Code Insight 中我们认为最强的一项功能。因为在传统的写程序过程中,想要观看 Run time 中的一些变量值,要将这些变量加入 Watch 窗口中,增加了许多麻烦,但是在 BCB内,我们可以任意设定断点,等程序跑到这边时,只需要将光标轻轻的放在我们想要看的变量上面,值马上就出现了。当然,整个 BCB 的 Debug功能不只这一项,我们将在下面介绍更多 Debug 的工具。
![Page 32: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/32.jpg)
32
1-4.C++ Builder 6 的 IDE 环境介绍
• 1-4.5. 物件检视器( Object Inspector )– 对象检视器将 VCL 组件中的属性及事件全部显示出来,让
programmer 可以利用对象检视器知道 VCL 组件的一些信息,也可以利用对象检视器直接设定或是修改属性,当然也可以新增某个事件的程序代码。在对象检视器上方有个下拉式选单,会将我们已经加入窗体中的所有 VCL 组件全部列出,我们可以利用这个下拉式选单快速的选择某个 VCL 组件。
![Page 33: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/33.jpg)
33
1-4.C++ Builder 6 的 IDE 环境介绍
• 1-4.6. 类别浏览器( Class Explorer )– 类别浏览器利用树状结构显示整个程序的架构,不管是类别、型态、属性、对象、事件等等,类别浏览器都会完完整整个显示出来。在BCB 6 的环境下,类别浏览器是在程序编辑器的左边,当然,你也可以将类别浏览器独立出来。
![Page 34: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/34.jpg)
34
除错器( Debugger )
• Debug 可以算是写程序过程中最令人头痛的事情,所以BCB 在这方面也下了许多苦心,也提供了很多工具,例如我们上面说过的 Tooltip expression evaluation 、还有Watch List 、 Breakpoint 等等,在 Project Options 中也有一些关于 Debugging 的设定,我们现在就简单说明几项好用的 Debug 工具:
![Page 35: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/35.jpg)
35
除错器( Debugger )
– Breakpoint :你可以直接按下程序编辑器左方的空间,直接定出Break Point ,也可以选择 Main Menu 上的 View a Debug Windows a Break Point 的选项来启动 Breakpoint List 。
![Page 36: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/36.jpg)
36
除错器( Debugger )
– 常用的按键:
按键 按键说明Ctrl-F2 中断程序的执行,并回到执行前的状态。Ctrl-Alt-Sys Rq
暂停程序的执行,常用在无穷循环发生时。
F4 程序将执行到设定的那一行。F5 设定/取消断点。F7 一行一行执行,遇到函数呼叫会进入函数内。F8 一行一行执行,遇到函数呼叫不会进入函数内。F9 执行到程序断点或是执行到程序结束。
![Page 37: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/37.jpg)
37
除错器( Debugger )
– Watch List :可以点选 Main Menu 上的 View a Debug Windows a Watches 来叫出 Watch List ,也可以直接按 Ctrl-F5 或 Ctrl-Alt-W 叫出。此窗口主要用来观察程序中的变量在执行期间变量内容的变化。这个功能也可以搭配我们前面说过的Tooltip expression evaluation ,这样会让我们 debug 更方便。
![Page 38: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/38.jpg)
38
除错器( Debugger )
– Call Stack : Call Stack 可以让我们知道目前程序的 stack 内有哪些东西,也就是可以知道我们目前程序呼叫了多少函式,以及一些其它信息。
• BCB 提供的 Debug 工具当然不只这些,我们只举出一些比较常用的工具,让我们可以在写程序的过程中更方便 Trace 程序。
![Page 39: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/39.jpg)
39
1-5. 在线寻求协助( On-Line Help )
• Borland C++ Builder 提供了很棒的 On-Line Help 可以供我们使用。– 有不知道的函式、有不懂的对象、有不清楚的用法等等,找它就对了。只要你不排斥看英文,我们认为 On-Line Help 是一个可以在短时间内给你答案的途径。
– 那该如何叫出 On-Line Help 呢?很简单,可以从 Main Menu 中的Help 中去找,有 C++ Builder Help 、 C++ Builder Tools 、以及Windows SDK ,
– 当然还有网络上的资源,也是很好的数据来源喔!
![Page 40: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/40.jpg)
40
1-5. 在线寻求协助( On-Line Help )– 除了从 Help 选单去找外,还可以从开始选单直接呼叫出 Help 。
![Page 41: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/41.jpg)
41
1-5. 在线寻求协助( On-Line Help )– 在 Help 的画面中,你可以使用系统帮你分类好的方式去找寻你要的答案,也可以使用它的 index 直接寻找你要的资料。
从内容寻找数据 从索引寻找数据
![Page 42: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/42.jpg)
42
附录: C++ Builder 基本程序设计范例
• 把 BCB 安装完成,也了解整个 IDE 接口后,我们终于要展开设计之路了。在这一章节,我们将了解到整个 BCB 的设计原理,对象、属性、事件、方法到底是什么?以及我们该如何建立窗口程序等,都将呈现在大家的面前。进而介绍如何更改整个项目的属性及选项。
![Page 43: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/43.jpg)
43
附录:第一个窗口应用程序
• 每当我们看到一个一个华丽的窗口应用程序时,是不是都有个梦想,我们也想自己写一个这么漂亮的东西出来。现在,我们将实现这个梦想。
• 附录:如何建立 / 执行 Windows 应用程序
我们将一步一步的带领大家建立第一个窗口应用程序。现在我们执行 BCB 这套开发环境,执行后会出现如图的画面出现。
![Page 44: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/44.jpg)
44
附录: 第一个窗口应用程序
– 其实,这就是一个基本的窗口程序了,现在,我们接着按下『 Run 』这个按钮或是『 F9 』,就会出现一个最简单的窗口了。
– 接着我们选择『 Close All 』,将所有的设计表格关闭,并且选择不储存。
最简单的窗口应用程序
![Page 45: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/45.jpg)
45
附录: 第一个窗口应用程序
– 当我们关闭所有开发程序之后,如果我们还想继续开发一套新的应用程序,我们可以选择窗体中的 New ,或是直接点选 New 的按钮,之后就会出现建立新应用程序的选单。
![Page 46: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/46.jpg)
46
附录: 第一个窗口应用程序
• 附录:储存项目内容– 当我们开发程序当中,我们一定会常常储存现在的成果,以避免当机
或是程序无响应等造成的损失,这一小节我们将仔细的让各位了解BCB 中储存项目的方法为何。我们储存项目大致上分成四种:
种类 说明Save 储存目前正在编辑中的 Form 或是程序代码。Save As 将目前正在编辑中的 Form 或是程序代码改成另
一个档名储存。Save Project As 将目前正在编辑中的项目储存成另外一个文件名称。
Save All 将目前正在编辑的 Form 、程序代码、项目等所有档案全部储存。
![Page 47: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/47.jpg)
47
– 我们可以在主选单中找到这四个选项,也可以在快速按钮的区域找到其中两个。
– 现在我们准备储存我们目前的项目内容,我们选择 Save All 的按钮按下去后,第一个会出现的窗口会储存目前的 Form和程序代码,接着会再出现一个对话窗的画面来储存整个项目的内容及设定。『范例程序 2-1 』
附录: 第一个窗口应用程序
![Page 48: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/48.jpg)
48
附录: 第一个窗口应用程序
按下 Save All的快速钮
储存项目内容的画面
储存 Form及窗体的画面
![Page 49: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/49.jpg)
49
附录: 第一个窗口应用程序
– 若是我们只选择 Save而不是 Save All 的时候,只会出现类似前面储存窗体以及程序代码的画面,并不会出现储存项目的画面。其实Save As 跟 Save Project As 这两个储存选项跟我们刚刚提到的几乎一样,只是这两个选项会保留原本已经储存的数据改存成另一个我们新指定的档案而已。
另存窗体及程序代码另存专案
![Page 50: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/50.jpg)
50
附录: 第一个窗口应用程序• 附录:更改窗体基本内容
– 在窗口的设计中,窗口本身就具有很多属性可以供我们更改,我们在这一小节将介绍几个常见的属性,至于在BCB中的大部分属性以及说明可以在BCB内的On-Line Help中找到。
– 在更改窗体内容这部分我们将举几个例子出来,让大家直接从例子中学习。我们所举的例子可能才两三个,不过读者可以自行变更各种不同的值试试看,相信一定会有更多不同的发现。Form的属性
![Page 51: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/51.jpg)
51
– Caption :• 更改 Caption属性可以将窗口左上角的文字变换成我们想要的文字。例如我们在这个例子中将原本『 Form1 』的值改变成『 MainForm 』,那就会在 Form 的左上角直接呈现出结果。『范例程序 2-3 』
– Name :• 更改 Name 这个属性就是变更这整个对象的名称。例如原本 Form 的
Name 是『 Form1 』,也就是在程序的运作当中,这个 Form 的变量名称就叫做『 Form1 』。如果现在我们将 Name 这个属性的值改成『 MainForm 』,之后整个 Form 的名称就得改用『 MainForm 』来代替。在底下的例子中,我们将 Form 的名称改成『 MainForm 』,所以在程序中就必须改用 MainForm 来代替。『范例程序 2-4 、 2-5 』
附录: 第一个窗口应用程序
更改 Form 的 Caption这个属性
![Page 52: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/52.jpg)
52
附录: 第一个窗口应用程序
使用 Form1当作 Name
使用MainForm当作 Name
![Page 53: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/53.jpg)
53
– Position :• Position 这个属性控制了该应用程序被开启时的预设位置。假设
这个值设定成 poScreenCenter 的时候,只要执行这个程序的执行文件所跑出的窗口预设位置在屏幕中央。Position 共有『 poDefault 』、『 poDefaultPosOnly 』、『 poDefaultSizeOnly 』、『 poDesigned 』、『 poDesktopCenter 』、『 poMainFormCenter 』、『 poOwnerFormCenter 』、以及『 poScreenCenter 』共八种不同的位置摆放方法。
附录: 第一个窗口应用程序
将 Position 的属性变成『 poScreenCenter 』
![Page 54: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/54.jpg)
54
附录: 第一个窗口应用程序
– Icon :• Icon 最主要是控制窗口程序的图标画面,如果我们更改了 Icon 的资料, Form 就会马上在左上角显示出最新的 Icon图案。『范例程序 2-7 』。在这个范例中,我们首先先点选对象检视器上的『 Icon 』这个属性旁边的那个小按钮,之后便会跳出一个窗口让我们选择我们想要的Icon ,在这边我们是选择 Common File 内 Borland 所提供的 Icon ,决定好 Icon 后就可以直接按下『 OK 』完成 Icon 的选择
• 当你按下 OK 的那一瞬间,你可以稍微注意一下 Form 的最左上角,图示是不是已经改变了呢!
更改窗口程序的图标
![Page 55: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/55.jpg)
55
附录: 第一个窗口应用程序
– 这边我们虽然只举了四个例子,相信大家还是可以了解更改这些『属性』的方法,至于其它的 VCL 组件,如按钮、文字方块等等,也都可以直接使用这样的方式更改属性。
更改 Icon的数据后,Form马上显示新的 Icon
![Page 56: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/56.jpg)
56
• 附录: VCL 组件位置乱跑的问题– 利用 BCB 发展窗口应用程序的速度真的很快,不过普遍存在一个问题,那就是每个使用者个使用环境不同会造成窗口上组件位置的改变,甚至不见了。
• 这是因为每台计算机的屏幕分辨率、字号等设定并不一定相同所造成的,这一小节我们就是要来探讨这个问题,让我们以后发展的程序不再有这些问题。『范例程序 2-8 』
• 会造成这些问题最主要的因素就是字型。不管你的分辨率是高还是低都没差别,因为用到多少个像素是不变的,但是字型就有差别了。原本一个字可能只需要 12 个 pixel ,但是现在却要 14 个pixel ,理所当然的,那些 VCL 组件一定被挤的乱七八糟。而Windows底下的小型字跟大型字的差别就是在这边,一个是96dpi ,另一个则是 120dpi ,难怪组件会跑的乱七八糟。
附录: 第一个窗口应用程序
![Page 57: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/57.jpg)
57
– 其实解决这个问题的方法很简单,那就是更改 Form 的属性,你只需要将 BorderStyle 设定成『 bsSingle 』就可以了。
附录: 第一个窗口应用程序
小型字环境底下正确的显示 大型字环境下导致 VCL组件位置乱了
更改 BorderStyle属性更改 BorderStyle之后正确显示 VCL组件位置
![Page 58: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/58.jpg)
58
附录: 第一个窗口应用程序
– 在利用 BCB 设计窗口程序还有一个常见的问题,那就是我设计出来的程序到别台计算机上执行,可是却看不到画面,也没有错误讯息,在工作管理员中也有看到这个应用程序在执行,那到底是什么原因呢?
• 很简单,这只不过是因为 BCB 在开发项目的时候, Position 这个属性预设是 poDesigned ,这个意思就是说,开发程序时,这个窗口在屏幕上的那个位置被 Compile 成执行文件,执行出来就是在那个地方。所以有可能我们在 1024x768 的分辨率下设计,当时 Form 的左上角位置刚好不在 800x600 的区域内。如此,将这个程序拿到 800x600 的屏幕分辨率上跑就会发生刚刚所说的情况了。
• 解决方法也很简单(也有比较难的方法,我们留到后面再谈),只要我们将 Position 这个属性的值改成 poScreenCenter ,那以后每次执行这个窗口都会在屏幕的正中间出现了(无论你的分辨率如何)。
![Page 59: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/59.jpg)
59
附录 2 : C++ Builder专案架构
• 在这一小节里我们将介绍一下 BCB 的项目架构。– 在此,我们不希望带入一些大部分人都看不懂的架构图片或是解说,
我们改以简单、明了的词句让各位 programmer各能够掌握自己所开发的程序。
– BCB跟一般的对象导向程序一模一样,有着一大堆的继承关系,如果读者对于继承的关系有兴趣,可以自行参考 On Line Help 的内容,里面有很详尽的解说。在这边我们主要要告诉各位的是各个档案与BCB 之间的关系:
![Page 60: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/60.jpg)
60
附录 2 : C++ Builder专案架构
档案格式 用途说明.bpr档案 以 bpr 为扩展名的这个档案就是整个项目的
Makefile ,想想看,这个文件名称是不是就是我们的项目名称呢!这个档案是以 XML格式写成的,提供所有的信息给 BCB 的 Compiler ,以便 BCB将我们所开发的程序编译成执行文件。
.res档案 这个档案就是此应用程序的资源文件。这个档案储存了该项目的图标、光标等资源。
.dfm档案 .dfm 档案储存的就是窗体内容。这个 Form 里面有多少组件,放的位置在哪,有哪些属性等等,都是由这个档案负责纪录。一般来说一个 dfm 档案会对应一个档名相同但是扩展名不同的 cpp 档案,而这个 cpp 档案内所写的程序代码就是针对这个Form内所有组件(包括 Form )所写的。
表:各档案与 BCB之间的关系说明
![Page 61: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/61.jpg)
61
附录 2 : C++ Builder专案架构
档案格式 用途说明.cpp档案 .cpp 这些档案是我们主要的程序代码,有一个
Form 就会有一个 cpp 档案。我们也可以写多一点 C++ 的程序代码档案加入整个项目中。所以 .cpp 的档案绝对不会比 .dfm 的档案少。
.h档案 .h 的档案就是 .cpp档案的 header file 。
.obj档案 .obj 档案是在编译的过程中产生的,他的全名是Object Code 。在程序代码要编译成执行档的过程中一定会产生这类型的档案。
表:各档案与 BCB之间的关系说明
![Page 62: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/62.jpg)
62
附录 3 : C++ Builder 项目选项设定
• 开发应用程序的过程中,一定会有些 Help 档案需要加入,或是可能需要更改 Icon 的图示,甚至要改 Compiler 的一些参数等等,这些东西我们都可以在项目选项里更改。我们可以从 Project 选单中选择 Options 开启项目选项设定的画面,你也可以直接按 Shift-Ctrl-F11 来快速开启。
从 Project选单中开启 Options画面
![Page 63: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/63.jpg)
63
附录 3 : C++ Builder 项目选项设定
• 在选项设定画面中我们将几个常用的页面介绍一下:– 1. Forms :
• 在 Forms 选单中最主要设定了 Main Form 是哪一个窗体,这个Main Form 就是我们整个程序最主要的那个画面。其它的也有Auto-create forms 和 Available forms 这两个依附在一起的列表,这个列表主要是看看有哪些 Form 是要由 BCB 帮我们自动建立出来。
Forms页次的画面
![Page 64: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/64.jpg)
64
附录 3 : C++ Builder 项目选项设定
– 2. Application :• 应用程序的标题、 Help File 、 Icon 等等的设定就是在这个页单
中设定,你可以自己设计一个 Icon 加入这个项目中,也可以自己设计一个在线说明文件加入。
Application页次的画面
![Page 65: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/65.jpg)
65
附录 3 : C++ Builder 项目选项设定
– 3. Compiler :• 有时候我们的程序可能需要对于速度最佳化,有时候可能会有其它的要求,我们都可以透过这个选单来对 Compiler 作一些基本的设定。在这个页次中也有一些关于 Debug 的设定。
Compiler页次的选单
![Page 66: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/66.jpg)
66
附录 3 : C++ Builder 项目选项设定
– 4. Packages & Linker :• BCB 的初学者常常会遇到一种情况,那就是他写好的程序无法在其它没
有安装 BCB 的计算机上面执行,总是出现一堆 DLL 档案找不到等讯息。这个问题,我们可以透过包装应用程序的方法解决(将在第 19 章提及),也可以利用 Packages and Linker 这两个选单来解决。我们只需要取消Packages 选单中的『 Build with runtime packages 』以及 Linker选单中的『 Use Dynamic RTL 』这两个选项后重新 Compile 一次,你的执行档就可以在任何一个 Win32 平台上执行了。
Packages页次的选单 Linker页次的选单
![Page 67: 第一章 C++ Builder 6 概述](https://reader037.vdocuments.pub/reader037/viewer/2022102412/56813c2a550346895da5a4fe/html5/thumbnails/67.jpg)
67
本章习题
• 习题1. 请描述什么是对象、属性、方法、事件。2. 试着建立一个应用程序,并且将这个项目储存到硬盘中。3. 该如何才能将我们所开发的应用程序拿到别台计算机上使用?4. 你能述说出 BCB 的项目架构吗(各档案的用途)?5. 如果计算机间字号不同将会造成 Form 上面的 VCL 组件 乱掉,我们该如何解决这样的问题?