版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 79第三章Delphi的窗体与组件教学要求:掌握窗体、编辑类组件、按钮类控件、列表类控件、分组类组件、时钟组件、菜单组件、工具栏组件和工具按钮、多选项卡的的属性、方法与事件,学会使用这些组件设计应用程序的界面。掌握ShoowMeessaage、ShoowMeessaageFFmt、MasssaggeDllg、MasssaggeDllgPoos、InpputBBox、InpputQQuerry对话话框函数数与对话话框过程程的特点点,并能能熟练应应用。熟熟悉公共共对话框框控件组组件的属属性,方方法、事事件及应应用。掌握创建新新窗体的的两种不不同的方方法及其其应用。掌握winnd
2、owws的模模式与非非模式窗窗体的概概念及应应用方法法。 掌握焦点的的含义,与与焦点相相关的属属性,应应用焦点点设计程程序的方方法。了解CreeateeMesssaggeDiialoog函数数的定义义与用法法、sppeeddbutttonn和文件件有关的的控件的的属性、方方法与事事件。从本章开始始,将介绍绍Dellphii 编程程的一些些基本方方法。通通过这一一部分的的学习,可可以了解解开发WWinddowss 环境境下应用用程序的的一些关关键技术术,并可可以方便便、快捷捷地开发发一般的的应用程程序。为了简化编编程工作作,Dellphii 提供供了许多多功能强强大的函函数和类类。其中中很重要要
3、的一部部分就是是组件类类。本章章将重点点介绍常常见组件件及其编编程应用用。现在深入普普及的WWinddowss操作系系统中,方方便快捷捷的人机机交互界界面主要要是通过过窗体和和对话框框实现的的。在DDelpphi中中,这些些窗体和和对话框框就是程程序设计计阶段的的窗体,Delphi的可视化设计工作就是在窗体中进行的。通常,窗体体中会有有文字输输入、滚滚动条、复复选框、单单选框、按按钮等一一系列组组件,通通过这些些直观易易懂的组组件,可可以方便便的实现现多种多多样的功功能。在在Dellphii中,这这些运行行期间出出现在窗窗体和对对话框中中的组件件称为可可视组件件。在窗窗体中,还还可以放放置一些
4、些运行期期间非可可视的组组件,对对应其它它的TCCompponeent子子类。这这些不可可视组件件集中地地实现了了一些特特殊的功功能。比比如,时时钟控制制等功能能。TCompponeent组组件类,所所有的组组件都是是由这个个类派生生来的。TConttroll子类(可可视组件件)可分分为两类类:窗体体组件和和图形组组件。窗体组件对对应TWWinCConttroll 子类类,是基基于系统统窗体的的可视组组件,具具有窗体体句柄,可作为为输入焦焦点或含含有其它它组件,例例如TEEditt组件、TTPannel组组件。图形组件对对应TGGrapphiccConntrool 子子类,没没有窗体体句柄,不
5、可作作为输入入焦点,也不能能含有其其它组件件,例如如Labbel 组件。图形组件比比窗体组组件使用用的资源源少,尤尤其在组组件数量量比较多多的情况况下最好好使用图图形组件件。组件件组的关关系如图图所示。窗体和组件件的关系系非常密密切。窗窗体就像像一个容容器,其其中包容容了可视视组件和和非可视视组件。窗窗体和组组件之间间除了具具有上述述的不同同点之外外,还具具有一些些相同点点。例如如,从面面向对象象编程的的角度来来看,所所有组件件都是TTCommponnentt 类派派生类的的一个对对象。窗窗体类(TFoorm)也是从从TCoompoonennt 类类派生的的,所以以可以将将窗体看看成一个个特殊
6、的的组件。有些组件也也具有窗窗体的“容器”属性,也也就是在在这些组组件中可可以放置置其它组组件,通通常这些些组件称称为容器器组件。例例如Tpannel 组件就就是一个个容器组组件,可可以在TTpannel组组件中放放置其他他组件。Delphhi 中中的所有有组件是是在可视视组件库库(Viisuaal CCompponeent Libbrarry,缩缩写为VVCL)中中封装的的。可视视组件库库是Deelphhi 中中非常重重要的一一部分,不不仅封装装了所有有组件对对应的类类,还封封装了一一些通用用的类。所所有的这这些类都都是由一一个基类类派生出出来的,也也就是TTObjjectt 类。了解解可视
7、组组件库对对于学习习组件、使使用Deelphhi 很很有帮助助。Delphhi 中中的主要要组件栏栏Standdardd标准Winndowws组件件、框架架、菜单单等Addittionnal一些专用的的Winndowws组件件Win32232位Wiindoows系系统中的的公用组组件Systeem进行系统操操作的组组件(包包括定时时器、多多媒体和和DDEE等)Data Acccesss操作数据库库的组件件,如访访问数据据库、表表格、查查询和报报表等Data Conntrools 进行数据库库控制的的组件BDEBORLAAND访访问数据据库的组组件ADO通过ActtiveeX DDataa Ob
8、bjeccts访访问数据据库的组组件InterrBasse 提供与InnterrBasse直接接联接的的组件MIDASS开发多层数数据库应应用程序序的组件件InterrnettExppresss 开发IntternnetEExprresss应用程程序(WWeb服服务器应应用程序序和客户户端多层层数据库库应用程程序)的组件件Interrnett 开发Webb服务的的应用程程序FastNNet提供Intternnet操操作的一一些组件件Decissionn Cuube 为应用程序序提供多多维数据据分析的的组件Dialoogs Windoows通通用对话话框组件件Win 33.1提供与Wiindoo
9、ws 3.11兼容的的一些组组件Samplles一些定制组组件的例例子Serveers通用COMM服务器器组件DELPHHI组件件常见属属性及说说明属性说明Alignn 设置组件对对齐(相相对于其其父容器器)Bordeersttylee 设置组件边边框形状状Captiion 设置组件标标题Ctl3dd 设置组件边边框是否否为3DD模式,若若BORRDERRSTYYLE设设置为BBSNOONE则则此属性性无效Colorr 设定组件背背景颜色色Cursoor 设定鼠标经经过组件件时光标标所显示示的形状状Enablled 设定组件是是否能使使用,当当设为FFALSSE时组组件会呈呈灰色Font 设定
10、组件内内文字的的字型、字字体大小小、颜色色等Heighht 设定组件高高度Helpcconttentt 用来为帮助助说明文文件中的的索引值值建立关关联Left 设定组件与与父组件件左边框框间的距距离Popuppmennu 设定鼠标右右键(弹弹出式)快快捷菜单单Taborrderr 设定组件在在按下TTAB键键后焦点点(FOOCUSS)移动动的顺序序Tabsttop 若设为FAALSEE,则按按TABB键后焦焦点并不不会在此此组件上上停留Top 设定组件与与父组件件上边框框间的距距离Visibble 设定组件是是否可见见,此属属性只在在执行时时起作用用Widthh 设定组件显显示宽度度DELPH
11、HI常见见事件及及说明事件说明Onchaangee 当组件有所所改变时时触发的的事件Oncliick 当在此组件件上按下下鼠标左左键时触触发的事事件Ondbllcliick 当在此组件件上双击击鼠标左左键时触触发的事事件Onentter 当焦点进入入此组件件时触发发的事件件Onexiit 当切换到其其它组件件使该组组件失去去焦点时时触发的的事件,但但当切换换到另一一窗体或或另一应应用程序序时此事事件不会会触发Onkeyydowwn 当在拥有焦焦点的组组件上按按下某个个键时触触发的事事件,按按键包括括所有的的英文、数数字键、方方向键、功功能键等等Onkeyypreess 当在拥有焦焦点的组组件上
12、按按下某个个键时触触发的事事件,但但按键只只包括所所有的英英文、数数字键、TAB、BACKSPACE、ENTER、ESCOnkeyyup 当使用者放放开键盘盘上的按按键时触触发的事事件,按按键看OONKEEYDOOWNOnmouuseddownn 当鼠标键在在某个组组件按下下时触发发的事件件(其参参数包括括哪个鼠鼠标键被被按下、是是否有特特殊键(CTRL、ALT、SHIFT)被按下以及鼠标当前的坐标)Onmouusemmovee 当鼠标在组组件内移移动时触触发的事事件Onmouuseuup 当鼠标键在在组件上上方放开开时所触触发的事事件Onpaiint 在组件需要要被重画画时触发发的事件件,此
13、时时可进行行自定义义画法窗体介绍窗体是编写写Dellphii程序的的工作底底稿区,凡凡是与用用户进行行交互的的程序都都得使用用窗体来来设计用用户界面面。在程程序运行行时,窗窗体实际际上就是是标准的的应用程程序主窗窗口、对对话框及及多文档档界面的的主窗口口。根据不同的的窗体类类型,WWinddowss环境中中的应用用程序可可以分为为下面的的三类:单文档界面面(SDDI)应应用程序序:这种应应用程序序同时只只能打开开一个文文档。例例如Wiindoows 系统附附件中的的“画图”程序,只只能同时时编辑一一个图像像文件。多文档界面面(MDDI)应应用程序序:一般这这种应用用程序具具有一个个父窗体体和多
14、个个子窗体体,可以以同时打打开多个个文档,分分别在多多个子窗窗体中显显示。例例如常用用的woord软软件,可可以同时时编辑多多个文档档。对话框应用用程序:这种应应用程序序的主界界面基于于一个对对话框类类型的窗窗体。例例如Wiindoows系系统附件件中的“磁盘扫扫描”程序。此外,有些些应用程程序在运运行期间间可以总总是显示示在桌面面的最前前端,例例如在WWinddowss中按下下系统热热键Cttrl+Altt+Deel,激激活的关关闭程序序窗体会会一直显显示在其其它应用用程序的的窗体之之上,除除非退出出该程序序。窗体由标题题栏、工工作区和和边界组组成。窗体的属性性窗体的属性性是与其其外观密密切
15、相关关的。对对于组件件的属性性除必要要进行设设定的外外,一般般使用它它的默认认值。1窗体的的位置与与大小窗体的位置置与大小小是由属属性Leftt、Topp、Widdth、Heiightt、CliienttWiddth、CliienttHeiightt、Possitiion、Aliign来来确定的的。一般来说前前四个属属性可以以定义控控件在它它们所在在的容器器组件中中的物理理位置和和大小,在在Dellphii中的可可见组件件都有这这四个属属性,而而不可见见组件没没有这些些属性。Heigtth属性性和Wiidthh属性分分别指定定窗体的的高度和和窗体的的宽度 窗体的左上上角相对对于父容容器(屏屏幕
16、)的的坐标:Topp属性和和Lefft属性性 Alignn属性用用来设定定窗体相相对与父父容器(屏屏幕)的的对齐方方式,该该属性为为枚举类类型,取取值如下下取值含义alBotttonn窗体位于屏屏幕的下下方,宽宽度为整整个屏幕幕宽(WWidtth属性性失效),高高度为HHeiggth属属性值alCliientt窗体占据屏屏幕的中中部,WWidtth与Heiightt属性失失效alLefft窗体位于屏屏幕的左左方,宽宽度为WWidtth属性性值,高高度为整整个屏幕幕(Heeigtth属性性失效)alNonneWidthh与Heiightt属性有有效,以以及其他他属性有有效alRigght窗体位于
17、屏屏幕的右右方,宽宽度为WWidtth属性性值,高高度为整整个屏幕幕(Heeigtth属性性失效)alTopp窗体位于屏屏幕的上上方,宽宽度为整整个屏幕幕宽(WWidtth属性性失效),高高度为HHeiggth属属性值Posittionn属性:在应用用程序运运行阶段段,确定定窗口在在屏幕上上的位置置。只有有当Allignn属性为为alNNonee时才有有效,属性为为枚举类类型,取取值如下下:取值含义poDessignned窗体运行时时显示的的位置和和大小与与设计相相同poDeffaullt窗体每次显显示时,与与上次比比较,往往右下角角移动了了一些位位置;窗窗体的高高度和宽宽度由WWinddow
18、ss 决定定poDeffaulltPoosOnnly窗体以设计计期间的的大小显显示,窗窗体显示示的位置置较上次次向右下下角移动动了一些些。如果果窗体以以设计时时的大小小不可以以在屏幕幕上完全全显示,就就移动到到屏幕的的左上角角显示。poDeffaulltSiizeOOnlyy窗体以设计计期间的的位置显显示,窗窗体的大大小由WWinddowss 决定定poScrreennCennterr窗口尺寸由由窗体的的Heiightt和Widdth属属性参数数确定,但但是窗口口位于屏屏幕的中中央poDessktoopCeenteer窗体以设计计期间的的大小显显示;窗窗体显示示的位置置总在屏屏幕的中中间。2.
19、 窗体体的名称称与标题题Captiion属属性确定定了窗体体的标题题,当窗窗体最小小化后,Caption属性值为图标的文本说明。通常,对于于多文档档界面(MDII)应用用程序,当当主框架架窗体中中的子窗窗体最大大化显示示的时候候,应用用程序的的标题栏栏中显示示的内容容为“-”;当子子窗体非非最大化化窗体显显示的时时候,主主框架窗窗体中只只显示应应用程序序的名称称,子窗窗体有自自己的标标题栏,其其中显示示该窗体体打开的的文件名名。所以以,当窗窗体的显显示方式式发生了了改变后后,应该该立即改改变标题题栏中的的内容。默认情况下下Namme属性性与Caaptiion属属性值相相同,但但不能混混淆两者者
20、的作用用。Naame属属性是窗窗体对象象的变量量名,当当工程中中有多个个窗体时时,每个个窗体的的名称必必须是唯唯一的,即即其名称称不能相相同。属属性Naame 用来标标志工程程中的窗窗体。通常,应该该在系统统开发的的设计阶阶段就将将整个工工程中所所有窗体体的名称称确定,然然后在编编程阶段段根据设设计文档档修改窗窗体的NNamee 属性性。不能能在程序序运行期期间通过过代码修修改Naame属属性。3.窗体的的外观与与风格与窗体的外外观与样样式有关关的属性性有:BorrderrIcoons、BorrderrStyyle、ForrmSttylee、WinndowwStyyle、HorrzSccrol
21、llBaar和 VeertSScroollBBar属属性等。FormSStylle属性性可以分分别实现现各种类类型的应应用程序序,取值值如下:取值含义FsNorrmall普通的窗体体fsMDIIChiildMDI(多多文档窗窗体)的子窗窗体fsMDIIForrmMDI(多多文档窗窗体)的主窗窗体fsStaayOnnTopp位于桌面顶顶层的窗窗体BordeerIcconss属性用来来指定窗窗体标题题栏上的的图标,该属性性为集合合类型,取取值如下下:取值含义biSysstemmMennu在窗体的标标题栏中中显示系系统菜单单biMinnimiize在窗体的标标题栏中中显示最最小化按按钮biMaxxi
22、miize在窗体的标标题栏中中显示最最大化按按钮biHellp在窗体的标标题栏中中显示帮帮助按钮钮, 只有有窗体的的BorrderrStyyle 属性设设置为bbsDiialoog或者者窗体属属性BoordeerIcconss 中不不包括bbiMiinimmizee 和biMMaxiimizze 时时,biiHellp 设设置才有有效。确定窗体的的边界类类型:BBordderSStylle属性性,该属性性为枚举举类型,取取值如下下取值含义bsDiaalogg标准对话框框边框,边框大小不可以改变。bsSinnglee单线框,大大小不可可以改变变bsNonne窗体没有边边框,也也没有标标题栏,边边
23、界的大大小不可可以改变变, 边框不不能移动动。bsSizzeabble边框可移动动大小可可变的标标准窗体体bsTooolWiindoow风格与bssSinnglee 相同同,只是是标题栏栏比较小小。另外外,对于于这种风风格的窗窗体,属性BBordderIIconns 中中设置的的biMMiniimizze 和和biMMaxiimizze 并并不起作作用。bsSizzeTooolWWin风格与bssSizzeabble 相同,只只是标题题栏比较较小。对对于这种种风格的的窗体,属属性BoordeerIcconss 中设设置的bbiMiinimmizee 和biMMaxiimzee 也不不起作用用。
24、注意:窗体体属性BBordderIIconns的设设置与属属性BoordeerSttylee的设置置可能会会发生互互斥,例例如属性性BorrderrIcoons的的biMMiniimizze和biMMaxiimizze会与与属性BBordderSStylle的bsDiialoog冲突突,属性性BorrderrIcoons的的biHHelpp会与属属性BoordeerSttylee的bsSSizeeablle冲突突。设置窗体的的显示状状态:WWinddowSStylle属性性,该属性性为枚举举类型,取取值如下下取值含义wsNorrmall窗体运行时时显示的的位置和和大小与与设计相相同wsMinn
25、imaal窗体运行时时,最小小化wsMaxximiizedd窗体运行时时,最大大化4Fonnt 属属性属性Fonnt 用用来设置置窗体中中文字的的字体、颜颜色和字字号等,包含CColoor、NNamee、Siize或或Styyle等等属性。如果将窗体体中组件件的属性性ParrenttFonnt 设设置为TTruee,那么么该组件件的字体体设置就就与其父父级窗体体的字体体设置完完全一样样了。在程序设计计的时候候,为了了保持整整个系统统风格的的统一,应应该使工工程中的的窗体风风格尽量量一致,可可以先设设置窗体体的Foont 属性,然然后将窗窗体中所所有组件件的PaarenntFoont 属性设设置
26、为TTruee 就可可以了。一一般不要要单个地地对窗体体中的组组件进行行Fonnt 属属性的设设置。5Icoon 属属性属性Icoon 用用来指定定标题栏栏中显示示的图标标。单击对象编编辑器IIconn 属性性右边的的省略号号按钮,在在弹出的的Piccturre EEdittor 对话框框中点击击Loaad按钮钮,就可可以装入入一个制制作好的的图标。使用Dellphii 自带带的工具具Imaage Ediitorr 可以以方便地地制作图图标。通通过菜单单Toools/ Immagee Edditoor可运运行Immagee Edditoor 编编辑制作作图标。如果需要动动态地改改变窗体体For
27、rm1 中的图图标,可可以调用用下面的的过程:Form11.Iccon.LoaadFrromFFilee(IIconn1.IICO);其中Icoon1.ICOO是要在在窗体FFormm1标题题栏中显显示的图图标文件件名。窗体的事件件窗体的事件件很多,常常用事件件:1Creeatee事件和和Desstrooy事件件当创建窗体体时,就就产生CCreaate事事件;当释放窗体体所占用用的空间间时,就就会产生生Desstrooy事件件。这两个事件件过程的的基本语语法形式式为:proceedurre TTForrm1.ForrmCrreatte(SSendder: TOObjeect);proceedu
28、rre TTForrm1.ForrmDeestrroy(Sennderr: TTObjjectt); 应用:通常整个程程序的初初始化工工作放在在主窗体体的Crreatte事件件中进行行处理,比比如读入入将要用用到的图图形资源源等,而而这些资资源的释释放则放放在主窗窗体的DDesttroyy事件中中进行处处理。例例如:proceedurre TTForrm1.ForrmCrreatte(SSendder: TOObjeect);beginn forrm1.Capptioon:=欢迎迎使用!; forrm1.Collor:=cllredd; forrm1.Fonnt.CColoor:=clbblu
29、ee; forrm1.Fonnt.NNamee:=隶书; forrm1.Fonnt.SSizee:=220; forrm1.Fonnt.SStylle:=fssbolld,ffsunnderrlinne,ffsittaliic; butttonn1.CCapttionn:=请按键键; butttonn1.LLeftt:=1130; butttonn1.TTop:=5000; butttonn1.HHeigght:=500; butttonn1.WWidtth:=1000;end;当创建窗体体并显示示时,下下列事件件按顺序序出现:Creeatee、Shoow、Paiint、Acttivaate。
30、参参见表11-1442Shoow和Hidde事件件Show事事件和HHidee事件分分别在窗窗体显示示与隐藏藏时被触触发。当窗体的VVisiiblee属性设设置为TTruee时,窗窗体被显显示,同同时触发发Shoow事件件;当窗体的VVisiiblee属性设设置为FFalsse时,窗窗体被隐隐藏,同同时触发发Hidde事件件。这两个事件件过程的的基本语语法形式式为:proceedurre TTForrm1.ForrmShhow(Sennderr: TTObjjectt);proceedurre TTForrm1.ForrmHiide(Sennderr: TTObjjectt);3 Acctiv
31、vatee和Deaactiivatte事件件事件发生的的条件:当激活窗体体时,就就产生AActiivatte事件件;当窗体不再再激活时时,就会会产生DDeacctivvatee事件。这两个事件件过程的的基本语语法形式式为:proceedurre TTForrm1.ForrmAcctivvatee(Seendeer: TObbjecct);proceedurre TTForrm1.ForrmDeeacttivaate(Sennderr: TTObjjectt);关闭窗体cclosse和clooseqquerry事件件参见表表1-1155改变窗窗体大小小时Reesizze事件件和paaintt 事
32、件件在调整窗体体的大小小时,就就会出现现Ressizee事件。该该事件过过程的基基本语法法形式为为:proceedurre TTForrm1.ForrmReesizze(SSendder: TOObjeect);窗体的方法法 参参见常见见方法列列表:pp25窗口可以分分为模态态显示和和非模态态显示两两种显示示形态。采用模态显显示时用用 ShhowMModaal 方方法打开开窗口。打打开模态态窗口之之后,同同一程序序其他窗窗口的操操作被禁禁止,直直到把模模态窗口口关闭,其其它应用用程序的的窗口可可以被操操作。非模态显示示的窗口口用Shoow 方方法打开开。非模模态窗口口打开后后可以不不关闭,然然
33、后再去去打开其其他窗口口。创建新窗体体一个对象的的生命周周期是从从它被创创建那一一刻开始始。当我我们不再再使用某某个对象象时,可可以将这这个对象象从内存存空间中中删除,这这样可以以避免不不必要的的数据浪浪费内存存空间。默认构造造方法是是Creeatee方法。使使用这种种方法构构造的对对象(变量)的值,是是该对象象实体数数据所在在的内存存地址。默认的解构构方法是是Desstrooy,推荐使使用的是是Freee。使使用Frree方方法,既既能删除除这个对对象,还还能删除除对象实实体所占占的内存存空间。窗体是一个个对象,要要想在程程序中操操作它,必必须先调调用其ccreaate函函数创建建它。要注意
34、程序序设计状状态与程序运运行状态态的区别别。设计计好的窗窗体在运运行时,都都应该先先创建出出来才能能执行。主窗体:当当应用程程序运行行时,首首先显示示出来的的窗体一一般称之之为主窗窗体。主主窗体一一般由应应用程序序自动创创建。但但一个应应用程序序,一般般不会只只有主窗窗体,其其他窗体体有两种种不同的的创建方方式。包括:静态态创建(自自动创建建)和动动态创建建(手动动创建)。1.静态创创建新窗窗体的步步骤打开已有工工程文件件新建窗体建立主窗体体与该窗窗体的联联系。 引引用单元元uniit2。在在进行编编译时系系统会自自动提示示并添加加代码。也也可手工工在主窗窗体单元元中添加加对unnit22的引
35、用用代码。Use unit2保存并运行行。2.设置工工程主窗窗体和自自动创建建与手动动创建窗窗体的方方法3.动态创创建新窗窗体静态创建的的窗体在在运行时时将全部部装入内内存。当当窗体很很多时,会会引起系系统资源源紧张。通通过动态态创建的的方法,在在需要调调用某个个窗体时时,临时时创建,使使用完后后立即释释放。修改工程选选项。选选择菜单单“proojecct|ooptiionss”,系系统打开开“proojecct ooptiionss”对话话框,在在forrms选选项卡中中,所有有窗提出出现在自自动创建建列表框框中,选选择不需需自动创创建的窗窗体,移移到“Avaailaableeforrms”
36、列表框框中。在主调窗体体中修改改程序代代码。Form22:=ttforrm2.creeatee(niil);Form22.shhow;动态创建的的窗体在在运行结结束后,一一般应手手动释放放,以释释放其所所占用的的内存空空间。释释放窗体体的方法法一般有有两种的的desstrooy,ffreee。一般般用frree,两者在在用法上上稍有不不同,请请查阅帮帮助文档档进一步步了解。Form22.deestrroy;Form22.frree; 或者 forrm2.Releeasee;作业:设计一个不不含系统统菜单的的窗体,添添加一个个按钮实实现窗体体的关闭闭。设计一个不不能改变变大小的的窗体。设计一个透
37、透明窗体体。提示:首先先设置窗体体的TrranssParrenttCollor-Truue; 然后设置置窗体的的Collor与与TraansPPareentCColoorVaaluee为相同同值新建一个工工程,创创建三个个窗体fformm1,fformm2,fformm3,将将forrm1设设为主窗窗体,在在forrm1放放置buuttoon1,butttonn2两按按钮,选选择buuttoon1,以以无模式式显示FFormm2,选选择buuttoon2,以以有模式式显示FFormm3。 新建一个工工程,创创建三个个窗体fformm1,fformm2,fformm3,将将forrm1设设为主窗
38、窗体,在在forrm1放放置buuttoon1,butttonn2两按按钮,fformm2由应应用程序序自动创创建,选选择buuttoon1,以以无模式式显示FFormm2,fformm3手动动创建,选选择buuttoon2,先先创建fformm3,并并以有模模式显示示Forrm3。请编写程序序验证窗窗体Crreatte、Shoow、Paiint、Acttivaate等等事件激激活的顺顺序。窗体组件(FORM)常见属性属性说明Activve 指示此窗体体是否拥拥有FOOCUSSActivvecoontrrol 指示窗体中中目前拥拥有FOOCUSS的组件件Activvemddichhildd 指
39、示主窗体体中目前前拥有FFOCUUS的子子窗体Activveollecoontrrol 用于取得或或设定此此窗体上上的OLLE控制制,以响响应FOOCUSS改变Bordeericconss 指定哪些IICONN显示在在窗体的的TITTLE BARR上Bordeersyytlee 用以指定窗窗体BOORDEER外观观及行为为Canvaas 提供使用者者可在窗窗体上CCLIEENT内内自行显显示的画画板,一一般在OONPAAINTT事件中中使用Cliennthaandlle 提供可存取取系统内内部使用用的MDDI CCLIEENT WINNDOWW HAANDLLEClienntheeighht
40、窗体客户区区高度Clienntreect 窗体客户区区所对应应的矩形形Clienntwiidthh 窗体客户区区宽度Defauultmmoniitorr 指定此窗体体所显示示的预设设的显示示器,用用于多显显示器环环境下Desiggnerr 此窗体的设设计界面面,一般般不用用用户设定定Dropttargget 用以指定窗窗体是否否为目前前DRAAG AAND Droop动作作的目标标Floattingg 用以指示此此窗体是是否正在在停泊在在另一个个视窗内内Formsstatte 用于指示此此窗体所所处状态态Formsstylle 用于指示窗窗体的样样式Helpffilee 用于指定HHELPP文
41、件Icon 指定窗体最最小化时时所显示示的ICCONKeyprreviiew 指定此窗体体是否需需在目前前的ACCTIVVE组件件之前取取得键盘盘输入Mdichhilddcouunt 用于取得子子窗体数数目Mdichhilddrenn 用于取得子子窗体(数数组)Menu 用于指定窗窗体主菜菜单Modallressultt 当窗体作用用为MOODALL对话框框时,作作为对话话框的效效果Monittor 用于指示窗窗体所显显示的显显示器Oldcrreatteorrderr 指定ONCCreaate和ONDDESTTROYY事件何何时发生生Olefoormoobjeect 对包含在此此窗体内内的OL
42、LE对象象指定OOLEFFORMM界面Parennt 设定此窗体体的PAARENNTParenntbiidimmodee 指定是否此此窗体使使用PAARENNT的BIDDIMOODEPixellspeerinnch 表示此窗体体设计时时系统上上字形的的比例Posittionn 表示此窗体体的大小小及位置置Printtscaale 表示此窗体体打印的的比例Scaleed 用于指定窗窗体的大大小是否否依据PPIXEELSPPERIINTCCH属性性来指定定Tilemmodee 用于指定TTILEE方法被被调用时时子窗体体如何排排列Visibble 用于设定此此窗体是是否被显显示Windoowmee
43、nu 如果窗体是是一个MMDI PARRENTT窗体,用用于指定定视窗的的菜单Windoowsttatee 用于指定窗窗体如何何显示于于屏幕中中窗体组件(FORM)常见事件及说明事件 说明Onpaiint 当窗体必须须重画时时发生Onhellp 当窗体收到到HELLP请求求时发生生Ondraagdrrop 当一个对象象拉进此此窗体并并丢下时时发生Ondraagovver 当一个对象象拉进此此窗体时时发生Onconnstrrainnedrresiize 在ONCAANREESIZZE事件件发生后后发生Oncannressizee 当企图改变变窗体尺尺寸时确确认是否否改变Onressizee 当窗
44、体尺寸寸改变时时发生Onstaartddockk 当对象开始始停泊时时发生Onendddocck 当对象停泊泊结束时时发生Onunddockk 当窗体解除除停泊时时发生Ondocckdrrop 当其它窗体体停泊到到此组件件时发生生Ondocckovver 当其它窗体体向此组组件停泊泊接近时时发生Ongettsitteinnfo 当有关停泊泊消息传传回此窗窗体时发发生Oncreeatee 当窗体创建建时发生生Oncloose 当窗体即将将关闭时时发生Onclooseqquerry 在窗体即将将关闭时时确认是是否真的的关闭窗窗体Ondesstrooy 当窗体释放放时发生生Onshoow 当窗体显示
45、示时发生生Onhidde 当窗体隐藏藏时发生生Onacttivaate 当窗体获得得FOCCUS时时发生Ondeaactiivatte 当窗体失去去FOCCUS时时发生3.3 使使用焦点点焦点foccus就就是光标标,当对对象具有有焦点时时,才能能响应用用户的操操作,焦焦点就是是对象接接受用户户操作(鼠鼠标或键键盘)的的能力。1.与焦点点相关的的属性:主要有viisibble ennablled,当他们都为true时,对象才能够获得焦点。有些控件不不具有焦焦点。?哪些些呢?2.获得焦焦点的方方法:程序设计时时,通过过代码设设定,调调用组件件的seetfoocuss方法,例例如:eeditt1.
46、ssetffocuus;程序运行中中:用户户操作时时鼠标单击对对象(vissiblle enaableed都为为truue)按键或或+在当当前窗体体的各对对象之间间巡回移移动焦点点按热键选择择对象。3.获得焦焦点的顺顺序:TabOrrderr属性决决定控件件的接收收焦点的的顺序。从从0开始。TabSttop属属性决定定焦点是是否能停停在该控控件上。False跳过该控件。与输入输出出有关的的控件Labell(标签签)一般放放在对象象的旁边边,用来来标记这这些对象象,从而而对用户户的操作作进行提提示,也也可以用用来显示示信息。可可以在标标签中设设置热键键,也即在在Capptioon属性性值段中中输
47、入含含有“&”的字字串,当当用户使使用“AAlt+关键字字母”时,将将自动选选中它所所指向的的对象。方方法是设设置Laabell部件的的FoccusCConttroll属性,在在值段中中,选用用与它关关联对象象的对象象名称。3.1.11 Labbel控控件Labell控件在在标准(Staandaard)页标签签上,主要用用于输出出文本。常用属性 Captiion 即标题属性性,这是是TLaabell组件最最重要的的属性,用用来设置置该组件件中显示示的文本本。AutoSSizee 布尔型,用用来决定定标签是是否自动动随文本本的长短短而改变变大小。WordWWrapp 布尔型,用用于设定定组件文文
48、本宽于于组件宽宽度时是是否自动动换行Alignnmennt 枚举型,用用来决定定标签中中显示的的文本的的对齐方方式 。Enablled 布尔型,用用来决定定该组件件是否能能即响应应用户的的操作。Visibble布尔型,用用来决定定在程序序运行时时组件是是否可见见Font 该属性用来来设置标标签组件件中显示示的文本本字体,是是一个对对象属性性 。ShowAAcceelChhar 布尔型,用用来确定定标签的的Capptioon是否否出现表表示热键键的下划划线。Transsparrentt 布尔型,用用来确定定标签是是否为透透明的。标签的应用用例1:利利用标签签设计并并控制文文本的投投影效果果。包括
49、静态设设置属性性,动态态改变属属性。课堂练习:修改实验一一的登录录窗体,设设计如图图所示界界面,要求.两个laabell都采用用折行显显示方式式,对齐方方式采用用上下、左左右均采采用居中中对齐,且且当按热热键U,PP时编辑辑框1,2可分分别获得得焦点。3.1.22 Ediit控件件Edit、MasskEddit、Memmo部件件都是用用作接收收、显示示用户输输入文本本的。它它们具有有一些相相同的属属性。ReadOOnlyy在运行行时间内内控制对对象是否否可以进进行Wiindoows的的操作,当当此值为为Fallse时时,他们们接受用用户的输输入。MaxLeengtth可以以设置输输入文本本的长
50、度度限制。值为0时,不限制文本长度。用PasssworrdChhar属属性可以以按照显显示隐蔽蔽密码的的方法显显示用户户输入文文本,例例如,它它的值为为“*”,运运行时,输输入将用用“*”来来显示,从而提供了一种安全措施。当AutooSellectt属性为ttruee时,文文本框获获得焦点点时,文文本被选选中,呈呈高亮度度显示,按键操操作会将将这些字字符删除除,替换换成当前前的键盘盘输入。这这种设置置为操作作提供了了方便,用户不必每次先删除原来的文本;但也可能会导致误删文本。将其设置成False,这种替代功能就被取消了。 Alignn属性调整整该对象象在窗口口中的对对齐情况况,有aalNoon
51、e(无对齐齐指定)、alBBotttom(底部对对齐)、alCClieent(全窗口口显示)等可以以选择;而Allignnmennt属性性则决定定了文本本在框中中的对齐齐显示格格式。Linnes属属性访问问的文本本被存储储在一个个TSttrinngs对对象中,按按动它的的省略按按钮,可可以通过过对话框框向它增增加文本本,也可可以用程程序对这这一属性性进行操操作,以以达到修修改或增增加备注注文本的的目的。编辑类组件件的继承承关系TEditt组件的的常用属属性Text 代表显示在在编辑框框中的文文本。ReadOOnlyy 该属性用来来决定编编辑框中中显示的的文本是是否可以以修改。Passwword
52、dChaar 用来决定用用户输入入的字符符是原样样显示还还是以密密码方式式显示。 CharCCasee 用来控制编编辑框中中文本的的大小写写。AutoSSeleect 用来决定当当编辑框框获得焦焦点时,是是否自动动选定显显示的文文本。BordeerSttylee 用来决定编编辑框组组件是否否有边框框及边框框的样式式。MaxLeengtth 用来决定编编辑框中中最多能能够输入入或显示示的字符符个数。 SelSttartt 运行属性,用用来设置置或指示示选中文文本的第第一个字字符的位位置,文文本框的的第一个个字符位位置为00。SelTeext 运行属性,用用来设置置或指示选中中的文本本。SelLe
53、engtth 运行属性,用用来设置置或指示选中中文本的的长度。Modiffiedd 运行属性,用用来指示示编辑框框内容是是否发生生了改变变。CanUnndo 用来指出对对编辑框框中显示示内容的的改变是是否能够够撤消。只只读属性性HideSSeleectiion 用来决定当当编辑框框失去焦焦点时,选选中的文文本是否否还是以以选中的的方式提提供视觉觉提示。例如:如果果ediit1.texxt为abccdeff 下列程程序运行行后,eeditt1选中中的文本本是什么么呢? ediit1.SettFoccus; ediit1.SellStaart:=1; ediit1.SellLenngthh:=33
54、; TEditt组件的的常用方方法SetFoocuss 该方法用于于为编辑辑框设置置焦点,无无参数。Clearr 该方法用来来清除编编辑框中中的所有有文本,无无参数。ClearrSellecttionn 该方法用来来清除编编辑框中中选中的的文本,无无参数。SelecctAlll 该方法用来来选中编编辑框中中的所有有文本。 Undo 该方法用来来撤消在在编辑框框中最近近所做的的编辑操操作。ClearrUnddo 该方法用来来清除“撤消”缓冲区区,从而而不能对对以前的的操作做做撤消操操作,该该方法无无参数。CopyTToCllipbboarrd 该方法用来来把选中中的文本本复制到到剪贴板板上,相相
55、当于复复制操作作。CutTooCliipbooardd 该方法用来来把选中中的文本本移动到到剪贴板板上,相相当于剪剪切操作作。PasteeFroomCllipbboarrd 该方法用来来把剪切切板上的的文本粘粘贴到插插入点处处,相当当于粘贴贴操作。TEditt组件的的常用事事件 OnChaangee 当编辑框输输入的ttextt属性值值发生改改变时将将触发该该事件。OnKeyyPreess 当用户按下下键盘上上的ASSCIII字符键键时触发发该事件件。OnKeyyDowwn 当用户按下下键盘上上的任何何键时都都会触发发该事件件。OnKeyyUp 当用户按下下任何一一个键后后再松开开时将触触发该
56、事事件。参见p544例题2练习:新建一个工工程,窗窗体上一一个文本本框eddit11,两个个按钮,caption分别为“剪切”,“恢复”,运行后要求在edit1中输入文本,点“剪切”,把edit1中的内容剪切掉,点“恢复”,把edit1中的内容恢复出来。新建一个工工程,窗窗体上文文本框eeditt1,使使用户输输入字母母一律转转换为大大写显示示(焦点点在最右右端),保保存。 新建一个工工程,实实现功能能限制:在eddit11中只能能输入110个字字母,超超过的在在ediit2中中显示。保保存。 按照要求编编写程序序:新建建一个工工程,在在窗体中中添加两两个文本本框分别别为“Ediit1”、“E
57、diit2”,默认认显示内内容为空空。请设设置适当当的控件件属性,并并编写适适当的事事件过程程,使得得程序运运行时,只只能在EEditt1中输输入数字字,且每每输入一一个字符符,则显显示一个个“*”,同时时在Eddit22中显示示输入的的内容。程程序中不不得使用用任何变变量。程程序编写写完毕后后,运行行,查看看结果。新建一个工工程,实实现功能能:单击击ediit1框框时,eeditt1中的的内容被被全选。保保存。 按照要求编编写程序序:新建建一个工工程,在在窗体中中添加一一个文本本框“Ediit1”。编写写适当的的事件过过程,使使得程序序运行时时,如果果单击窗窗体,则则可以使使文本框框移动到到
58、窗体左左上角;如果在在文本框框中输入入信息,则则可以使使文本框框移动到到窗体右右上角。程程序中不不得使用用任何变变量,只只允许通通过修改改属性的的方式移移动文本本框。程程序编写写完毕后后,运行行,查看看结果。3.1.33 Memmo控件件TMemoo组件的的常用属属性 属性说明Carettposs 用来得到光光标的位位置.其中x表示所所在列,y表示所在行,从0开始计数。ScrolllBaars 用来设置备备注框是是否出现现滚动条条以及滚滚动条的的种类。Liness 按行处理文文本。TTstrringgs类型型,字符符串数组组,序号号从0开始。WordWWrapp 用来决定当当输入的的文本到到达
59、右边边界时是是否插入入软回车车,换到到下一行行输入。WantRRetuurnss为布尔型,它它确定在在该组件件中用户户输入的的回车键键是作为为文本的的内容还还是进入入窗体中中。若WWanttRetturnns为Truue,则则用户输输入的回回车键作作为文本本的部分分;若WWanttRetturnns为Fallse,则则用户输输入回车车键时,激激活窗体体中的其其它在WWanttRetturnns为Fallse时时,要在在备注中中输入回回车,使使用Cttrl+Entter。WantTTabss属性:该属属性为布布尔型,它它确定在在该组件件中是否否可使用用Tabb键。当当WanntTaabs为为Tr
60、uue可使使用。若若WanntTaabs为为Truue,则则用户不不能使用用Tabb键来选选定窗体体上的下下一组件件。也就就是说从从其它组组件中,用用户可以以使用TTab键键进入该该组件,但但在该组组件中使使用Taab键不不能进入入其它的的组件。Modiffiedd 运行属性,用来指示memo内容是否发生了改变。TEXT 用于取得组组件中文文本(字字符串)TMemoo组件的的常用方方法Add 该方法用来来向字符符串列表表的尾部部添加一一个字符符串。其其语法格格式如下下:functtionn Addd(cconsst SS: sstriing): IInteegerr; vvirttuall;C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年耐磨剂项目融资计划书
- 2023年出入口机项目筹资方案
- 电力电工基础模拟题与答案
- 养老院老人病情告知制度
- 旅居民房管理合同范本(2篇)
- 2024年度商家入驻健康医疗产业合作协议3篇
- 2024年物联网智能仓储物流服务合同
- 2025年呼和浩特货车从业资格证考试题目答案
- 《社保卡使用》课件
- 《电通量与高斯定律》课件
- 《西游记知识竞赛》题库及答案(单选题100道、多选题100道)
- 2024年行政执法人员执法资格考试必考题库及答案(共190题)
- QC-提高地铁车站直螺纹钢筋机械连接一次性合格率
- 《2025酒店预算的进与退》
- 民办学校教职工入职背景审查制度
- 《中国政治思想史》课程教学大纲
- 施工项目经理述职报告
- 2024年新人教版四年级数学上册《教材练习21练习二十一(附答案)》教学课件
- 2024年湛江市农业发展集团有限公司招聘笔试冲刺题(带答案解析)
- 商业伦理与社会责任智慧树知到期末考试答案2024年
- MOOC 创新思维与创业实验-东南大学 中国大学慕课答案
评论
0/150
提交评论