📄 第02章 编程环境.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://d2school.com/bcyl/bhcpp/newls/ls02.htm -->
<HTML><HEAD><TITLE>第02章 编程环境</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=Page-Enter content=revealTrans(Duration=1.0,Transition=1)>
<STYLE type=text/css>P {
MARGIN: 1px 2px; LINE-HEIGHT: 150%
}
.节标题 {
FONT-WEIGHT: bold; FONT-SIZE: 12pt
}
TD {
FONT-SIZE: 9pt
}
.tdtitle {
FONT-SIZE: 20pt
}
.celltopline {
BORDER-TOP: #000000 1px solid
}
.menucell {
FONT-SIZE: 10pt
}
#glowtext {
FONT-SIZE: 10pt; FILTER: glow(color=red, strength=1); WIDTH: 100%
}
#menuhref {
TEXT-DECORATION: none
}
A:link {
FONT: 10pt 宋体; COLOR: blue; TEXT-DECORATION: none
}
A:visited {
FONT: 10pt 宋体; COLOR: purple; TEXT-DECORATION: none
}
A:active {
FONT: 10pt 宋体; COLOR: red; TEXT-DECORATION: underline
}
A:hover {
COLOR: blue; TEXT-DECORATION: underline
}
</STYLE>
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY leftMargin=0 topMargin=3><A name=页首></A><!-- 标题 --><!--标题结束 -->
<CENTER>
<TABLE height=154 cellSpacing=4 cellPadding=4 width=760 border=0>
<TBODY>
<TR>
<TD
style="FONT-SIZE: 10pt; MARGIN-LEFT: 12px; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; MARGIN-RIGHT: 12px; FONT-FAMILY: 宋体"
width="100%" height=148>
<H2>第二章 编程环境</H2>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#CB界面">2.1
CB界面</A></P>
<P><A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#Win版HelloWorld">2.2
Win 版 Hello World</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#一个空白工程">2.2.1
一个空白工程</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#最简单的HelloWorld工程">2.2.2
最简单的Hello World工程</A></P>
<P><A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#DOS版HelloWorld">2.3
DOS 版 Hello World</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#一个空白的控制台工程">2.3.1
一个空白的控制台工程</A> </P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#用控制台输出Helloworld">2.3.2
用控制台输出“Hello world”</A></P>
<P><A href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#简单程序调试">2.4
简单程序调试</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#编译期错误与运行期错误">2.4.1
编译期错误与运行期错误</A></P>
<P> <A
href="http://d2school.com/bcyl/bhcpp/newls/ls02.htm#学会使用帮助文档">2.4.2
学会使用帮助文档</A></P>
<P> </P>
<P>在第一章,我们从一较高的高度上谈论——是的,我们只是在“谈论”计算机语言。直到最后一节,我们才相对具体地说到了编程工具。这就好比是和一个初识的女孩子海阔天空地聊了一番国际国内形势后,临走时我们问了她一句:“你有e-mail吗?”</P>
<H3>2.1 <A name=CB界面>CB界面</A></H3>
<P>启动Borland C++ Builder
后,你会发现它的窗口和我们常见的一体化窗口的应用程序有所不同,CB的各子窗口并没有集成在一个主应用窗口中,而是分散为独立的子窗口。</P>
<P><IMG height=447 src="第02章 编程环境.files/CB.jpg" width=600 border=0></P>
<P>(笔者的桌面分辨率为1024*728,但为了不让图的尺寸太大,我特意将各窗口拉得很小)</P>
<P>如果你打开CB后出现在界面和上图有所不同,可以通过File菜单,再选New
Application,建一新的工程,则上图标注的2到4的窗口应该出现。如果仍然有缺,请用鼠标点上图的标注为1所示窗口的标题栏(以确保为活动状态),然后反复按F11,F12,可以在以上窗口来回切换。</P>
<P>下面我们来了解这四个窗口:</P>
<P>标注为1的窗口:这是我们比较熟悉的应用程序主窗口,虽然它看上去是一个长条,不过其上有主菜单(MainMenu),工具栏(Toolbar),和别的软件一样。不一样的是这一“长条”的右下部分的多页式工具条。事实上它并不是寻常意义上的工具条,因为其上的每一工具按钮并不提供执行某一命令的功能。我们称它为控件栏。控件是CB提供的了先进的编程思想的体现之一,本章后面我们会初步学习如何使用控件。</P>
<P>标注为2的窗口:相信你一眼就可以看出这是一个文件编辑的窗口。我们称之为代码编辑窗口,或简称为代码窗口。由名及义,<B>这是我们写程序代码的地方</B>。</P>
<P>标注为3的窗口称它为C++
Builder软件的窗口并不妥当。事实上,<B>它是我们自已要写的软件的窗口</B>。Windows操作系统的应用软件,譬如Word2000,譬如WPS
Office,或者简单如画笔,记事本,总是会有一或多个窗口。这是Windows应用软件的典型特征(Windows操作系统也因此称为Windows)。尽管也可以写没有窗口的应用程序,但大多数情况下我们的程序至少需要一个窗口,所以CB在创建新工程时,总是默认为我们生成一个主窗口,这就是标注为3的窗口——在程序运行前,我们称它为设计表单(Form),在程序运行之后,它就是我们程序的窗口。我们的程序需要有几个不同的窗口,就可在设计期间生成同样多个类似标注为3的设计表单。</P>
<P>(我对”表单”这个词总是无法产生具体的概念,可是不仅C++ Builder,还有Delphi—CB的“姐姐”,以及Visual
Basic——微软的得意之作,包括.net计划中的C#等快速应用程序设计系统,都使用Form这个词来称呼<B>设计期间的窗口</B>。所以我还是统一口径叫表单。但不管怎样,如果你在我的课程中偶尔发现设计窗口这样的说法,不用猜测,你尽管认定我就是在说表单。一个原则:只在设计期间,我们才有可能称它为表单,当窗口运行了,那就是窗口了,我们从不叫一个运行着的窗口为表单)。</P>
<P>标注为4的窗口,标题写着“Object Inspector”直译对象检视器。事实上CB在调试程序时还有一个“Debug
Inspector”,我倒觉得让后者叫前者的名字更合适。因为这里Object,也就对象,可不是我们以前说过面向对象的对象。它其实是用来查看,设置当前放在设计表单上的某个/些控件的属性值和事件值的工具。后面我们会用到它,控件,也称组件——但有些CB的书区分这两者,认为前者是后者的某一特定子集——就是窗口1右下的控件栏上的控件,至于控件的属性,稍后我们使用时,你就会了解。为了直观,我决定称4号窗口为控件属性检视器,或者属性检视器,或者属性窗口,总之离不了属性二字。属性检视器有两页:Properties(属性)和Events(事件)。</P>
<P><IMG height=135 src="第02章 编程环境.files/ls022.jpg" width=257 align=left
border=0> </P>
<P>参照左边的图,这里顺便再统一一下口径,如图中Properties和Events;我们称它为多页(Properties为第一页,Events为第二页)。
</P>
<P>关于分散窗口(苹果机早期的应用程序风格)的得失,我们不想在此讨论。需要说明的是,CB的的各常用子窗口都提供Dockable,因此如果你喜欢集成式的窗口,大可通过鼠标拖拖放放来定制自已的集成窗口。
</P>
<P>Dockable是指:拖动窗口A,当经由窗口B的某一边缘地带时,窗口A可以成为窗口B上的子窗口而停靠在窗口B的某一角落。在CB里,不仅角落可以停靠,当位置为窗口B的中心时,窗口B还能以多页的方式加入窗口B。
</P>
<P>大多数软件或许会在退出时保存住最后的窗口位置大小等设置,CB则提供你随时保存,调用各套桌面设置,比如编写代码时的桌面,调试时的桌面等。
</P>
<P>以下就是笔者常用的,用于编写代码时CB桌面设置之一,它被我存盘为“PowerEditDsk”: </P>
<P><IMG height=578 src="第02章 编程环境.files/CB_PowerEditDsk.jpg" width=779
border=0> </P>
<P>这套桌面集成了类专家(ClassExplorer),工程管理(Project Manager)及消息窗口,任务列表(To-Do
List)等窗口于代码编辑窗口内。</P>
<P>鉴于如果各位的桌面设置不统一会造成课程讲解上的一些困难,另外还有一个不是理由的理由:CB有关桌面的设置有烦人的BUG,所以我们的课程使用CB默认的桌面设置,也是文前标有1、2、3、4的那张图中所示的窗口位置。
</P>
<H3>2.2 <A name=Win版HelloWorld>Win 版Hello,World</A> </H3>
<P>编写自已的第一个程序,并且用字幕打出“世界你好!”——这是“很早很早”以前一本C程序教材的作者的发明——后来据说成了经典……不过很多人说这太过时了。不管怎样,我认为这作为我们初次使用CB的教学例子仍然很合适。
</P>
<P>很多人可能感到有点突然。当CB慢吞吞启动后,一堆界面元素无论如何都让人感到这不是一个轻量级的人物;我们什么编程基础都还没有掌握,能驾驭好这个巨人吗?其实这就是CB的强大所在:具有高度的弹性,你可以用它编写很小的程序,也可以集合数十个程序员,用它编写大型软件。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -