


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.3窗体的更多细节使用ide创建一个窗体的同时,c+builder会自动地通过在winmain ()函数中加入代 码來在内存中创建窗体。这也是一般所需的方式,可以不必去改变。也就是说,在整个程序 范围内主窗口是一直存在的,所以为主窗口创建窗体吋,可以不必改变c+builder的缺省 方式。不过,你可能不希望在程序运行时,所有应用程序的窗体都驻留在内存屮,若不希望应用 程序的对话框同时留在内存中,可以在需要的时候动态地创建它们。窗体可分为模态(modal)和非模态(modeless)两类,模态窗体指的是用户在切换到其 他窗体z前需与z交互的窗体(例如,对话框就要求用户的输入)。非模态窗体是指-
2、直显 示的窗口,直到用户关闭或将其最小化,或者是被其他窗口盖住。4.3.1控制窗体何时驻留内存缺省时c+builder会通过在应用程序的winmain()函数中加入下列代码,自动地在内存中 创建应用程序主窗体。application ->createform(_classid(tmainfrm),&mainfrm);这个函数创建了一个与窗体同名的全局变呈:,应用程序中的每个窗体都对应一个全局变呈:, 这个变量是指向窗体类的实例的指针,并在程序运行的同用于引用窗体,所有包含窗体头文 件(.h)的源代码(.cpp)文件都可以通过这个变量来访问窗体。因为窗体被加入到winmain ()
3、函数中,所以当程序一激活,窗体就会出现,同时在整 个应用程序运行时都驻留在内存中。1. 显示自动生成的窗体假如选择在程序启动时创建窗体,但想在稍后再显示它,这时町在窗体事件处理程序中用 show modal方法来显示一个已存在于内存中的窗体。在这种情况下,由于窗体已存在于内存屮,故不用再创建另一个实例或析构那个实例。2. 动态创建窗体冇时不希望应用程序中的所冇窗体都驻留在内存中,为减少程序载入时所需的内存数,可 以在需要使用某些窗休时才创建它们。例如,对话框就只在用户需和它交互时才需出现在内 存中。为在运行时不同阶段使用ide创建窗体:1)从组件栏中选择filenewform菜单项以显示新窗体
4、。2)从projcctoptionsforms页中的自动创建的窗体列表中,将该窗体删除。这也就是从 winmain ()函数屮删除窗体的调用,也可自行从winmain ()函数屮删除下而这一行:3)需要调用窗体时,对于非模态窗体可使用show方法,对于模态窗体可使用showmodal 方法。上窗体的事件处理程序必须创建结果窗体的实例,并负责删除已调川结果窗体的方式之 一是使用全局变量,如下所示。注$ resultsform是一个模态窗体,处理程序将使用 showmodal 方法。例中事件处理程序会在窗体关闭z后删除它,因此若需要在应用程序的其他地方使用 resultsform,就需要使用new
5、重新创建它,若窗体是使用show方法显示的,则不能在文 件处理程序中删除它,因为show需在窗休是打开时返回。注重使川new操作符创建窗体时,要确保该窗体不在projectoptionsforms页的自动创建 窗体的列表屮,确切地说,假如创建一个窗体而没行从自动创建窗体列表中删除同名的窗体, 则c+builder会在启动时创建窗体,同时事件处理程序会创建一个新的实例,并会重载对 门创建实例的引用,门动创建的实例虽存在,但m用程序无法再访问到它。而当事件处理程 序结束时,全局变量不再指向一个有效窗体,所有对该全局变量的调用都町能会造成应用程 序崩溃。3. 创建窗口之类的非模态窗体只要窗体仍在使用
6、,就必须保证非模态窗体的引用变量的存在,也就是说这此变量必须有 全局范围,人多数情况卜,必须使用窗体创建吋牛:成的全局变量(变量名和窗体的name属 性相同),假如应用程序需要窗体的额外的实例,必须为每个实例声明单独的金局变量。4. 使用局部变量创建窗体实例创建模态窗体个别实例的较安全方法是在事件处理程序中使川局部变量作为新实例的引 用。假如使用局部变最,就可以不必关心resultsform是否为白动创建的了,事件处理程序 的代码不会引用全局窗体变量。例如:可以注重在这个事件处理程序屮没有使用窗体的全局实例。应用程序一般使用窗体的全局 实例。不过,若需要模态窗体的新实例。或是在应用程序的个别的块(例如某一个函数)小 使用窗体。使用局部实例则是最安全有效的方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025护理人员用工合同(示范合同)
- 国际税收协定对跨境投资的影响研究论文
- 塞苏陀语的语言演变与语言接触论文
- 2025年03月江西吉安市吉州区机关事务中心公车平台驾驶员面向社会公开招聘1人笔试历年参考题库考点剖析附解题思路及答案详解
- 《2025如何制定合同期限》
- 2025-2030组合仪表变压器行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030精油行业市场风险投资及运作模式与投融资研究报告
- 2025-2030管道运输行业市场发展分析及前景趋势与投资研究报告
- 2025-2030童装产业市场发展分析及前景趋势与投资研究报告
- 2025-2030祛斑护肤品行业市场发展现状及竞争格局与投资研究报告
- 航海英文单词汇总
- 输配电行业发展变动趋势分析
- 液压与气压传动全书ppt课件汇总(完整版)
- DB62∕T 25-3103-2015 公路隧道防火涂料施工质量验收规程
- pantone色卡电子版U面
- 教学课件:《特种加工(第6版)
- 《水产动物营养与饲料学》课件第6课-能量营养
- 合伙合作经营协议书-二人
- 人教版一年级下册数学 6.100以内数的组成专项卷
- 2019版外研社高中英语选择性必修二单词表
- 建坐标系解立体几何(含解析)
评论
0/150
提交评论