📄 chap01.htm
字号:
<HTML><HEAD><TITLE>告别 Hello World 的年代</TITLE><META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=gb2312"><META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0z"></HEAD><BODY><P><FONT SIZE=5>创世纪的C++ Builder<BR></FONT><P><FONT SIZE=4>跨出「世纪末」的程式人<BR></FONT><P><FONT SIZE=2 FACE="新细明体">自从十九世纪末,两位姓名已隐去的巴黎编剧人发明了「世纪未」这个词,以後每一百年,人们就要在颓废、焦虑、不安、躁切的情愫里走一赵轮回。而在这个世纪,也开始有人提出了种种的世纪末口号,从「世纪末软体革命」、「世纪末文化革命」到「世纪末</FONT><FONT SIZE=2 FACE="Times New Roman">XX</FONT><FONT SIZE=2 FACE="新细明体">革命」,似乎只要冠上「世纪末」就足以代表这个世代的所有情愫。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">对於程式人来说,「世纪末软体革命」指的是物件导向程式设计方法所带来的思维模式的转变</FONT><FONT SIZE=2 FACE="Times New Roman">(ParadigmShift)</FONT><FONT SIZE=2 FACE="新细明体">,它改变了程式写作的思维模式,扩大了程式人的视野,有人把它和工业革命相比拟,认为它将会成为软体业界的工业革命;然而,我们都知道,软体业的工业革命还未到来。我们都在等待,也都在期待着黎明的曙光。<BR></FONT><P><FONT SIZE=4>程式人的「创世纪」情结<BR></FONT><P><FONT SIZE=2 FACE="新细明体">「创世纪」是程式人的图腾,它可以代表程式人个性中勇於创造的特质,它也曾经是许多程式人最爱的</FONT><FONT SIZE=2 FACE="Times New Roman">RPG(</FONT><FONT SIZE=2 FACE="新细明体">角色扮演游戏</FONT><FONT SIZE=2 FACE="Times New Roman">)</FONT><FONT SIZE=2 FACE="新细明体">。几乎所有的程式人都喜爱并乐於享受创造物件的成就感,而这种热中创造的特质,造就了许多优秀的程式。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">在每个电脑世纪的交替中,都曾经产生一些创世纪的人物或产品司,其中</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">就是其中的一员。<BR></FONT><P><FONT SIZE=4>Borland的霸王传说<BR></FONT><P><FONT SIZE=2 FACE="新细明体">自从十五年前,</FONT><FONT SIZE=2 FACE="Times New Roman">AndersHejlsber</FONT><FONT SIZE=2 FACE="新细明体">写下了第一个</FONT><FONT SIZE=2 FACE="Times New Roman">TurboPascal</FONT><FONT SIZE=2 FACE="新细明体">编译器以来,</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">就靠着</FONT><FONT SIZE=2 FACE="Times New Roman">TurboPascal</FONT><FONT SIZE=2 FACE="新细明体">稳定、优雅、与快速的编译功能,加上当时的</FONT><FONT SIZE=2 FACE="Times New Roman">Pascal</FONT><FONT SIZE=2 FACE="新细明体">是资讯科系的「官话」,为钦定的教学语言,使得</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">成为雄霸一方的霸主。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">随着</FONT><FONT SIZE=2 FACE="Times New Roman">TurboPascal</FONT><FONT SIZE=2 FACE="新细明体">的成功,</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">乘势而起,推出了</FONT><FONT SIZE=2 FACE="Times New Roman">TurboC</FONT><FONT SIZE=2 FACE="新细明体">及</FONT><FONT SIZE=2 FACE="Times New Roman">TurboC++</FONT><FONT SIZE=2 FACE="新细明体">,成为第二个在</FONT><FONT SIZE=2 FACE="Times New Roman">PC</FONT><FONT SIZE=2 FACE="新细明体">上推出商业化</FONT><FONT SIZE=2 FACE="Times New Roman">C++</FONT><FONT SIZE=2 FACE="新细明体">的编译器厂商</FONT><FONT SIZE=2 FACE="Times New Roman">(</FONT><FONT SIZE=2 FACE="新细明体">第一个是</FONT><FONT SIZE=2 FACE="Times New Roman">ZortechC++</FONT><FONT SIZE=2 FACE="新细明体">,由</FONT><FONT SIZE=2 FACE="Times New Roman">C++</FONT><FONT SIZE=2 FACE="新细明体">之父</FONT><FONT SIZE=2 FACE="Times New Roman">BjarneStroustrup</FONT><FONT SIZE=2 FACE="新细明体">亲自设计,现在已被</FONT><FONT SIZE=2 FACE="Times New Roman">Symantec</FONT><FONT SIZE=2 FACE="新细明体">收购</FONT><FONT SIZE=2 FACE="Times New Roman">)</FONT><FONT SIZE=2 FACE="新细明体">。这几个成功的产品,将</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">的声势带上高峰,於是为了更加打响</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">的名号,将旗下的所有产品,改冠以</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">之名,於是</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">的後续产品以</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">为名,如</FONT><FONT SIZE=2 FACE="Times New Roman">BorlandC++</FONT><FONT SIZE=2 FACE="新细明体">,</FONT><FONT SIZE=2 FACE="Times New Roman">BorlandPascal</FONT><FONT SIZE=2>篹</FONT><FONT SIZE=2 FACE="Times New Roman">.</FONT><FONT SIZE=2 FACE="新细明体">等等。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">在</FONT><FONT SIZE=2 FACE="Times New Roman">Windows</FONT><FONT SIZE=2 FACE="新细明体">世纪开创之初,</FONT><FONT SIZE=2 FACE="Times New Roman">BorlandC++ 3.1</FONT><FONT SIZE=2 FACE="新细明体">是当初唯一可以在</FONT><FONT SIZE=2 FACE="Times New Roman">Windows</FONT><FONT SIZE=2 FACE="新细明体">开发</FONT><FONT SIZE=2 FACE="Times New Roman">Windows</FONT><FONT SIZE=2 FACE="新细明体">软体的程式发展工具,当时</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">还以此为号召,大力抨击当时的</FONT><FONT SIZE=2 FACE="Times New Roman">MSC(Microsoft C)</FONT><FONT SIZE=2 FACE="新细明体">只能在</FONT><FONT SIZE=2 FACE="Times New Roman">Dos</FONT><FONT SIZE=2 FACE="新细明体">下撰写</FONT><FONT SIZE=2 FACE="Times New Roman">Windows</FONT><FONT SIZE=2 FACE="新细明体">程式。然而随着</FONT><FONT SIZE=2 FACE="Times New Roman">VisualC++ </FONT><FONT SIZE=2 FACE="新细明体">的推出,情势逆转,在视觉发展工具的优胜劣败下,</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">慢慢地丧失它既有的领土。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">在这两强对决的时代,</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">的开国功臣</FONT><FONT SIZE=2 FACE="Times New Roman">TurboPascal</FONT><FONT SIZE=2 FACE="新细明体">始终被遗忘在历史的一个角落,然而它的开发小组也不是省油的灯,在经过了几年的卧薪尝胆之後,</FONT><FONT SIZE=2 FACE="Times New Roman">AndersHejlsber</FONT><FONT SIZE=2 FACE="新细明体">再度带领小组</FONT><FONT SIZE=2 FACE="Times New Roman">(</FONT><FONT SIZE=2 FACE="新细明体">这个小组好像也不怎麽小</FONT><FONT SIZE=2>篹</FONT><FONT SIZE=2 FACE="Times New Roman">.)</FONT><FONT SIZE=2 FACE="新细明体">,石破天惊地推出了新一代的程式发展工具'</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">,这个以快速程式发展工具</FONT><FONT SIZE=2 FACE="Times New Roman">(RAD</FONT><FONT SIZE=2 FACE="新细明体">'</FONT><FONT SIZE=2 FACE="Times New Roman">RapidApplication Development)</FONT><FONT SIZE=2 FACE="新细明体">为号召的产品,一推出之後立即成为镁光镫的焦点,成为挽救当时</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">的救火队。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">在</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">推出之後,奠定了</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">在</FONT><FONT SIZE=2 FACE="Times New Roman">RAD</FONT><FONT SIZE=2 FACE="新细明体">领域的不朽地位,而</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">也成为在</FONT><FONT SIZE=2 FACE="Times New Roman">PC</FONT><FONT SIZE=2 FACE="新细明体">上唯一可以和工作站级的</FONT><FONT SIZE=2 FACE="Times New Roman">NextstepIB (Interface Builder )</FONT><FONT SIZE=2 FACE="新细明体">等量齐观的重量级发展工具,不过这时开始有人在思考,什麽时候</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">会推出</FONT><FONT SIZE=2 FACE="Times New Roman">C++</FONT><FONT SIZE=2 FACE="新细明体">的快速程式发展工具。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">在去年的</FONT><FONT SIZE=2 FACE="Times New Roman">Comdex</FONT><FONT SIZE=2 FACE="新细明体">展,</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">开始赠送一套代号为</FONT><FONT SIZE=2 FACE="Times New Roman">Ebony</FONT><FONT SIZE=2 FACE="新细明体">的程式发展工具,在几经审视之後,才发现它就是传说中的</FONT><FONT SIZE=2 FACE="Times New Roman">Delphifor C++</FONT><FONT SIZE=2 FACE="新细明体">,也就是现在正式名称为</FONT><FONT SIZE=2 FACE="Times New Roman">BorlandC++ Builder</FONT><FONT SIZE=2 FACE="新细明体">,</FONT><FONT SIZE=2 FACE="Times New Roman"></FONT><FONT SIZE=2 FACE="新细明体">简称为</FONT><FONT SIZE=2 FACE="Times New Roman">BCB</FONT><FONT SIZE=2 FACE="新细明体">的</FONT><FONT SIZE=2 FACE="Times New Roman">RAD</FONT><FONT SIZE=2 FACE="新细明体">。<BR></FONT><P><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">再次的开启了一个</FONT><FONT SIZE=2 FACE="Times New Roman">RAD</FONT><FONT SIZE=2 FACE="新细明体">的战场,和当初的</FONT><FONT SIZE=2 FACE="Times New Roman">TurboPascal</FONT><FONT SIZE=2 FACE="新细明体">一般,它的後继者</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">,是这场战役的先锋,并且已为</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">赢得了多次的前哨战,然後随着</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">的推出,</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">这个打了胜仗的先锋是否会如它的前身</FONT><FONT SIZE=2 FACE="Times New Roman">TurboPascal</FONT><FONT SIZE=2 FACE="新细明体">般没入历史中呢</FONT><FONT SIZE=2 FACE="Times New Roman">?<BR></FONT><P><FONT SIZE=2 FACE="新细明体">短期看来是不会的,因为</FONT><FONT SIZE=2 FACE="Times New Roman">BCB</FONT><FONT SIZE=2 FACE="新细明体">现在还算是喝</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">的奶水长大的,它所使用的软体元件都是以</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">所撰写的</FONT><FONT SIZE=2 FACE="Times New Roman">VCL</FONT><FONT SIZE=2 FACE="新细明体">元件</FONT><FONT SIZE=2 FACE="Times New Roman">(VisualCompoment Library)</FONT><FONT SIZE=2 FACE="新细明体">,至於以後</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">会不会以</FONT><FONT SIZE=2 FACE="Times New Roman">BCB</FONT><FONT SIZE=2 FACE="新细明体">全盘改写</FONT><FONT SIZE=2 FACE="Times New Roman">VCL</FONT><FONT SIZE=2 FACE="新细明体">呢?这是有可能的,那长期看来,</FONT><FONT SIZE=2 FACE="Times New Roman">BCB</FONT><FONT SIZE=2 FACE="新细明体">是否会取代</FONT><FONT SIZE=2 FACE="Times New Roman">Delhi</FONT><FONT SIZE=2 FACE="新细明体">呢?这似乎只能由时间来告诉我们了。不过</FONT><FONT SIZE=2 FACE="Times New Roman">Delphi</FONT><FONT SIZE=2 FACE="新细明体">之父</FONT><FONT SIZE=2 FACE="Times New Roman">AndersHejlsber</FONT><FONT SIZE=2 FACE="新细明体">已经在去年由</FONT><FONT SIZE=2 FACE="Times New Roman">Borland</FONT><FONT SIZE=2 FACE="新细明体">离职了,这似乎透露了一些讯息。<BR></FONT><P><FONT SIZE=2 FACE="新细明体">说到这儿,我想您已经迫不及待地想要一睹</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">的卢山真面目了,没错,今天这场</FONT><FONT SIZE=2 FACE="Times New Roman">RAD</FONT><FONT SIZE=2 FACE="新细明体">的战役已经开启了,胜负的的观点已不是我们所关心的,我们所关心的是一个程式人的前哨站已经开打了,当别人都在使用</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">这种重武器时,我们该如何因应?<BR></FONT><P><FONT SIZE=2 FACE="新细明体">既然无法反抗它,那就加入它</FONT><FONT SIZE=2 FACE="Times New Roman">!</FONT><FONT SIZE=2 FACE="新细明体">让我们参与</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder </FONT><FONT SIZE=2 FACE="新细明体">的创世纪吧</FONT><FONT SIZE=2 FACE="Times New Roman">!<BR><BR></FONT><P><FONT SIZE=4>告别Hello World的年代<BR></FONT><P><FONT SIZE=2 FACE="新细明体">许多电脑语言书籍入门书内的第一个程式都以一个印出</FONT><FONT SIZE=2 FACE="Times New Roman">HelloWorld</FONT><FONT SIZE=2 FACE="新细明体">字串的小程式作为第一个入门程式,而在</FONT><FONT SIZE=2 FACE="Times New Roman">Windows</FONT><FONT SIZE=2 FACE="新细明体">程式设计领域享有天王之名的</FONT><FONT SIZE=2 FACE="Times New Roman">CharlesPetzold</FONT><FONT SIZE=2 FACE="新细明体">在他圣经级的着作的</FONT><FONT SIZE=2 FACE="Times New Roman">ProgrammingWindows </FONT><FONT SIZE=2 FACE="新细明体">中也是以一个</FONT><FONT SIZE=2 FACE="Times New Roman">HelloWindow</FONT><FONT SIZE=2 FACE="新细明体">做为该书的开场白,在迈入</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">的世纪之後,我就不再使用这种纯古法饷造的方法来写作了,为了充份让您感受它的致命吸引力,现在我所展示的给您的第一个程式是多媒体拨放程式,而且我会告诉您如何在十分钟之内写出一个多媒体拨放程式,「十分钟!有没有搞错?」,没错,就是十分钟,用</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">你绝对可以在十分钟内写出一个够水准的媒体播放程式'即使你是一个菜得不能再菜的初学者。</FONT><P><FONT SIZE=2 FACE="新细明体">它的执行画面如下</FONT><FONT SIZE=2 FACE="Times New Roman">:</FONT><P><IMG SRC="IMG00001.GIF"><BR><BR><P><FONT SIZE=4>好戏开锣啦!<BR></FONT><P><FONT SIZE=2 FACE="新细明体">在进入</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">时你会看到以下的画面</FONT><P><IMG SRC="IMG00002.GIF"><P><FONT SIZE=2 FACE="新细明体">首先我简单地为你介绍</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">发展环境,在此我只对整个发展环境做一个简单的浏览,以利程式的撰写。<BR></FONT><P><FONT SIZE=2 FACE="Times New Roman">C++ Builder</FONT><FONT SIZE=2 FACE="新细明体">发展环境主要分为以下元件:</FONT><P><FONT SIZE=2 FACE="Times New Roman">(1)</FONT><FONT SIZE=2 FACE="新细明体">表格</FONT><FONT SIZE=2 FACE="Times New Roman">(Form)</FONT><FONT SIZE=2 FACE="新细明体">视窗</FONT><P><FONT SIZE=2 FACE="Times New Roman">(2)</FONT><FONT SIZE=2 FACE="新细明体">元件盒</FONT><FONT SIZE=2 FACE="Times New Roman">(Compomentpalette)</FONT><P><FONT SIZE=2 FACE="Times New Roman">(3)</FONT><FONT SIZE=2 FACE="新细明体">物件检视器</FONT><FONT SIZE=2 FACE="Times New Roman">(ObjectInspector)</FONT><P><FONT SIZE=2 FACE="Times New Roman">(4)</FONT><FONT SIZE=2 FACE="新细明体">程式编辑器</FONT><FONT SIZE=2 FACE="Times New Roman">(CodeEditor)</FONT><P><FONT SIZE=2 FACE="Times New Roman">(5)</FONT><FONT SIZE=2 FACE="新细明体">加速棒</FONT><FONT SIZE=2 FACE="Times New Roman">(SpeedBar)<BR></FONT><P><FONT SIZE=2>表格视窗 (Form)</FONT><P><IMG SRC="IMG00003.GIF"><BR><P><FONT SIZE=2 FACE="新细明体">表格是</FONT><FONT SIZE=2 FACE="Times New Roman">C++</FONT><FONT SIZE=2 FACE="新细明体">程式设计的焦点,我们可以将表格视为一张画布,在程式设计时,我们主要做的工作只是将程式元件放置在表格上而已。因此表格其实可视为一个包含其他元件的软体元件。<BR></FONT><P><FONT SIZE=2>元件盒(Compoment Palette)</FONT><P><IMG SRC="IMG00004.GIF"><BR><P><FONT SIZE=2 FACE="新细明体">软体元件是你用以架构</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">程式的基本元素。在</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">中软体元件依其元件特性分门别类地放置在活页式的元件盒中,在</FONT><FONT SIZE=2 FACE="Times New Roman">C++Builder</FONT><FONT SIZE=2 FACE="新细明体">中提供了超过了百种以上的基本元件,程式设计时,只要将元件盒内的软体元件拖放至表格中即可。<BR></FONT><P><FONT SIZE=2>物件检视器(Object Inspector)</FONT>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -