CBuilder的基本功能【共享】.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《CBuilder的基本功能【共享】.docx》由会员分享,可在线阅读,更多相关《CBuilder的基本功能【共享】.docx(153页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、C+Bui Ider的基本功能我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们 用起来得心应手,所以我们当然得意。但我们更得意的一定是让程序代码赶快变成可执 行文件。无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。 这一工具一般称为编程集成环境(IDE)O之所以称为集成,是因为从写代码到最后软件 的出炉,我们需要它的地方实在太多了,这里列出其中最重要的功能项。1、代码编辑:方便的代码编辑功能。尽管你可以使用记事本、Word或其它任何文 本编辑器来写代码,但除非特殊需要,否则那将是极为低效的方法。相反,现在的编程 集成环境,都相当的智能,举例如:代
2、码自动功能,可以在很多情况下自动完成我们所 需的代码,既准确还迅速。Borland公司出品的编程集成环境不仅有常见的关键字高亮 等功能,还支持代码模板,支持键盘宏,同样支持高级的脚本插件功能。2、界面设计:可视化的程序界面设计功能。你所要产生的窗口,在设计期间就真 实地出现,包括字体、颜色和定位。比如:你不仅可以插入falsh的动画,而且无需运 行,就直接可以在你的界面上看到该动画的演播,这是别的编程环境不能做到的。3、程序编译:这是编程工具的主要功能。我们写的代码在成为机器能懂的可执行 程序时,必须通过编译。4、程序调试:如何尽量减少你程序的BUG呢?没有编程集成环境提供的强大调试 功能,我
3、们做的程序将毫无质量保证。5、代码优化:Borland提供的编译器,不仅在编译速度上一直在美国屡获大奖, 而且其代码自动优化功能一直领先对手儿近一个时代。使用编程集成环境,我们可以轻 松获得更快更优的最终可执行程序文件。6、辅助程序安装:程序的安装已属于另外一种工具的范畴,但我们仍可以通过编 程集成环境来决定最终生成单一可执行文件,还是带有其它动态库。如果是后者,我们 还可以通过集成环境来检查程序运行时调用了哪些动态库文件。C+Builder提供的功能远不止我上面所说的,并不是因为我嘴笨,而是我认为对 一个工具,你只有动手使用,才会真正了解它。C+是一门语言,而Borland C+Builde
4、r则是语言实现工具。作为一个编程工具, CB提供以上功能正是份内之事。在这个意义上,你可以认为CB是Word2000,而C+则是 英语或汉语。正如我们用英语或汉语在Word2000上写出优美文章,编程可说为:我们 用C+语言在CB上编写出优美的程序。VCL vs. MFC在作为-种编程工具的意义上,我们认为C+Builder和你也许常听的VC (Visual C+)没有什么本质的区别。就像Word2000和WPS2000在本质都是字处理软件。但现在 我们要从另外一个角度讨论C+ Builde这个编程工具。这个角度就是“封装”面 向对象编程思想中的最重要也是最基础的概念。一个要学习编程的人,可能
5、从c开始学起。学C时,我们没有接触那些挺玄的概念, 到了 C+, 切就来了,什么面向对象,什么封装、继承、多态于是我们兴奋起来, 努力去理解、掌握,运用这些概念所代表的技术,在掌握这些别人暂时未能理解的概念 之后而颇有成就感 。现在我要问的是,为什么要有这些概念?这些技术?正确回答这个问题,不仅有助 于我们今后对编程语言各种概念的学习,而且它能让我们避免成为新技术的奴隶,这一 切也许听起来有些形而上,不过我想通过以下讨论,至少可以回答一个很现实的问题: 为什么要选C+Builder?而不是我们更常听的VC?这是我碰到的编程初学者较疑惑的 问题之一。如果人类长有翅膀,那么飞机大抵永远不会被发明。
6、飞机的发明,是为了弥补人类 自已不能飞翔的缺陷。不能说所有的技术都是这样,但C+对于C的发展,完全是为弥 补程序员脑力的不足。一个在校生在学会C后,往往并没有机会用C去实践一个大中型 的项目,体会不到在一个庞大软件工程中,非面向对象语言的短处,所以在之后学习C+ 的过程中,也就很难真正体会到面向对象语言的长处。简短一点说:不知道C的短处, 就不懂C+的长处。相反,倒是很快就发现C+的缺点:它的代码效率多数情况下都要 比C低不少。前面我们说过低级语言与高级语言的对比,C+语言也正是从语法结构和语言功能 上来限定或实现一门编程语言更加接近人在现实生活中的思维习惯,从而达到减轻人的 记忆和判断上的负
7、担。这其中最佳的方法之一就是所谓的“封装二VC的封装类库称为MFC,它是一种很低阶的封装,它并没有按照人类的思维习惯来 重新组织和解释Windows对象(指Windows编程中所需的数据,处理,机制,接口),而 纯粹是API 一对一的翻版。这样的封装工作带来代码封装所固有的代码效率降低的副作 用,却没有给使用者带来任何方便。如果你是编程初学者,而你身边又有VC高手,那 么你一定要多多向他学习请教,因为一个真正的VC编程高手,其同时一定也是一个深 刻理解Windows内核机制(消息循环,内存管理,多任务实现,资源使用等),熟悉Windows 各种常用API函数等等的高手。C+Builder对封装
8、库称为VCL(带VC字样,可别以为它是Visual C+,其实它是: Visual Component Library,即:可视控件库)。VC的MFC和CB的VCL都是基于(但不限于)对Windows API (应用程序接口函数) 的封装,为什么要对API进行封装?这就是回到了我们前面说过的,为什么有了 C又会 有C+的问题。因为操作系统是用C和汇编写成的,它获得到操作系统必须的代码效率, 但对应用程序开发者而言,它失去了易用性。所以微软和Borland都使用高级语言对之 进行封装工作。二者谁进行得更好呢?要想成为Windows编程高手,最终一定要绕过各种封装,理解Windows对象。但作 为
9、一个初学者,我们必须挑选一个好的封装。下面我们举字体(Font)作为例子,将三 者:没有封装过的Windows字体API、封装过的MFC字体对象和封装过的VCL字体对象 做一个对比。为了保证不会有偏倚和差错,有关前二者的代码,都是笔者从MSDN (微软 提供的帮助文档)中直接拷贝出来。Window APIWindows API创建指定样式字体:HFONT CreateFont(int nHeight, / height of fontint nWidth, / average character widthint nEscapement, / angle of escapementint nO
10、rientation, / base-line orientation angle int fnWeight, / font weightDWORD fdwltalic, / italic attribute optionDWORD fdwUnderline, / underline attribute option DWORD fdwStrikeOut, / strikeout attribute option DWORD fdwCharSet, / character set identifier DWORD fdwOutputPrecision, / output precision D
11、WORD fdwC1ipPrecision, / clipping precision DWORD fdwQuality, / output qualityDWORD fdwPitchAndFamily, / pitch and family LPCTSTR IpszFace / typeface name );MFC(Visual C+)将HFONT封装为CFontBOOL CFont:CreateFont ( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight,BYTE bltalic,BYTE b
12、Underline,BYTE cStrikeOut,BYTE nCharSet,BYTE nOutPrecision,BYTE nClipPrecision,BYTE nQuality,BYTE nPitchAndFamily, LPCTSTR IpszFacename );VCL(C+Builder)将HFONT封装为TFontl要设置字体名,高度,尺寸等使用以下代码:Font-Name = 宋体”;设置为宋体Font-Size = 24; 设置尺寸为24号2将字体的粗,斜,下划线,删除线再封装为TFontStyle属性:Font-Style = Font-Style fsBold fsUn
13、derlien; 字体 增加粗体和下划线属性。对于字体不常用的旋转等属性,不进行封装,你可以直接调用API函 数来设置TFont的Handle属性。比较表中第一行和第二行:前者是原始的API,后者是VC精心的封装成果,可惜二 者儿近雷同;既然你要封装,你就是要让它变得面向对象,易记易用;-模一样的照抄 一遍,然后改改参数的名字,意义何在?如你是想维持代码的效率,那么在繁杂度一样 的情况下,为什么我们不直接使用效率更高的API函数呢?倘若说,MFC的“封装”纯粹是一种多余,那或许也还可以接受。然而MFC偏偏还 要在这种冗余的封装上建立自己的应用程序架构,和前面的“封装”一样,MFC建立应 用架构
14、的出发点也是良好的,为了方便Windows程序员编程的难度,而结果却更糟糕。 有问题的架构犯了类库或接口提供者的大忌:“有协议编程二什么叫“有协议编程”?我们先来讲“无协议编程”。所谓“无协议编程”是指接 口的提供者在提供接口时,同时也提供接口的使用约定,这一套约定应该在接口所要提 供的功能上广泛适用,而无须再有种种特殊的例外,这样的接口显然非常适于使用。学 习编程,如果挑错了我们每天都要面对的封装类库,就将永远都在努力处理这些无任何 意义的问题。MFC的CWnd提供了对Windows最基本的窗口元素的封装,其中对创建窗口的函数 的封装为:未封装的API:HWND CreateWindow(L
15、PCTSTR IpClassName, / registered class nameLPCTSTR IpWindowName, / window nameDWORD dwStyle, / window styleint x, / horizontal position of windowint y, / vertical position of windowint nWidth, / window widthint nHeight, / window heightHWND hWndParent, / handle to parent or owner windowHMENU hMenu, /
16、 menu handle or child identifierHINSTANCE hlnstance, / handle to application instanceLPVOID IpParam / window-creation data);使用这个API函数,我们可以创建各种窗口。CWnd封装的函数:virtual BOOL CWnd:Create (LPCTSTR IpszClassName,LPCTSTR IpszWindowName,DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID,CCreateContext* p
17、Context = NULL);不用我说,你也能看出这仍然是个改改参数的蹩脚的封装。我们不去管它,现在我 们关心的是:CWnd:Create对CreateWindow进行了封装,可是这一封装的结果是:原 来CreateWindow能实现的一些事情,在CWnd: :Create里突然成了例外。是的,为了适 应CWnd在MFC架构中所处的角色,程序员在涉及CWnd时必须记忆这样一条例外:“CWnd的Create用于创建窗口的实际元素,但其中参数dwStyle不能包含有窗口 风格中WS_POPUP(弹出式窗口),如果你要建立一个带有该风格的窗口,请使用 CreateEx”我仍然要说VC也是一个很优秀
18、的编程工具,但对于不想浪费无谓精力的编程初学 者,我个人建议使用Borland C+Builder,因为它实现真正的对象封装,从而使你可以 节省不低于80%的时间来学习编程本质的知识就是我们常说的数据结构与算法,这 些东西最终决定你的编程能力。下面是C+Bui Ider提供我们的最重要的东西:一、VCL类库:一个好的底层类库,让我们从学习编程最初时刻就自然而然地学会 使用面向对象的方法来写程序。它大大降低了我们入门门槛的高度,却又让我们-开始 就站在比别人高的位置看待与程序有关的问题;二、组件技术:组件技术代表了当今编程技术的主要方向,其设计思想与MS力推 的Active控件如出一辙:拥有相同
19、的先进性。只有借助组件技术,我们才有可能从一 个初学者,迅速成为可实际工作的编程工作者;另一方面,如果作为组件的提供者,我 们可以编写组件的过程中迅速提高自已的编程能力。C+Builder还提供了许多其它先进技术,如事件委拖等等,归根到底都是通过封装 让Windows编程原本需要长期积累才有可能掌握的知识变得直观易懂。如果你刚刚开始 学习编程,或者学习较长时间仍没有重大突破,或许使用C+Builder结合本课程系列, 是个不错的选择。附言:微软最近推出的C#相信会对上述MFC的不足做一个收拾,它对C+的扩展与 约束与Borland C+Builder对C+的扩展与约束惊人的相似。如果你乐意,我
20、也真的很 建议你在学完C+Builde后,继续学习C#。熟悉 Bor land C+Bui Ider一、界面:启动Borland C+Builder Jg,你会发现它的窗口和我们常见的一体化窗口的应用程序有所不同:CB的各个子窗口并没有集成在一个主应用窗口中,而是分散为独立的主 窗口。C+Builder 5 - ProjectlDatabase Tools Help Language |0 色1.期it 靠trch W” fcroje Q J当3修二“I古飞电111方6|口 iObjoettandard | Additional | Win32 | Svstem | Data Access |
21、 Dat 氐口蒙%A砌目旦I区Unitl.cpp| Fo(m1: TForml Properties | Events |ActionActiveControl AlignAnchors AutoS croll AutoSize BDiMode Bofderlcons B or der Style BorderWidth Caption ClientH eight Clientwidth Colo(2 hidden(笔者的桌面分辨率为1024*728,但为了不让图的尺寸太大,我特意将各窗口拉得很小) 如果你打开CB后出现在界面和上图有所不同,可以通过File菜单,再选NewApplicatio
22、n,建一-新的工程,则上图标注的2到4的窗口应该出现。如果仍然有缺,请用 鼠标点上图的标注为“1”所示窗口的标题栏(以确保为活动状态),然后多按几次F11 或F12,可以在以上窗口来回切换(两者功能有不同,可以自己试一下)。下面我们来了解这四个窗口:标注为1的窗口:这是我们比较熟悉的应用程序主窗口,虽然它看上去是一个长条, 不过其上有主菜单(MainMenu),工具栏(Toolbar),和别的软件一样。不一样的是这一“长 条”的右下部分的多页式工具条。事实上它并不是寻常意义上的工具条,因为其上的每 一工具按钮并不提供执行某一命令的功能。我们称它为控件栏。控件是CB提供的先进 的编程思想的体现之
23、一,本章后面我们会初步学习如何使用控件。标注为2的窗口:这是一个文件编辑的窗口,我们之所以称之为代码编辑窗口,或 简称为代码窗口,由名及义,这是我们写程序代码的地方。标注为3的窗口:称它为C+Builder软件的窗口并不妥当,它是我们自己要写软件的窗口。Windows操作系统的应用软件,譬如Word2000,譬如WPS Office,或者简单如 画笔、记事本,总是会有一或多个窗口。这是Windows应用软件的典型特征(Windows 操作系统也因此称为Windows)o尽管也可以写没有窗口的应用程序,但大多数情况下我们的程序至少需要一个窗口,所以CB在创建新工程时,总是默认为我们生成一个主窗口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 共享 CBuilder 基本功能
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内