



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ShowModal时,程序焦点固定在模式窗口中,不能转移,只有设置了ModalResult之后,模式窗口关闭,返回调用窗口Show就没有这个限制了orm1.showmodal属性if form1.showmodal:=mrok then这句话什么意思? 提问者:Baigle一下-二级最佳答案这个问题说来话长,且听我慢慢道来。首先,你仔细看一看,所有的命令按钮(不论是Button还是BitBtn)都有一个属性:ModalResult,该属性可以设置为mrOk 、mrCancel.等等,默认值是mrNone。平时,ModalResult属性没什么用处,但如果命令按钮放置到用showmodal显示(模态显示,一般用于显示对话框)的窗体上时,就大大的有用了。作用体现在:1、当设置命令按钮的ModalResult属性为mrOk、mrCancel.等时,程序运行后,单击该按钮,按钮所在的窗体会自动关闭,不用在OnClick事件中添加诸如Close;语句。2、当设置命令按钮的ModalResult属性为mrOk、mrCancel.等时,程序运行后,单击该按钮,按钮所在的窗体会自动关闭,同时将按钮的ModalResult属性值赋值给窗体的ModalResult属性(注意:任何窗体都有这个属性!)3、自动关闭上述窗体时,窗体的ModalResult属性又会自动传递给showmodal方法,作为该方法的返回值。所以说,showmodal方法的返回值总是与命令按钮的ModalResult属性相同。楼主的代码:if form1.showmodal=mrok then如果要通俗化一下,可以写成如下等价的代码:var r:TModalResult;.r:=form1.showmodal;if r=mrOK then . .很明显,根据showmodal方法的返回值,可以判断用户在对话框中,究竟是点击了OK按钮还是Cancel按钮,从而决定下一步的程序逻辑。窗体的常用事件:1.创建窗体时触发的事件: Oncreate事件:当窗体建立时首先触发oncreate事件。如果窗体位于autocreate列表框中,那么当应用程序加载时自动触发此事件。所有在oncreate事件响应函数中创建的对象都应该在ondestroy事件响应函数中释放。2.显示窗体时触发的事件 Onshow事件:当窗体建立后,就要显示此窗体,这是触发onshow事件。Onactive事件:当窗体显示后,此窗体被激活,拥有焦点,这时触发onactive事件。对于MDI应用程序的子窗体,只有当焦点从一子窗体转移到另一才子窗体时才出发onactive事件。Onresize事件:当窗体改变大小时触发该事件,这包括第一次显示。要注意的是,如果窗体是自动创建的,那么,当窗体下次显示时将不再触发onresize事件,因为该窗体的资源和属性值已经被保留,没有释放,直到该应用程序关闭为止。Onpaint事件:当窗体显示时最后触发的事件,还有每次需要重新绘制窗体时触发该事件。3.窗体显示期间出发的事件 Onclick事件:当用户单击窗体的空白区域或一失效的组件时触发此事件。实际上当触发该事件时,还触发了另外两个事件-onmousedown和onmouseup事件。 Ondblclick: Onkeydown: Onkeypress: Onpaint: Onresize:4.关闭窗体时触发的事件 Onclose事件:当窗体关闭时触发onclose事件。我们可以利用它来进行一些特殊的处理。Onclosequery事件:当用close方法或从窗体的系统菜单中选择“关闭”命令来关闭窗体时, 触发此事件。Onclosequery事件句柄(即响应函数)包含一布尔类型的canclose参量,由他来决定窗体是否可以关闭。Canclose的默认值为true,表示可以关闭窗体。可以利用onclosequery事件响应函数来询问用户是否真的想立刻关闭窗体。例如用户对某个文件做了修改又没有保存该文件,这时应该询问用户是否放弃修改与关闭窗体。例如:新建工程,在Foem1窗体上创建一命令按钮组件,命名为“关闭”,双击该按钮,创建它的onclick事件响应函数,加入代码:/-Void_fastcall TForm1:Button1Click(TObject *Sender) Close();/-然后创建窗体Form1的onclosequery事件响应函数:/-Void_fastcall TForm1:From1Query(TObject *Sender,bool&Canclose) If(MessageDlg(“是否真的要退出程序?”,mtConfirmation,TMsgDlgButton()mbOKInitialize(); Application-CreateForm(_classid(TForm1),&Form1); Application-CreateForm(_classid(TForm2),&Form2); Application-Run; catch(Exception &exception) Application-ShowException(&exception)return 0/- 从上面的代码可以看出,对于自动创建的窗体,C+Builder是在程序入口WinMain函数中调用CreateForm方法创建的,当然经过这样创建后窗体在应用程序运行期间都存在。常用控件:1.1.标签:用于显示字符串,通常显示的是文字说明信息。1.2.文本框:可以供用户输入数据,是显示和输入文本的主要机制 1.常用属性: (1)Text属性: 设置组件中显示的文本内容:Object-Text=字符串 2.常用方法和事件 (1)OnChange 事件 例如创建文本框Edit1 的OnChange事件响应函数,并加入如下所示的代码: /- Void _fastcall TForm1:Edit1Change(TObject *Sender) Edit2-Text=Edit-Text;/-编译代码并运行程序,在Edit1文本框输入“123”时,第二个文本框中也显示“123” 1.3命令按钮: 1常用属性: (1)ModalResult属性: 该属性决定此按钮是否或如何关闭它的父窗体(此窗体必须是模态窗体)。 当一个按钮被单击后,该组件的ModalResult属性被设置为此按钮的ModalResult属性的值。例如一个对话框中有一个“确定”按钮和一个“取消”按钮,我们只需要把它们的ModalResult属性分别设置为mrOk和mrCancel。在运行期间,单击“确定”按钮就会把对话框的ModalResult属性设置为mrOk,单击“取消”按钮就会把对话框的ModalResult属性设置为mrCancel,除非需要进一步的处理,否则根本无须为这两个按钮写OnClick事件响应函数代码。1.4复选框: 1.常用属性: (1)checked属性:CheckBox1-Checked=True 该属性显示复选框是否被选中。若checked属性值为false,表示此复选框处于选中状态,若checked的属性值为true,表示此复选框处于选中状态。 2.常用方法和事件: 复选框常用的事件是OnClick事件,当用户在一个复选框上单击鼠标时触发此事件。1.5组合框:有带向下箭头的方框,在程序运行时,按下此箭头就会下拉出一个列表框供用户选择项目。另外还可以在组合框上方的框中输入数据。 1.常用属性: (1)ItemIndex属性: 该属性显示了在组合框中哪个选项被选择了。 2.常用方法和事件: 组合框常用的方法是Clear方法和SelectAll方法。Clear方法用于清除组合框的内容,SelectAll方法用于选择在文本框中的所有文字。 常用事件是OnChange 事件,当组合框的文本内容发生变化时,触发此事件。1.6框架(Panel):框架的作用主要是用来区分一组组件,也就是让用户能够区分窗体中的各个选项,或者把几个单选按钮分成组,把不同种类的单选按钮分开。框架在实际使用时往往和其他组件一起使用。 要在框架中加入成员,必须先在窗体中加入一个框架组件,再在它的上面加入其他组件。如果在框架外面加入好组件之后再将其移动到框架中,那么该组件将不属于这个框架。 1.7图像框(TImage):组件用于在窗体的特殊位置上放置图形,图像信息。利用该组件的Picture属性指定显示在该组件中的位图、图标、图元文件或其他图形对象。 1常用属性: (1)Picture属性:该属性用于设置/返回图像框组件中的图像。在设计期间可以直接利用属性窗口指定一图像文件,运行期间可以通过Picture属性的LoadFromFile方法加载一图像文件。例如:/- Void _fastcall TForm1:Button1Click(TObject *Sender) Image1-Picture-LoadFormFile(“行政区划.bmp”);/-1.8计时器(TTimer):在设计期间是可见的,在运行期间它就隐藏起来,但是在后台每隔一段时间间隔,系统就会自动执行一次计时器事件。所谓时间间隔,指的是各计时器事件之间的时间,一般以毫秒为基本单位。因为计时器在1秒钟内最多产生18个事件,所以两个事件之间的时间间隔精确度不超过1/18秒。1.常用属性: (1)Enable属性:该属性决定计时器组件是否开始计时。若设置为true(默认值),表示启动计时器开始计时,否则,表示暂停计时器的使用。在需要启动计时器时再将Enable属性设置为true。 (2)Interval属性:该属性设置两个计时器事件之间的时间间隔。设置时以毫秒为单位,设置的范围是065535ms。若将Interval属性值设置为1000ms,即1s,则每隔1s就会执行一次计时器事件。2.常用方法和事件: 计时器的主要事件就是OnTimer事件,在每隔Interval指定的时间间隔就执行一次该事件响应函数中的代码。例子如下:在窗体Form1上加入两个标签组件分别为Label1和Label2,再加入一计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年企业级网络安全防护与能力提升托管服务合同
- 二零二五年文化产业园股权交割与投资合同
- 二零二五年度城市地下空间开发施工承包合同范本
- 2025年智能医疗康复设备租赁与定期保养服务合同模板
- 二零二五年度暂停某工程施工合同解除及后续处理函
- 二零二五年度加气站安全防护设施建设与技术指导合同
- 2025版环境风险评估与治理项目合同范本集
- 2025版高科技研发中心厂房抵押贷款合同范本
- 2025版房地产项目物业服务合同签约流程与质量监管
- 二零二五年度数字经济领域人才劳动合同协议
- 党群服务面试题目及答案
- 2025-2026秋季学年第一学期【英语】教研组工作计划:一路求索不停歇研思共进踏新程
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 高速天桥拆除方案(3篇)
- 第1课 鸦片战争 课件 历史统编版2024八年级上册
- 物业管理师职业技能竞赛理论知识试题题库(1000题)
- 2025年中国冷链物流行业投资前景分析、未来发展趋势研究报告(智研咨询发布)
- 2025年安徽省中考历史试卷真题(含答案)
- 特殊教育学校学生管理名师优质课赛课一等奖市公开课获奖课件
- 手术室医院感控制培训
- 广西壮族自治区公共场所卫生许可承诺书
评论
0/150
提交评论