【Z】C++builder教程大全413_第1页
【Z】C++builder教程大全413_第2页
【Z】C++builder教程大全413_第3页
【Z】C++builder教程大全413_第4页
【Z】C++builder教程大全413_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、BorlandC+Builder5.0是Interpries(Borland)公司推出的基于C+语言的快速应用程序开发(RapidApplicationDevelopment,RAD)工具,它是最先进的开发应用程序的组件思想和面向对象的高效语言C+融合的产物。C+Builder十足利用了已经发展成熟的Delphi的可视化组件库(VisualComponentLibrary,VCL),吸收了BorlandC+5.0这个卓越编译器的诸多优点。C+Builder结合了先进的基于组件的程序设计技术,成熟的可视化组件库和卓越编译器,调试器。发展到5.0版本,C+Builder已经成为一个非常成熟的可视化

2、应用程序开发工具,功能强大而且效率高。C+Builder的特色:1 C+Builder是高性能的C+开发工具C+Builder是基于C+的,它具有高速的编译,连接和执行速度。同时,C+Builder具有双编译器引擎,不仅可以编译C/C+程序,还能编译ObjectPascal语言程序。2 C+Builder是卓越的可视化应用程序开发工具C+Builder是一完善的可视化应用程序开发工具,使程序员从繁重的代码编写中解放出来,使他们能将注意力重点放在程序的设计上,而不是简单的重复的劳动中。同时,它提供的完全可视的程序桌面开发工具,从而使程序员对开发工具的学习周期大大缩短3 C+Builder具有强大

3、的数据库应用程序开发功能C+Builder提供了强大的数据库处理功能,它使的程序员不用写一行代码就能开发出功能强大的数据库应用程序,这些主要依赖于C+Builder众多的数据库感知控件和底层的BDE数据库引擎。C+Builder除了支持Microsoft的ADO(ActiveDataObject)数据库连接技术,还提供了一种自己开发的成熟的数据库连接技术BDE(BorlandDatabaseEngine)数据库引擎。4 C+Builder具有强大的网络编程能力C+Builder具有众多的Internet应用程序开发控件,如WebBroker,CppWebBrowser,WinSocks等,它们

4、基本含盖了Internet应用的全部功能,利用它们程序员可以方便地建立自己地Internet应用程序。一C+Builder5.0的集成开发环境(IDE,IntegratedDevelopmentEnvironment)1 C+Builder5.0的IDE主桌面1)组件面板标准组件选项卡上的组件是构成Windows应用程序窗口最常用的标准元素,它们包括15种组件。主要有:主菜单(MainMenu),右键菜单(PopMenu),标签(Label),备注(Memo),命令按钮(Button),单选按钮(GroupBox),复选按钮(CheckBox),列表框(ListBox),下拉式列表框(Comb

5、oBox),滚动条(ScrollBar),组框(GroupBox)和单项按钮组框(RadioGroup)。附加组件选项卡上的组件是Windows应用程序常用的专门控制元素,它包括14种组件。主要有:位图按钮(BitBtn),加速按钮(SpeedButton),格式编辑框(MaskEdit),字符网格(StringGrid),数据网格(dataGrid),图片框(Image),形状(Shape),和控制栏(ControlBar)。Win32组件选项卡上的组件是32位Windows应用程序的常用元素,它们具有32位应用程序的新特征,Win32组件选项卡共包括18种组件。分页面控制(PageCont

6、rol),图片列表(ImageList),多文本编辑器(RichEdit),列表视图框(ListView),树状目录视图框(TreeView),工具栏(ToolBar)和状CTGS-资料文件态栏StatusBarDataAccess和DataControl组件选项卡上的组件是用来设计数据库应用程序的。其中DataAccess组件选项卡上的组件是数据库应用程序用来与数据库建立连接的,它们也称为数据访问组件。而DataControl组件选项卡上的组件是用来与用户交互的,它们也称为数据感知组件。主要是:表(Table),查询(Query),数据源(DataSource),数据库导航器(DBNavig

7、ator),数据表格(DBGrid),数据库编辑框(DBEdit),数据库静态文本框(DBText),数据库列表框(DBListBox),数据库图片(DBImage)。Dialogs组件选项卡是由一些常用标准对话框组件组成的。主要完成打开文件,保存文件,查找,替换,打印,打印机设置等Windows标准的对话框功能2)对象查看ubiEctInqje匚torIchjprtTmpector|Cco£arl:TCooCai对象名|Ccnfiar1:TCodBaPrcptJfeeJEvem|pRpetherW产"|3、k4|JopjbQnCh就印EAnchorMOKakTec?OnC

8、liclp7IAuioScefalse。门c/用中DCMEWndEor掣g5ing匕、OgtJblClckBandM型rriijebimCbck属性nDocKDropBands|TCodBndv)WnriiNunelCnDiicOrof'BonfefV/idth0LrJ口nD*<jOv?rCoinDcBlnFacB事件OnEnOeckSCanstrairtsITSizeCcnstrairOnEixDragCUkmCnGriSiteinicDackSAeES1dOnMouseDowrDragCcrcrDragOnMouieMtjveDfagKnddkDockOrMgseUpDiag

9、Modedn*danusiC'nRe:iDflEdgeBardm>t4-e!lebl巾jOnSiaitDxlHdpelnnefesRatiedOnSlartDraQEdoeOuteresLowEiadOrtUrCociEnabledtrueFaedOrderfalseF«edSce田Fonti-alseITFont)HeightHelpComext33口二1IhtddsAll山tcwm对象名称用于选择和查看当前对象的名称,属性选项卡用于设置对象设计时的可见属性,件选项卡用来设置对象的事件句柄或者在代码编辑器中定位对象事件句柄Windows在主菜单中选择【File中的【N

10、ew】,在New对话框中选择Application,序OK。在菜单中选择【Run1中的【Run,或者直接按快捷菜单上的运行按钮,还有是按快捷键F9,就可以运行当前程序。四,编译程序在菜单中选择【Project】中的【buildprojectl】就可以把程序编译成为可以直接运行的.exe文件。但是这样编译而来的执行文件因为是动态连接到库函数,所以在没有装C+Builder的机上不能正常运行。要编译成静态连接库,可以在所有机上运行的程序,只要这样做:打开【project的Options,把packages®中的buildwithruntimepackaged的勾去掉,linker页中的u

11、sedynamicRtl'的勾去掉,再在compiler页中按release键。然后重新在【Project中的【buildprojectU就可以把程序编译成为可以直接运行的.exe文件。*J;ProjectOptions,保存程序在主菜单中选择【File中的【SaveProjectAd选项。再把所以文件(包括.cpp,.bak)都保存到一个目录下面。Open0P4nPt3Mt."ReounSaveAlShift+Ctrl+5CloseAllndud&Un*Prlrt.nExitIPEek3ejrthv(ew即。)ettftewAppIlLdtkmftewFormNe囚

12、FramiSflvcUnitIA*ri+FII写存春(1)|SaveQrf+SSaveAsSaveProjectAfLJD回国w回CkxbfdUlmpH.cppCfc<£dtt>.CQhtJolt-匚叩ClockEdiUcContjdi_ATL,wOodCdtOCortrollTW.cpp文件名尔)jW物保存:|c+Enilderunit(*.cpp)*-保存中|取消IIB助Qp加载C+Builder组件和弓|入ActiveX控件一.加载C+Builder组件C+Builder中有很多组件,其中有一大部分组件不是很常用的,所以在C+Builder中默认只加载了一部分常用的

13、组件,其他组件就要进行手工加载。或者从别的地方(如在网上下载)得到一些其他的组件包(*.bpl),要把它加载到C+Builder里面,就要用到加载组件。在C+Builder中加载组件是很方便的,你可以在主菜单【Project中按【Options,再选【packaged页,又或者在【Component中选【InstallPackaged,得到packages对话框(如下图)。如果你想要加载C+Builder中未加载的组件,只有在相应的组件包的前面打勾来选定。如果你要加载其他组件包,按【Add按钮,再在【AddDesignPackagd对话框中选定其组件包(*bpl)。之后按【OK】键,新加载的组

14、件就会出现在组件面板上。引入ActiveX众所周知,ActiveX控件因为其可以跨平台的特性使得ActiveX在很多环境下被广泛地使用7/78CTGS-资料文件在C+Builder中引用ActiveX很简单。具体制作是在主菜单【Component!中选【ImportActiveXControl】,弹出【ImportActiveX】的对话框,在对话框中选择你要引用的ActiveX控件。ActiveX控件包里面有多个ActiveX控件,如这里就包1 .控件类明,可以包括多个,表示这个TSkinForm,TskinButton和TSkinPanel2.组件在ComponentPalette(组件面板

15、)ActiveX的页面。在本例中,面我们把引入的中ActiveX控件放在3.cpp4.按【Install】键,ActiveX控件已经成功地引入到中C+Builder中,反正组件面板的ActiveX页编程入弟HelloWorld曾几何时,HelloWorld已经成为编程入门的第一课。不管是什么语言,都以一个打出HelloWorld字用的小程序作为第一个入门程序。我们现在学C+Builder也把这个程序作为学习C+Builder的第一个入门程序。相对C/C+等非可视化语言来说,C+Builder作为一种强大的可视化编程语言,那么它的入门级的HelloWorld程序也会非同凡响,而且还很简单易懂。好

16、,现在就开始我们的HelloWorld!一第一步要创建一个新的程序。在【File】菜单下选【New】,再在【NewItems对话框中选择Application,按OK键。或者在【File菜单下直接选择【NewApplication。加入相关组把要用到的组件从在组件面板(Palette)上拖到窗体(Form)上,摆好位置,并设置好大小。我们这里用到一个标签(Label)和两个命令按钮(Button)。再改变窗体的大小,使窗体看上去好看一点匕/5Pfoiecl1-倒为按钳(Button)SlanddfdjIWbJ?|serial0卡Accau|ADDhMvIrita.lJ-L国Q对茸j"

17、Label)Labell的Caption(标题)属性改为在属性查看器中修改各个组件的属性。下面的图示是把10/78CTGS-资料文件HelloWorld'。先点击窗体上的Labell组件,再在右边的属性查看器中选定Caption的项,输入'HelloWorld'。bjectInspector|Lbel1:TLabd二JProperties|Events|AlignslNone4AlignmenftaLeftJujtifyEl,AnchorsakLeftkTopAutoSrzetrueBiDiModebdLeUToRighi:CaptionHelloWorldColor2

18、clEtnFaceConstrainis(TSizeCon$trairCursorcrOefaultDjigCursorcrDrasDragKind北DragDragModedrnManudEnabledtrueFocusConlrolElFont(TFont)Height13HintLayoutUTopLeft48NameLabellParentBiDiMcdtrueParentCotortruePatentFoEHueParentshowHiqtrueTlAllshown当前选定对象名:Labell设置标题为HelloWorld编程入门第一课HelloWorld如上述所示,分别设置三个组件

19、的属性为:组件属性值:orm1CaptionHelloWorldLabellCaptionHelloWorldFont宋体,粗体,TButton1CaptionStartButton2CaptionExit卷FormlllelloWorIdExit双击Buttonl,弹出代码编辑窗口,在ButtonIClick事件中加入以下代码:Label1->Caption="HelloC+Builder!"Button2,在ButtonIClick事件中加入以下代码:Form1->Close();.HelloWorld程序五.编按快速栏上的运行按钮,或者按快捷键(F9)运行

20、HelloWorld程序按【Start按钮,结果如下按【Exit】退出程序到此为止,一个完整的HelloWorld程序就完成啦,是不是简单得不可思议呢?下面再说两个小技巧1更换标题栏上得图标更改窗体(Forml:)的Ico属性,把它改为你想要的图标文件(*Ico小题栏上的图标己经改变啦2 更改执行文件的图标在【Project】菜单下选【Options】,弹出【ProjectOption对话框,选择【Application】页,按【Loadicon键浏览选择自己想要的图标文件。按OK。按【Project菜单下的【BuildProject编译HelloWorld程序,得到可执行文件(.exe)。设

21、计菜单之一下拉用过Windows程序(最典型的就是Word和资源管理器或一般Windows软件)的人也许有个印象,就是Windows下的程序的菜单很丰富好用,而且还很灵活多变。事实上Windows下的程序的菜单大致可以分成两大类:第一类是下拉式的菜单,如主菜单(MainMenu)和右键菜单(PopMenu)第二类是功能按钮菜单,如工具菜单(ToolMenu)绝大多数的Windows程序都是采用下拉式的菜单,也有少部分的程序是使用功能按钮菜单。这两种菜单设计方式各有优缺点,前者的好处是设计方式简单、不占画面空间,可是缺点是必须一层一层地进入之功能选项,无法一次看到所有的功能选项。而后者的优点是可

22、以加入漂亮的图标、一次可以看到许多的选项,缺点是占用程序画面的空间。我们这里将分别推荐这两种菜单。一下拉式菜单下拉式菜单由菜单项和菜单命令构成,菜单项起到将功能分类存放的作用,如【文件】菜单项就是将针对文件制作的所有功能收容其下。而这些功能就体现为若干项菜单命令,菜单命令必须选定其所属菜单项后才出现在下拉菜单中。下拉式菜单包括主菜单(MainMenu)和右键菜单(PopMenu)。<L-Duldef5-Ptd>«.L1jtijEiE*5*thMtwB4tdMCmnnrtIpotetW苗/1口才雪0里5tmtijrd|AdAanriIV/irISvttamiDitiAccM

23、IDMiCortHkADOIMlMfiawIMid*fIInkJj-LH3口口,H白司色_白®域A国宣印厘濡题苣3_W盘_|KainlenU'PopH匕莉|.主菜单(MainMenu创建主菜单先启动一个新的工程File】->【NewApplication步骤2:从组件面板的【Standard页,拖拉MainMenu组件到Forml上。步骤3:双击Form1上的MainMenu,出现一个菜单编辑器。步骤4:接着点选第一项主菜单的位置,并且在属性Caption输入字符串文件,然后点选第一项主菜单下面的第一层子菜单,继续输入直到第一项主菜单的功能建立完毕,接着输入第二项主菜单

24、,如此类推。注意:(1)如果你想输入分割符,请把改2项的属性Caption设置为-“即可(2)如果你想加入快捷键,请在选项字符串中挑出某个字符,当作代表此项功能的热键(HotKey),在那个字符的前面加上&'z字符即可。当程序运行时,你可以同时按下【Alt键和热键字符来执行对应的功能选项。另外一种热键功能是直接设定每一个选项的属性ShotCut。步骤5:如果在第一层子菜单的选项想继续往下建立第二层菜单,请将鼠标移到第一层子菜单的第一项功能打开文件,然后按下鼠标右键,你将会发现右键菜单的第三项功能CreateSubmenu',点选它之后,打开文件选项下面就会多一层子菜单,

25、你再输入这份子菜单内的选项内容,若是想继续往下建立子菜单,如此类推。步骤6:整个菜单建立完成以后,每一项菜单功能的程序是写在OnClick事件内,而每一项菜单功能都会产生对应的OnClick事件。你可以将鼠标移到菜单编辑器上的菜单项上双击,会弹出程序编辑器,然后你可以在当前位置(事件程序)中输入你的程序代码。(2) 应用菜单模板和把菜单保存为菜单模板A.应用菜单模板:可以把C+Builder自带的菜单或者是自己保存的菜单直接引用。具体制作是:在菜单编辑器的快捷菜单点击【InsertFormTemplate!,再在【InsertTemplate1对话框中选择一个菜单,按【OK】键。,IFflrm

26、l.?MdinMenuJSelectMenu.,-inix|B.把菜单保存为菜单模板:把常用菜单保存为菜单模板,那么下次编辑菜单的时候就可以直接加载,方便省时。具体制作是:在菜单编辑器的快捷菜单点击【SaveToTemplate,弹出【SaveTemplate的对话框,输入菜单的描述(名字),按【OK】键。工日mp以eDescription:Form1MainMenu1EditMenuFileMemFileMenu(ForTa快削Example)HelpMenuHefpMenuExpandedMDIFrameMenuWindowMenu口KCancelHelp呢?2到此为止,一个像模像样的主菜

27、单就完成拉,是不是很不错PopMenu右键菜单(PopMenu)又叫弹出菜单,你可以先设计好一个PopMenu组件,然后指定给任何一个可视化组件,当用户将鼠标移到这些可视化组件上,按下右键,就会弹出一个菜单,这个菜单就是PopMenu组件,下面是建立PopMenu菜单的步骤:步骤1:先从组件面板的【Standard】页拖拉PopMenu组件到Forml上步骤2:建立菜单的内容和实现功能的事件程序和主菜单一样,请参考上一节c请看下图:PuMenu组件r设计菜单之二一一功能按钮菜单Windows下的程序的菜单大致可以分成两大类:第一类是下拉式的菜单,如主菜单(MainMenu)和右键菜单(PopM

28、enu)。第二类是功能按钮菜单,如工具菜单(ToolMenu)。和菜单一样,功能按钮菜单已经成为Windows应用程序地一个标准配置,使用它可以进一步增强应用程序的菜单桌面,一般来说,功能按钮菜单和下来菜单密不可分。功能按钮菜单中含有功能按钮,功能是对于应用程序中最常用的命令的快速访问。许多功能按钮菜单我们已经屡见不鲜,如下面的IE的功能按钮菜单。Li'tX)|J(OT,ar.在C+Builder中,制作一个简单的功能按钮菜单只要用到功能按钮控件(TToolBar)和一个图像列表控件(TImageList)相配合就可以实现。一般需要四个步骤:(1)在TLmageList控件中插入合适的

29、图像(2)把TToolBar控件的Images属性设置为TlmageList(3) 通过单击鼠标右键为TToolBar添加TButton,并通过属性页来定制。(4) )在TToolBarClick事件中加入相关制作。制作IE风格的功能按钮菜单则要再使用TCoolBar或者TControlBar控件,一共有三种方法,我们现在就配合实例讲解这三种制作IE风格的功能按钮菜单的方法。.TCoolBarTToolBarTImageList步骤一:新建一个工程,在窗体(Form)中加入一个TCoolBar和一个TImageList控件。然后在TCoolbar上力口入一个TToolBar控件。把TCoolb

30、ar的Align属性设置为alTop。调整好TToolBar的高度,再把TToolBar和TCoolBar控件的AutoSize属性都设置为true。步骤二:用鼠标右键单击TImagelist控件,打开ImageListEditor'窗口,添加对应的copy,cutpaste择NewButton'来插入分割条。步骤三:在TToolBar控件上单击鼠标右键,在弹出的菜单中选TButton,选择NewSeperator来插入NewButtcriNewSeparatorAligntoGridBringtoFront'SendtoBackReverttoInherited步骤四

31、:将TToolBar控件的Images的属性设置为ImageList1,则TImageList控件中的图标立刻出现在工具按钮菜单中。步骤五:用鼠标双击功能按钮菜单中的任意一个按钮,就可以为这个按钮的事件响应编写处理代码了。.二.TControlBar+TToolbar+TImageList这种方法和以上的方法大同小异,只是把TCoolBar换成TControlBar就可以拉,这里不累赘说明。下图是其效果。把下拉式菜单放到功能按钮菜单上这是IE中最常用的菜单,在C+Builder可以轻易实现步骤一:在窗体(Form)上放置一个TMainMenu控件,并设置好内容CTGS-资料文件步骤二:设置Tf

32、orm的Menu属性为空。步骤三:放置一个TControlbar,再放置一个TToolbar在TControlbar上面.步骤四:设置TToolBar的ShowCaptions属性为true。步骤五:在TToolBar上增加几个TToolButton,修改其caption模拟主菜单的样子。步骤六将TToolBar的grouped属性设置成trueo步骤七设置每个TToolButton的menuitem对应MainMenu的主菜单项。设置TToolBar的flat属性为true运行程序,结果如下,就得到了一个跟IE一样的在功能按钮菜单上的下来式菜单。这个在功能按钮菜单中的下拉式菜单确实很Cool

33、'吧?好,到此为止,相信读者对C+Builder的菜单设计(包括下拉式菜单和功能按钮菜单)有一定了解,这有助于我们进一步设计出更漂亮实用的用户桌面。开发可Dockable的工具栏和视窗在Windows视窗系统中,可Dockable的工具栏被广泛运用在很多软件和程序当中。可Dockable,即dock功能。所谓dock功能就是你可以把某些工具栏和视窗与其他工具栏或视窗结合同在一个工具栏或视窗。C+Builder的IDE所包含的工具栏以及视窗就具有dock功能。如下图所示。f口才乳*由Euft5npeett加加电0to重二到mN世心”感小必耳4器唱力K口FX3港工具栏的dock功能不仅使工

34、具栏更灵活,使使用者可以随心所欲的按照自己习惯和喜欢的方式组合、摆放工具栏,而且使制作桌面更美观在C+Builder中开发这种具有dock功能的工具栏和视窗可以说是轻而易举的。好,现在我们就开始自己动手开发可Dockable的工具栏和视窗。Let'sgo!我们可以利用C+Builder开发出具有dock功能的应用程序。在C+Builder中,所以可视化的VCL组件都支持dock功能。这里可视化VCL组件是指所有继承自TControl以及TwinControl的VCL组件。基本上,要进行dock动作至少需要两个组件,一个被附着的docksite组件,另一个则是附在docksite上的组件

35、,C+Builder所提供的可视化组件只有继承自TwinControl的VCL组件才具有docksite功能,而只要是继承自TControl的VCL组件则具有附着在docksite的功能。如果你想希望某个继承自TwinControl的组件具有docksite功能,只要把属性DockSite设置为true即可。如果你希望某个继承自TControl的组件附着在docksite上,只要把属性DragSite设置为dkDock,属性DragMode设置为dmAutomatic即可。但程序运行的时候,你就可以利用鼠标把后者组件拖到前者组件上,后者就会自动附着在前者上,完成dock动作。.下面是以两个实际

36、例子说明在C+Builder轻松开发可Dockable的视窗和工具栏。一开发可Dockable的视窗步骤二:在组件面板上的Standard页,拖一个Tpanel组件到Form1上,然后把Tpanel1的25/78CTGS-资料文件Align的属性设为alTop,并且把属性DockSite设置为true步骤三:在组件面板上的Additional页,拖三个Tshape组件到Form1上,并且把着三个dmAutomatic。Tshape组件的属性DragKind设置为dkDock,属性DragMode设置为步骤四:运行程序,你就可以利用鼠标把TshapeMdock在Tpanel组件上开发可Docka

37、ble步骤步骤二:下按照上一篇的方法用拉TmainMenu+TcontrolBar+TToolBar创建一个位于工具栏中的步骤三:接着把Tcontrolbar的属性DockSite设置为true,把TToolBar的属性DragKind设置为dkDock,属性DragMode设置为dmAutomatic。步骤四:运行程序,得到一个具有dock功能的工具栏,你可以把工具栏停靠在窗体(Form1)的上面,也可以把它拖出来浮动于窗体之上。如下图所示:经学会了如何开发具有dock功能的应用程序。它使使用者可以随心所欲地组合和摆放工具栏,又可以使程序桌面更美观。.创建多文档桌面(MDI)程序多文档桌面(

38、MultipleDocumentInterface,MDI)是在一个应用程序中能够同时处理两个或者更多个窗体的桌面形式。例如常见的MicrosoftWord这个排版编辑软件就可以同时编辑多篇文章,因此它是一个典型的多文档桌面的应用程序。MDI应用程序的多窗体特性使用户可以在同一个工作区域内对多个文档进行观察和数据交换,以便工作的协调和高效地进行。MDI的工作区域分为主窗体(MDI)和子窗体(Child)。主窗体是程序运行的基本环境,也是生成子窗体的基础,它通常不对用户的文档进行处理。主窗体以外就是子窗体,每个子窗体负责处理一个用户得文档。这些文档可以是相同得文件格式,也可以是不同的文件格式。C

39、+Builder提供了一整套设计MDI应用程序的组件,让你很容易、快速地开发一个MDI的应用程序。设计开发一个MDI程序一般分三个步骤:创建MDI主窗创建MDI子窗在MDI主窗体和子窗体中加入代码我们现在就以开发一个简单的多文档桌面的文字处理应用程序为例子,按以上三个步骤一步27/78步讲述如何开发一个MDI应用程序。.一创建MDI主窗体在MDI应用程序中,主窗体为应用文档提供了一个工作平台,所有的子窗体都在主窗体中打开和工作,同时主窗体也是应用程序的启动窗体,因此,创建主窗体是创建MDI应用程序的第一1 .新建一个工程,把Forml的caption属性和name属性设置为MDIFrm,并把F

40、ormStyle属性设置为fsMDIForm。2 .选择【Project!菜单下的【Options】命令才T开【ProjectOption对话框,在【Forms】标签页中的MainForm组合框中选择所创建的主窗体名Form1,将该窗体设置为启动窗体。3 .在主窗体中加入一个主菜单控件(MainMenu),和一个打开文件对话框控件(OpenDialog)。4在主菜单中添加菜单项。5.打开文件对话框的过滤编辑器,添加以下内容创建MDI当MDI应用程序的主窗体创建之后,就可以再创建新的窗体作为子窗体,还可以通过该窗体模板创建多个子窗体的实例,最后还可以在子窗体上进行编辑制作以满足要求1.第一步使用

41、File菜单中的【New】命令创建一个新的窗体,将其caption属性和name属设置为ChildFrm。2.然后将该窗体的createForms列表框中的该FormStyle属性设置fsMDIChild,再在【Project|Options】对话11中将Auto-ChildFrm窗体名移到Availableforms中,这样程序启动时就不会自动创建窗体。3在子窗体中添加控件并设置属性4在主菜单中添加菜单项5.打开文件对话框的过滤编辑器,添加以下内容在主窗体和子窗体中加入代码1.添加主窗体的事件代码CTGS-资料文件(1)在菜单【File|IncludeUnitHdr】中把子窗体的头文件包含进

42、主窗体,以便于主窗体对子窗体进行访问(/$C+Buiider5-Projectl窗体的头文含进主窗体(2)菜单项【File|New用于按照ChildFrm窗体模板新建一个子窗体void_fastcallTMDIFrm:New1Click(TObject*Sender)TChildFrm*NewChildFrm=newTChildFrm(this);NewChildFrm->Caption=NewChildFrm;(3)菜单项【File|Open用于新建一个ChildFrm窗体并将已有的文件的内容添加到此窗体中。void_fastcallTMDIFrm:Open1Click(TObject

43、*Sender)if(OpenDialog1->Execute()TChildFrmCTGS-资料文件*NewChildFrm=newTChildFrm(this);NewChildFrm->RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);NewChildFrm->Caption=ExtractFileName(OpenDialog1->FileName);.21)在菜单【在菜单【File|IncludeUnitHdr】中把主窗体的头文件包含进子窗体,以便于子窗体对窗体的菜单项代码void_f

44、astcallTChildFrm:New1Click(TObject*Sender)MDIFrm->New1Click(Sender);/新建文件,可以直接调用主窗体事件处理函数voidfastcallTChildFrm:Open1Click(TObject*Sender)MDIFrm->Open1Click(Sender);/打开文件,可以直接调用主窗体事件处理函数void_fastcallTChildFrm:Save1Click(TObject*Sender)if(SaveDialog1->Execute()容保RichEdit1->Lines->SaveTo

45、File(SaveDialog1->FileName+".txt");/把RichEdit的/void_fastcallTChildFrm:Copy1Click(TObject*Sender)RichEdit1->CopyToClipboard();/把RichEdit中选中的内容拷贝到剪切板void_fastcallTChildFrm:Cut1Click(TObject*Sender)RichEdit1->CutToClipboard();/把RichEdit中选中的内容剪切到剪切板void_fastcallTChildFrm:Paste1Click(T

46、Object*Sender)RichEdit1->PasteFromClipboard();/把剪切板中的内容粘贴到RichEdit的当前位置MDI应用程序在缺省的情况下,执行关闭制作时并不真正关闭子窗口,而仅仅是最小化它。因此子窗口关闭时,要第一步设置其Action属性。void_fastcallTChildFrm:FormClose(TObject*Sender,TCloseAction&Action)Action=caFree;/把它的Action设置为caFree.再写【File】菜单的【Close】命令的处理函数void_fastcallTChildFrm:Close1

47、Click(TObject*Sender)CTGS-资料文件MDIFrm->ActiveMDIChild->Close();关闭当前子窗口最后编译运行程序,一个功能简单的文字处理的MDI应用程序就搞定拉。j.MDIFrrn-NewChiidFrm12sl海Ejle的I:二dlX多文档界面(MultipleDocumentInterface*MDI)是在一"M2用程序中能够同时处理两个或看更多个窗体的界面形式.例如常见的MicroSoitWord这个排版编辑软件就可以同时编辑多篇文章,因此它是一个典型的多文档界面的应用程序.MDI应用程序的多窗体特性使用户可以在同一个工作区

48、域内时多个文档进行明察和敬据交换,以便工作的协调和高效地进行.:MD1的工作区域分为主窗体(MDI)和子窗体(Child).主窗体是程序运行的基本环境,也是生成子窗体的基础,它通常不对用户的文档进行处理,主窗体以就是子曾体,每个子窗体负责处理一个用户得文档,这些文档可以是相同得文件格式F也可以是不同的文件格式.C+BuiMer提供了一整套设计MDI应用程序的组件,让你很容易,快速地开发一个MDI的应用程序.设计开发一个MX应用程序一般分三个步骐,L创建MDI主窗体:2.创建MDI子窗体:尔在MDI主窗体和子窗体中加入代码.提示信息框MessageBox应用程序中的提示信息处理程序是非常出重要的

49、部分,用户要知道他输入的资料到底正不正确,或者是应用程序有一些提示信息要告诉用户,都必须通过提示信息处理程序来显示适当的信息,让用户了解下一步该如何配置。提示信息有很多种类,包括警告,不对,提示,确认,重试等。不同种类的提示信息框适合用在各种不同的情况在C+Builder中开发提示信息框只须调用MessageBox这个信息提示框函数就行,下面就是这int_fastcallMessageBox(constcharText,/提示信息框的内容constchar*Caption,提示信息框的标题intFlags);/提示信息框参数Flags的值是用来标志提示信息框的类别的,下面是一些常用的类别:参数

50、值样式意义MB_ICONWARNING含图标、固定按钮警告信息框MB_ICONQUESTION含图标、固定按钮疑问信息框MB_ICONERROR含图标、固定按钮/、对信息框MB_ICONASTERISK含图标、固定按钮提示信息框MB_HELP不含图标、可改变按钮说明信息框MB_OK不含图标、可改变按钮提示信息框MB_OKCANCEL不含图标、可改变按钮确认信息框MB_RETRYCANCEL不含图标、可改变按钮重试信息框MB_YESNO不含图标、可改变按钮是否信息框MB_YESNOCANCEL不含图标、可改变按钮是否取消信息框从上表可以看出来,提示信息框的类别可以分成含图标和不含图标,含图标的意

51、思就是指提示信息框上会有代表意义的图形,不过这类型的提示信息框的按钮都是固定的,都是【确定】按钮,不能增加也不能省略。不含图标的提示信息框,虽然没有对应的图形显示在提示信息框上,可是你却可以在这种类型的提示信息框内,加入各种组合的按钮,用于各种不同的情况。MessageBox函数会返回一个整数值,这个整数值代表用户刚刚点击提示信息框上的哪个按钮,每个返回值的代表意义在下表:返回值数值意义IDOK1确定IDCANCEL2取消IDABORT3中断IDRETRY4重试IDIGNORE5忽略IDYES6是IDNO7否下面是提示信框的示范程序:1.警告信息框Application->Message

52、Box("警告信息框","警告信息框”,MB_ICONWARNING);2Appl三警告信息框厂谢;片7JIcation->Messa(疑问信息框jeBox("疑问信息框","疑问信息框”,MB_ICONQUESTION);Application->MessageBox("息框",",MB_ICONERROR);Application->MessageBox("框","提,MB_ICONASTERISK);息框”,MB_HELP);Application->MessageBox("Application->MessageBox(",MB_OK);息框","确,MB_OKCANCEL);Application->MessageBox("8框","重,MB_RETRYCANCEL);Application->MessageBox("是否信框”,MB_YESNO);Application->MessageBox("10Application->MessageBox("是否取消信息框","是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论