第一章C++ Builder 6概述

Download Report

Transcript 第一章C++ Builder 6概述

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