delphi(第一、三、九、十)可视化编程讲稿_第1页
delphi(第一、三、九、十)可视化编程讲稿_第2页
delphi(第一、三、九、十)可视化编程讲稿_第3页
delphi(第一、三、九、十)可视化编程讲稿_第4页
delphi(第一、三、九、十)可视化编程讲稿_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE PAGE 39第三章Delphi的窗体与组件教学要求:掌握窗体、编辑类组件、按钮类控件、列表类控件、分组类组件、时钟组件、菜单组件、工具栏组件和工具按钮、多选项卡的的属性、方法与事件,学会使用这些组件设计应用程序的界面。掌握ShowMessage、ShowMessageFmt、MassageDlg、MassageDlgPos、InputBox、InputQuery对话框函数与对话框过程的特点,并能熟练应用。熟悉公共对话框控件组件的属性,方法、事件及应用。掌握创建建新窗体体的两种种不同的的方法及及其应用用。掌握wiindoows的的模式与与非模式式窗体的的概念及及应用方方法。掌握焦点点

2、的含义义,与焦焦点相关关的属性性,应用用焦点设设计程序序的方法法。了解CrreatteMeessaageDDiallog函函数的定定义与用用法、sspeeedbuuttoon和文文件有关关的控件件的属性性、方法法与事件件。从本章开开始,将介绍绍Dellphii 编程程的一些些基本方方法。通通过这一一部分的的学习,可以了了解开发发Winndowws 环环境下应应用程序序的一些些关键技技术,并并可以方方便、快快捷地开开发一般般的应用用程序。为了简化化编程工工作,Dellphii 提供供了许多多功能强强大的函函数和类类。其中中很重要要的一部部分就是是组件类类。本章章将重点点介绍常常见组件件及其编编程

3、应用用。现在深入入普及的的Winndowws操作作系统中中,方便便快捷的的人机交交互界面面主要是是通过窗窗体和对对话框实实现的。在Deelphhi中,这些窗窗体和对对话框就就是程序序设计阶阶段的窗窗体,DDelpphi的的可视化化设计工工作就是是在窗体体中进行行的。通常,窗窗体中会会有文字字输入、滚动条条、复选选框、单单选框、按钮等等一系列列组件,通过这这些直观观易懂的的组件,可以方方便的实实现多种种多样的的功能。在Deelphhi中,这些运运行期间间出现在在窗体和和对话框框中的组组件称为为可视组组件。在在窗体中中,还可可以放置置一些运运行期间间非可视视的组件件,对应应其它的的TCoompoo

4、nennt子类类。这些些不可视视组件集集中地实实现了一一些特殊殊的功能能。比如如,时钟钟控制等等功能。TCommponnentt组件类类,所有有的组件件都是由由这个类类派生来来的。TConntrool子类类(可视视组件)可分为为两类:窗体组组件和图形组组件。窗体组件件对应TTWinnConntrool 子子类,是是基于系系统窗体体的可视视组件,具有窗窗体句柄柄,可作为为输入焦焦点或含含有其它它组件,例如TTEdiit组件件、TPPaneel组件件。图形组件件对应TTGraaphiicCoontrrol 子类,没有窗窗体句柄柄,不可作作为输入入焦点,也不能能含有其其它组件件,例如如Labbel

5、组件。图形组件件比窗体体组件使使用的资资源少,尤其在在组件数数量比较较多的情情况下最最好使用用图形组组件。组组件组的的关系如如图所示示。窗体和组组件的关关系非常常密切。窗体就就像一个个容器,其中包包容了可可视组件件和非可可视组件件。窗体体和组件件之间除除了具有有上述的的不同点点之外,还具有有一些相相同点。例如,从面向向对象编编程的角角度来看看,所有有组件都都是TCCompponeent 类派生生类的一一个对象象。窗体体类(TTForrm)也也是从TTCommponnentt 类派派生的,所以可可以将窗窗体看成成一个特特殊的组组件。有些组件件也具有有窗体的的“容器”属性,也就是是在这些些组件中中

6、可以放放置其它它组件,通常这这些组件件称为容容器组件件。例如如Tpannel组组件就是是一个容容器组件件,可以以在Tpannel组组件中放放置其他他组件。Delpphi 中的所所有组件件是在可可视组件件库(VVisuual Commponnentt Liibraary,缩写为为VCLL)中封封装的。可视组组件库是是Dellphii 中非非常重要要的一部部分,不不仅封装装了所有有组件对对应的类类,还封封装了一一些通用用的类。所有的的这些类类都是由由一个基基类派生生出来的的,也就就是TOObjeect 类。了解解可视组组件库对对于学习习组件、使用DDelpphi 很有帮帮助。Delpphi 中的主

7、主要组件件栏Stanndarrd标准Wiindoows组组件、框框架、菜菜单等Addiitioonall一些专用用的Wiindoows组组件Win33232位WWinddowss系统中中的公用用组件Systtem进行系统统操作的的组件(包括定定时器、多媒体体和DDDE等)Dataa Acccesss操作数据据库的组组件,如如访问数数据库、表格、查询和和报表等等Dataa Coontrrolss 进行数据据库控制制的组件件BDEBORLLANDD访问数数据库的的组件ADO通过AcctivveX Datta OObjeectss访问数数据库的的组件InteerBaase 提供与IInteerBaa

8、se直直接联接接的组件件MIDAAS开发多层层数据库库应用程程序的组组件InteerneetExxpreess 开发InnterrnettExppresss应用用程序(Webb服务器器应用程程序和客客户端多多层数据据库应用用程序)的组件件Inteerneet 开发Weeb服务务的应用用程序FasttNett提供Innterrnett操作的的一些组组件Deciisioon CCubee 为应用程程序提供供多维数数据分析析的组件件Diallogss Winddowss通用对对话框组组件Win 3.11提供与WWinddowss 3.1兼容容的一些些组件Samppless一些定制制组件的的例子Ser

9、vverss通用COOM服务务器组件件DELPPHI组组件常见见属性及及说明属性说明Aliggn 设置组件件对齐(相对于于其父容容器)Borddersstylle 设置组件件边框形形状Capttionn 设置组件件标题Ctl33d 设置组件件边框是是否为33D模式式,若BBORDDERSSTYLLE设置置为BSSNONNE则此此属性无无效Coloor 设定组件件背景颜颜色Curssor 设定鼠标标经过组组件时光光标所显显示的形形状Enabbledd 设定组件件是否能能使用,当设为为FALLSE时时组件会会呈灰色色Fontt 设定组件件内文字字的字型型、字体体大小、颜色等等Heigght 设定组

10、件件高度Helppconntennt 用来为帮帮助说明明文件中中的索引引值建立立关联Leftt 设定组件件与父组组件左边边框间的的距离Popuupmeenu 设定鼠标标右键(弹出式式)快捷捷菜单Taboordeer 设定组件件在按下下TABB键后焦焦点(FFOCUUS)移移动的顺顺序Tabsstopp 若设为FFALSSE,则则按TAAB键后后焦点并并不会在在此组件件上停留留Top 设定组件件与父组组件上边边框间的的距离Visiiblee 设定组件件是否可可见,此此属性只只在执行行时起作作用Widtth 设定组件件显示宽宽度DELPPHI常常见事件件及说明明事件说明Onchhangge 当组件

11、有有所改变变时触发发的事件件Oncllickk 当在此组组件上按按下鼠标标左键时时触发的的事件Ondbblcllickk 当在此组组件上双双击鼠标标左键时时触发的的事件Onennterr 当焦点进进入此组组件时触触发的事事件Onexxit 当切换到到其它组组件使该该组件失失去焦点点时触发发的事件件,但当当切换到到另一窗窗体或另另一应用用程序时时此事件件不会触触发Onkeeydoown 当在拥有有焦点的的组件上上按下某某个键时时触发的的事件,按键包包括所有有的英文文、数字字键、方方向键、功能键键等Onkeeyprresss 当在拥有有焦点的的组件上上按下某某个键时时触发的的事件,但按键键只包括括

12、所有的的英文、数字键键、TAAB、BACCKSPPACEE、ENTTER、ESCCOnkeeyupp 当使用者者放开键键盘上的的按键时时触发的的事件,按键看看ONKKEYDDOWNNOnmoouseedowwn 当鼠标键键在某个个组件按按下时触触发的事事件(其其参数包包括哪个个鼠标键键被按下下、是否否有特殊殊键(CCTRLL、ALTT、SHIIFT)被按下下以及鼠鼠标当前前的坐标标)Onmoouseemovve 当鼠标在在组件内内移动时时触发的的事件Onmoouseeup 当鼠标键键在组件件上方放放开时所所触发的的事件Onpaaintt 在组件需需要被重重画时触触发的事事件,此此时可进进行自定

13、定义画法法窗体介绍绍窗体是编编写Deelphhi程序序的工作作底稿区区,凡是是与用户户进行交交互的程程序都得得使用窗窗体来设设计用户户界面。在程序序运行时时,窗体体实际上上就是标标准的应应用程序序主窗口口、对话话框及多多文档界界面的主主窗口。根据不同同的窗体体类型,Winndowws环境境中的应应用程序序可以分分为下面面的三类类:单文档界界面(SSDI)应用程程序:这种应应用程序序同时只只能打开开一个文文档。例例如Wiindoows 系统附附件中的的“画图”程序,只能同同时编辑辑一个图图像文件件。多文档界界面(MMDI)应用程程序:一般这这种应用用程序具具有一个个父窗体体和多个个子窗体体,可以

14、以同时打打开多个个文档,分别在在多个子子窗体中中显示。例如常常用的wwordd软件,可以同同时编辑辑多个文文档。对话框应应用程序序:这种应应用程序序的主界界面基于于一个对对话框类类型的窗窗体。例例如Wiindoows系系统附件件中的“磁盘扫扫描”程序。此外,有有些应用用程序在在运行期期间可以以总是显显示在桌桌面的最最前端,例如在在Winndowws中按按下系统统热键CCtrll+Allt+DDel,激活的的关闭程程序窗体体会一直直显示在在其它应应用程序序的窗体体之上,除非退退出该程程序。窗体由标标题栏、工作区区和边界界组成。窗体的属属性窗体的属属性是与与其外观观密切相相关的。对于组组件的属属性

15、除必必要进行行设定的的外,一一般使用用它的默默认值。1窗体体的位置置与大小小窗体的位位置与大大小是由由属性LLeftt、Topp、Widdth、Heiightt、CliienttWiddth、CliienttHeiightt、Possitiion、Aliign来来确定的的。一般来说说前四个个属性可可以定义义控件在在它们所所在的容容器组件件中的物物理位置置和大小小,在Deelphhi中的的可见组组件都有有这四个个属性,而不可可见组件件没有这这些属性性。Heiggth属属性和WWidtth属性性分别指指定窗体体的高度度和窗体体的宽度度窗体的左左上角相相对于父父容器(屏幕)的坐标标:Toop属性性和

16、Leeft属属性Aliggn属性性用来设设定窗体体相对与与父容器器(屏幕幕)的对对齐方式式,该属属性为枚枚举类型型,取值值如下取值含义alBoottoon窗体位于于屏幕的的下方,宽度为为整个屏屏幕宽(Widdth属属性失效效),高高度为HHeiggth属属性值alClliennt窗体占据据屏幕的的中部,Widdth与与Heiightt属性失失效alLeeft窗体位于于屏幕的的左方,宽度为为Widdth属属性值,高度为为整个屏屏幕(HHeiggth属属性失效效)alNooneWidtth与Heiightt属性有有效,以以及其他他属性有有效alRiightt窗体位于于屏幕的的右方,宽度为为Widd

17、th属属性值,高度为为整个屏屏幕(HHeiggth属属性失效效)alToop窗体位于于屏幕的的上方,宽度为为整个屏屏幕宽(Widdth属属性失效效),高高度为HHeiggth属属性值Posiitioon属性性:在应应用程序序运行阶阶段,确确定窗口口在屏幕幕上的位位置。只只有当AAliggn属性性为allNonne时才才有效,属性为为枚举类类型,取取值如下下:取值含义poDeesiggnedd窗体运行行时显示示的位置置和大小小与设计计相同poDeefauult窗体每次次显示时时,与上上次比较较,往右右下角移移动了一一些位置置;窗体体的高度度和宽度度由Wiindoows 决定poDeefauult

18、PPosOOnlyy窗体以设设计期间间的大小小显示,窗体显显示的位位置较上上次向右右下角移移动了一一些。如如果窗体体以设计计时的大大小不可可以在屏屏幕上完完全显示示,就移移动到屏屏幕的左左上角显显示。poDeefauultSSizeeOnlly窗体以设设计期间间的位置置显示,窗体的的大小由由Winndowws 决决定poSccreeenCeenteer窗口尺寸寸由窗体体的Heeighht和Widdth属属性参数数确定,但是窗窗口位于于屏幕的的中央poDeeskttopCCentter窗体以设设计期间间的大小小显示;窗体显显示的位位置总在在屏幕的的中间。2. 窗窗体的名名称与标标题Capttio

19、nn属性确确定了窗窗体的标标题,当当窗体最最小化后后,Caaptiion属属性值为为图标的的文本说说明。通常,对对于多文文档界面面(MDDI)应应用程序序,当主主框架窗窗体中的的子窗体体最大化化显示的的时候,应用程程序的标标题栏中中显示的的内容为为“-”;当子子窗体非非最大化化窗体显显示的时时候,主主框架窗窗体中只只显示应应用程序序的名称称,子窗窗体有自自己的标标题栏,其中显显示该窗窗体打开开的文件件名。所所以,当当窗体的的显示方方式发生生了改变变后,应应该立即即改变标标题栏中中的内容容。默认情况况下Naame属属性与CCapttionn属性值值相同,但不能能混淆两两者的作作用。NNamee属

20、性是是窗体对对象的变变量名,当工程程中有多多个窗体体时,每每个窗体体的名称称必须是是唯一的的,即其其名称不不能相同同。属性性Namme 用用来标志志工程中中的窗体体。通常,应应该在系系统开发发的设计计阶段就就将整个个工程中中所有窗窗体的名名称确定定,然后后在编程程阶段根根据设计计文档修修改窗体体的Naame 属性。不能在在程序运运行期间间通过代代码修改改Namme属性性。3.窗体体的外观观与风格格与窗体的的外观与与样式有有关的属属性有:BorrderrIcoons、BorrderrStyyle、ForrmSttylee、WinndowwStyyle、HorrzSccrolllBaar和 Vee

21、rtSScroollBBar属属性等。FormmStyyle属属性可以以分别实实现各种种类型的的应用程程序,取取值如下下:取值含义FsNoormaal普通的窗窗体fsMDDIChhilddMDI(多文档档窗体)的子窗窗体fsMDDIFoormMDI(多文档档窗体)的主窗窗体fsSttayOOnToop位于桌面面顶层的的窗体BordderIIconns属性性用来指指定窗体体标题栏栏上的图图标,该属性性为集合合类型,取值如如下:取值含义biSyysteemMeenu在窗体的的标题栏栏中显示示系统菜菜单biMiinimmizee在窗体的的标题栏栏中显示示最小化化按钮biMaaximmizee在窗体的

22、的标题栏栏中显示示最大化化按钮biHeelp在窗体的的标题栏栏中显示示帮助按按钮,只有窗窗体的BBordderSStylle 属属性设置置为bssDiaalogg或者窗窗体属性性BorrderrIcoons 中不包包括biiMinnimiize 和biMMaxiimizze 时时,biiHellp 设设置才有有效。确定窗体体的边界界类型:BorrderrStyyle属属性,该属性性为枚举举类型,取值如如下取值含义bsDiialoog标准对话话框边框框,边框框大小不不可以改改变。bsSiinglle单线框,大小不不可以改改变bsNoone窗体没有有边框,也没有有标题栏栏,边界界的大小小不可以以改

23、变,边框不不能移动动。bsSiizeaablee边框可移移动大小小可变的的标准窗窗体bsTooolWWinddow风格与bbsSiinglle 相相同,只只是标题题栏比较较小。另另外,对对于这种种风格的的窗体,属性性BorrderrIcoons 中设置置的biiMinnimiize 和biMMaxiimizze 并并不起作作用。bsSiizeTToollWinn风格与bbsSiizeaablee 相同同,只是是标题栏栏比较小小。对于于这种风风格的窗窗体,属属性BoordeerIcconss 中设设置的bbiMiinimmizee 和biMMaxiimzee 也不不起作用用。注意:窗窗体属性性B

24、orrderrIcoons的的设置与与属性BBordderSStylle的设设置可能能会发生生互斥,例如属属性BoordeerIcconss的biMMiniimizze和biMMaxiimizze会与与属性BBordderSStylle的bsDiialoog冲突突,属性性BorrderrIcoons的的biHHelpp会与属属性BoordeerSttylee的bsSSizeeablle冲突突。设置窗体体的显示示状态:WinndowwStyyle属属性,该属性性为枚举举类型,取值如如下取值含义wsNoormaal窗体运行行时显示示的位置置和大小小与设计计相同wsMiinimmal窗体运行行时,最

25、最小化wsMaaximmizeed窗体运行行时,最最大化4Foont 属性属性Foont 用来设设置窗体体中文字字的字体体、颜色色和字号号等,包包含Coolorr、Naame、Sizze或SStylle等属性。如果将窗窗体中组组件的属属性PaarenntFoont 设置为为Truue,那那么该组组件的字字体设置置就与其其父级窗窗体的字字体设置置完全一一样了。在程序设设计的时时候,为为了保持持整个系系统风格格的统一一,应该该使工程程中的窗窗体风格格尽量一一致,可可以先设设置窗体体的Foont 属性,然后将将窗体中中所有组组件的PPareentFFontt 属性性设置为为Truue 就就可以了了。

26、一般般不要单单个地对对窗体中中的组件件进行FFontt 属性性的设置置。5Iccon 属性属性Iccon 用来指指定标题题栏中显显示的图图标。单击对象象编辑器器Icoon 属属性右边边的省略略号按钮钮,在弹弹出的PPictturee Edditoor 对对话框中中点击LLoadd按钮,就可以以装入一一个制作作好的图图标。使用Deelphhi 自自带的工工具Immagee Edditoor 可可以方便便地制作作图标。通过菜菜单Tooolss/ IImagge EEdittor可可运行IImagge EEdittor 编辑制制作图标标。如果需要要动态地地改变窗窗体Foorm11 中的的图标,可以调

27、调用下面面的过程程:Formm1.IIconn.LooadFFrommFille(Icoon1.ICOO);其中Iccon11.ICCO是要要在窗体体Forrm1标标题栏中中显示的的图标文文件名。窗体的事事件窗体的事事件很多多,常用用事件:1Crreatte事件件和Deestrroy事事件当创建窗窗体时,就产生生Creaate事事件;当释放窗窗体所占占用的空空间时,就会产产生Deestrroy事事件。这两个事事件过程程的基本本语法形形式为:procceduure TFoorm11.FoormCCreaate(Sennderr: TTObjjectt);procceduure TFoorm11.

28、FoormDDesttroyy(Seendeer: TObbjecct); 应用:通常整个个程序的的初始化化工作放放在主窗窗体的CCreaate事事件中进进行处理理,比如如读入将将要用到到的图形形资源等等,而这这些资源源的释放放则放在在主窗体体的Deestrroy事事件中进进行处理理。例如如:procceduure TFoorm11.FoormCCreaate(Sennderr: TTObjjectt);begiin foorm11.Caaptiion:=欢欢迎使用用!; foorm11.Coolorr:=cclreed; foorm11.Foont.Collor:=cllbluue; foo

29、rm11.Foont.Namme:=隶书书; foorm11.Foont.Sizze:=20; foorm11.Foont.Styyle:=ffsboold,fsuundeerliine,fsiitallic; buuttoon1.Capptioon:=请按按键; buuttoon1.Lefft:=1300; buuttoon1.Topp:=5500; buuttoon1.Heiightt:=550; buuttoon1.Widdth:=1000;end;当创建窗窗体并显显示时,下列事事件按顺顺序出现现:Crreatte、Shoow、Paiint、Acttivaate。参见表表1-1142Sh

30、how和和Hidde事件件Showw事件和和Hidde事件件分别在在窗体显显示与隐隐藏时被被触发。当窗体的的Vissiblle属性性设置为为Truue时,窗体被被显示,同时触触发Shhow事事件;当窗体的的Vissiblle属性性设置为为Fallse时时,窗体体被隐藏藏,同时时触发HHidee事件。这两个事事件过程程的基本本语法形形式为:procceduure TFoorm11.FoormSShoww(Seendeer: TObbjecct);procceduure TFoorm11.FoormHHidee(Seendeer: TObbjecct);3 AActiivatte和Deaactii

31、vatte事件件事件发生生的条件件:当激活窗窗体时,就产生生Acttivaate事事件;当窗体不不再激活活时,就就会产生生Deaactiivatte事件件。这两个事事件过程程的基本本语法形形式为:procceduure TFoorm11.FoormAActiivatte(SSendder: TOObjeect);procceduure TFoorm11.FoormDDeacctivvatee(Seendeer: TObbjecct);关闭窗体体cloose和和clooseqquerry事件件参见表表1-1155改变变窗体大大小时RResiize事事件和ppainnt 事事件在调整窗窗体的大大小

32、时,就会出出现Reesizze事件件。该事事件过程程的基本本语法形形式为:procceduure TFoorm11.FoormRResiize(Sennderr: TTObjjectt);窗体的方方法参见常见见方法列列表:pp25窗口可以以分为模模态显示示和非模模态显示示两种显显示形态态。采用模态态显示时时用 ShhowMModaal 方方法打开开窗口。打开模模态窗口口之后,同一程程序其他他窗口的的操作被被禁止,直到把把模态窗窗口关闭闭,其它它应用程程序的窗窗口可以以被操作作。非模态显显示的窗窗口用Shoow 方方法打开开。非模模态窗口口打开后后可以不不关闭,然后再再去打开开其他窗窗口。创建新

33、窗窗体一个对象象的生命命周期是是从它被被创建那那一刻开开始。当当我们不不再使用某某个对象象时,可可以将这这个对象象从内存存空间中中删除,这样可可以避免免不必要要的数据据浪费内内存空间间。默认构构造方法法是Crreatte方法法。使用用这种方方法构造造的对象象(变量)的值,是该对对象实体体数据所所在的内内存地址址。默认的解解构方法法是Deestrroy,推荐使使用的是是Freee。使使用Frree方方法,既既能删除除这个对对象,还还能删除除对象实实体所占占的内存存空间。窗体是一一个对象象,要想想在程序序中操作作它,必必须先调调用其ccreaate函函数创建建它。要注意程程序设计计状态与与程序运运

34、行状态态的区别别。设计计好的窗窗体在运运行时,都应该该先创建建出来才才能执行行。主窗体:当应用用程序运运行时,首先显显示出来来的窗体体一般称称之为主主窗体。主窗体体一般由由应用程程序自动动创建。但一个个应用程程序,一一般不会会只有主主窗体,其他窗窗体有两两种不同同的创建建方式。包括:静静态创建建(自动动创建)和动态态创建(手动创创建)。1.静态态创建新新窗体的的步骤打开已有有工程文文件新建窗体体建立主窗窗体与该该窗体的的联系。 引用单单元unnit22。在进进行编译译时系统统会自动动提示并并添加代代码。也也可手工工在主窗窗体单元元中添加加对unnit22的引用用代码。Use uniit2保存并

35、运运行。2.设置置工程主主窗体和和自动创创建与手手动创建建窗体的的方法3.动态态创建新新窗体静态创建建的窗体体在运行行时将全全部装入入内存。当窗体体很多时时,会引引起系统统资源紧紧张。通通过动态态创建的的方法,在需要要调用某某个窗体体时,临临时创建建,使用用完后立立即释放放。修改工程程选项。选择菜菜单“proojecct|ooptiionss”,系系统打开开“proojecct ooptiionss”对话话框,在在forrms选选项卡中中,所有有窗提出出现在自自动创建建列表框框中,选选择不需需自动创创建的窗窗体,移移到“Avaailaableeforrms”列表框框中。在主调窗窗体中修修改程序

36、序代码。Formm2:=tfoorm22.crreatte(nnil);Formm2.sshoww;动态创建建的窗体体在运行行结束后后,一般般应手动动释放,以释放放其所占占用的内内存空间间。释放放窗体的的方法一一般有两两种的ddesttroyy,frree。一般用用freee,两两者在用用法上稍稍有不同同,请查查阅帮助助文档进进一步了了解。Formm2.ddesttroyy;Formm2.ffreee; 或者者 foorm22.Releeasee;作业:设计一个个不含系系统菜单单的窗体体,添加加一个按按钮实现现窗体的的关闭。设计一个个不能改改变大小小的窗体体。设计一个个透明窗窗体。提示:首首先

37、设置置窗体的的TraansPPareentCColoor-TTruee;然后设置置窗体的的Collor与与TraansPPareentCColoorVaaluee为相同同值新建一个个工程,创建三三个窗体体forrm1,forrm2,forrm3,将foorm11设为主主窗体,在foorm11放置buuttoon1,butttonn2两按按钮,选选择buuttoon1,以无模模式显示示Forrm2,选择buuttoon2,以有模模式显示示Forrm3。新建一个个工程,创建三三个窗体体forrm1,forrm2,forrm3,将foorm11设为主主窗体,在foorm11放置buuttoon1,b

38、utttonn2两按按钮,fformm2由应应用程序序自动创创建,选选择buuttoon1,以无模模式显示示Forrm2,forrm3手手动创建建,选择择butttonn2,先先创建fformm3,并并以有模模式显示示Forrm3。请编写程程序验证证窗体CCreaate、Shoow、Paiint、Acttivaate等等事件激激活的顺顺序。窗体组件件(FOORM)常见属属性属性说明Actiive 指示此窗窗体是否否拥有FFOCUUSActiivecconttroll 指示窗体体中目前前拥有FFOCUUS的组组件Actiivemmdicchilld 指示主窗窗体中目目前拥有有FOCCUS的的子窗

39、体体Actiiveoolecconttroll 用于取得得或设定定此窗体体上的OOLE控控制,以以响应FFOCUUS改变变Bordderiiconns 指定哪些些ICOON显示示在窗体体的TIITLEE BAAR上Bordderssytlle 用以指定定窗体BBORDDER外外观及行行为Canvvas 提供使用用者可在在窗体上上CLIIENTT内自行行显示的的画板,一般在在ONPPAINNT事件件中使用用Clieenthhanddle 提供可存存取系统统内部使使用的MMDI CLIIENTT WIINDOOW HHANDDLEClieenthheigght 窗体客户户区高度度Clieentrr

40、ectt 窗体客户户区所对对应的矩矩形Clieentwwidtth 窗体客户户区宽度度Defaaulttmonnitoor 指定此窗窗体所显显示的预预设的显显示器,用于多多显示器器环境下下Desiigneer 此窗体的的设计界界面,一一般不用用用户设设定Dropptarrgett 用以指定定窗体是是否为目目前DRRAG ANDD Drrop动动作的目目标Floaatinng 用以指示示此窗体体是否正正在停泊泊在另一一个视窗窗内Formmstaate 用于指示示此窗体体所处状状态Formmstyyle 用于指示示窗体的的样式Helppfille 用于指定定HELLP文件件Iconn 指定窗体体最

41、小化化时所显显示的IICONNKeypprevvieww 指定此窗窗体是否否需在目目前的AACTIIVE组组件之前前取得键键盘输入入Mdicchilldcoountt 用于取得得子窗体体数目Mdicchilldreen 用于取得得子窗体体(数组组)Menuu 用于指定定窗体主主菜单Modaalreesullt 当窗体作作用为MMODAAL对话话框时,作为对对话框的的效果Moniitorr 用于指示示窗体所所显示的的显示器器Oldccreaateoordeer 指定ONNCreeatee和ONDDESTTROYY事件何何时发生生Olefformmobjjectt 对包含在在此窗体体内的OOLE对

42、对象指定定OLEEFORRM界面面Pareent 设定此窗窗体的PPAREENTPareentbbidiimodde 指定是否否此窗体体使用PPAREENT的的BIDDIMOODEPixeelspperiinchh 表示此窗窗体设计计时系统统上字形形的比例例Posiitioon 表示此窗窗体的大大小及位位置Prinntsccalee 表示此窗窗体打印印的比例例Scalled 用于指定定窗体的的大小是是否依据据PIXXELSSPERRINTTCH属属性来指指定Tileemodde用于指定定TILLE方法法被调用用时子窗窗体如何何排列Visiiblee 用于设定定此窗体体是否被被显示Winddow

43、mmenuu 如果窗体体是一个个MDII PAARENNT窗体体,用于于指定视视窗的菜菜单Winddowsstatte 用于指定定窗体如如何显示示于屏幕幕中窗体组件件(FOORM)常见事事件及说说明事件说明Onpaaintt 当窗体必必须重画画时发生生Onheelp 当窗体收收到HEELP请请求时发发生Ondrragddropp 当一个对对象拉进进此窗体体并丢下下时发生生Ondrragooverr 当一个对对象拉进进此窗体体时发生生Oncoonsttraiineddressizee 在ONCCANRRESIIZE事事件发生生后发生生Oncaanreesizze 当企图改改变窗体体尺寸时时确认是

44、是否改变变Onreesizze 当窗体尺尺寸改变变时发生生Onsttarttdocck 当对象开开始停泊泊时发生生Onennddoock 当对象停停泊结束束时发生生Onunndocck 当窗体解解除停泊泊时发生生Ondoockddropp 当其它窗窗体停泊泊到此组组件时发发生Ondoockooverr 当其它窗窗体向此此组件停停泊接近近时发生生Ongeetsiiteiinfoo 当有关停停泊消息息传回此此窗体时时发生Oncrreatte 当窗体创创建时发发生Oncllosee 当窗体即即将关闭闭时发生生Onclloseequeery 在窗体即即将关闭闭时确认认是否真真的关闭闭窗体Ondeest

45、rroy 当窗体释释放时发发生Onshhow 当窗体显显示时发发生Onhiide 当窗体隐隐藏时发发生Onacctivvatee 当窗体获获得FOOCUSS时发生生Ondeeacttivaate 当窗体失失去FOOCUSS时发生生3.3 使用焦焦点焦点foocuss就是光光标,当当对象具具有焦点点时,才才能响应应用户的的操作,焦点就就是对象象接受用用户操作作(鼠标标或键盘盘)的能能力。1.与焦焦点相关关的属性性:主要有vvisiiblee eenabbledd,当他他们都为为truue时,对象才才能够获获得焦点点。有些控件件不具有有焦点。?哪哪些呢?2.获得得焦点的的方法:程序设计计时,通通过

46、代码码设定,调用组组件的ssetffocuus方法法,例如如:eddit11.seetfoocuss;程序运行行中:用用户操作作时鼠标单击击对象(vissiblle enaableed都为为truue)按键键或+在在当前窗窗体的各各对象之之间巡回回移动焦焦点按热键选选择对象象。3.获得得焦点的的顺序:TabOOrdeer属性性决定控控件的接接收焦点点的顺序序。从00开始。TabSStopp属性决决定焦点点是否能能停在该该控件上上。Faalsee跳过该该控件。与输入输输出有关关的控件件Labeel(标标签)一般放放在对象象的旁边边,用来来标记这这些对象象,从而而对用户户的操作作进行提提示,也也可

47、以用用来显示示信息。可以在在标签中中设置热热键,也即在在Capptioon属性性值段中中输入含含有“&”的字字串,当当用户使使用“AAlt+关键字字母”时,将将自动选选中它所所指向的的对象。方法是是设置LLabeel部件件的FoocussConntrool属性性,在值值段中,选用与与它关联联对象的的对象名名称。3.1.1Laabell控件Labeel控件件在标准准(Sttanddardd)页标标签上,主要用用于输出出文本。常用属性性Capttionn 即标题属属性,这这是TLLabeel组件件最重要要的属性性,用来来设置该该组件中中显示的的文本。AutooSizze 布尔型,用来决决定标签签是

48、否自自动随文文本的长长短而改改变大小小。WorddWraap 布尔型,用于设设定组件件文本宽宽于组件件宽度时时是否自自动换行行Aliggnmeent 枚举型,用来决决定标签签中显示示的文本本的对齐齐方式。Enabbledd 布尔型,用来决决定该组组件是否否能即响响应用户户的操作作。Visiiblee布尔型,用来决决定在程程序运行行时组件件是否可可见Fontt 该属性用用来设置置标签组组件中显显示的文文本字体体,是一一个对象象属性。ShowwAcccelCCharr布尔型,用来确确定标签签的Caaptiion是是否出现现表示热热键的下下划线。Trannspaarennt 布尔型,用来确确定标签签

49、是否为为透明的的。标签的应应用例1:利用标标签设计计并控制制文本的的投影效效果。包括静态态设置属属性,动动态改变变属性。课堂练习习:修改实验验一的登登录窗体体,设计计如图所所示界面面,要求.两个laabell都采用用折行显显示方式式,对齐方方式采用用上下、左右均均采用居居中对齐齐,且当当按热键键U,PP时编辑辑框1,2可分分别获得得焦点。3.1.2Eddit控控件Editt、MasskEddit、Memmo部件件都是用用作接收收、显示示用户输输入文本本的。它它们具有有一些相相同的属属性。ReaddOnlly在运运行时间间内控制制对象是是否可以以进行WWinddowss的操作作,当此此值为Fal

50、lse时时,他们们接受用用户的输输入。MaxLLenggth可可以设置置输入文文本的长长度限制制。值为为0时,不限制制文本长长度。用PassswoordCCharr属性可可以按照照显示隐隐蔽密码码的方法法显示用用户输入入文本,例如,它的值值为“*”,运运行时,输入将将用“*”来显显示,从从而提供供了一种种安全措措施。当AuttoSeelecct属性性为trrue时时,文本本框获得得焦点时时,文本本被选中中,呈高高亮度显显示,按键操操作会将将这些字字符删除除,替换换成当前前的键盘盘输入。这种设设置为操操作提供供了方便便,用户户不必每每次先删删除原来来的文本本;但也也可能会会导致误误删文本本。将其

51、设置成成Fallse,这种替替代功能能就被取取消了。Aliggn属性性调整该该对象在在窗口中中的对齐齐情况,有allNonne(无无对齐指指定)、alBBotttom(底部对对齐)、alCClieent(全窗口口显示)等可以以选择;而Allignnmennt属性性则决定定了文本本在框中中的对齐齐显示格格式。Linnes属属性访问问的文本本被存储储在一个个TSttrinngs对对象中,按动它它的省略略按钮,可以通通过对话话框向它它增加文文本,也也可以用用程序对对这一属属性进行行操作,以达到到修改或或增加备备注文本本的目的的。编辑类组组件的继继承关系系TEdiit组件件的常用用属性Textt 代表

52、显示示在编辑辑框中的的文本。ReaddOnlly 该属性用用来决定定编辑框框中显示示的文本本是否可可以修改改。PasssworrdChhar 用来决定定用户输输入的字字符是原原样显示示还是以以密码方方式显示示。CharrCasse 用来控制制编辑框框中文本本的大小小写。AutooSellectt 用来决定定当编辑辑框获得得焦点时时,是否否自动选选定显示示的文本本。BordderSStylle 用来决定定编辑框框组件是是否有边边框及边边框的样样式。MaxLLenggth 用来决定定编辑框框中最多多能够输输入或显显示的字字符个数数。SelSStarrt 运行属性性,用来来设置或或指示选选中文本本的

53、第一一个字符符的位置置,文本本框的第第一个字字符位置置为0。SelTTextt 运行属性性,用来来设置或指示选中中的文本本。SelLLenggth 运行属性性,用来来设置或指示选中中文本的的长度。Modiifieed 运行属性性,用来来指示编编辑框内内容是否否发生了了改变。CanUUndoo 用来指出出对编辑辑框中显显示内容容的改变变是否能能够撤消消。只读读属性HideeSellecttionn 用来决定定当编辑辑框失去去焦点时时,选中中的文本本是否还还是以选选中的方方式提供供视觉提提示。例如:如如果eddit11.teext为为abccdeff下列程程序运行行后,eeditt1选中中的文本本

54、是什么么呢?editt1.SSetFFocuus; eddit11.SeelSttartt:=11;editt1.SSelLLenggth:=3;TEdiit组件件的常用用方法SetFFocuus 该方法用用于为编编辑框设设置焦点点,无参参数。Cleaar 该方法用用来清除除编辑框框中的所所有文本本,无参参数。CleaarSeelecctioon 该方法用用来清除除编辑框框中选中中的文本本,无参参数。SeleectAAll 该方法用用来选中中编辑框框中的所所有文本本。Undoo 该方法用用来撤消消在编辑辑框中最最近所做做的编辑辑操作。CleaarUnndo 该方法用用来清除除“撤消”缓冲区区,

55、从而而不能对对以前的的操作做做撤消操操作,该该方法无无参数。CopyyToCClippboaard 该方法用用来把选选中的文文本复制制到剪贴贴板上,相当于于复制操操作。CutTToCllipbboarrd 该方法用用来把选选中的文文本移动动到剪贴贴板上,相当于于剪切操操作。PastteFrromCClippboaard 该方法用用来把剪剪切板上上的文本本粘贴到到插入点点处,相相当于粘粘贴操作作。TEdiit组件件的常用用事件OnChhangge 当编辑框框输入的的texxt属性性值发生生改变时时将触发发该事件件。OnKeeyPrresss 当用户按按下键盘盘上的AASCIII字符符键时触触发该

56、事事件。OnKeeyDoown 当用户按按下键盘盘上的任任何键时时都会触触发该事事件。OnKeeyUpp当用户按按下任何何一个键键后再松松开时将将触发该该事件。参见p554例题题2练习:新建一个个工程,窗体上上一个文文本框eeditt1,两两个按钮钮,caaptiion分分别为“剪切”,“恢复”,运行行后要求求在eddit11中输入入文本,点“剪切”,把eddit11中的内内容剪切切掉,点点“恢复”,把eddit11中的内内容恢复复出来。新建一个个工程,窗体上上文本框框ediit1,使用户户输入字字母一律律转换为为大写显显示(焦焦点在最最右端),保存存。新建一个个工程,实现功功能限制制:在ee

57、ditt1中只只能输入入10个字字母,超超过的在在ediit2中中显示。保存。按照要求求编写程程序:新新建一个个工程,在窗体体中添加加两个文文本框分分别为“Ediit1”、“Ediit2”,默认认显示内内容为空空。请设设置适当当的控件件属性,并编写写适当的的事件过过程,使使得程序序运行时时,只能能在Eddit11中输入入数字,且每输输入一个个字符,则显示示一个“*”,同时时在Eddit22中显示示输入的的内容。程序中中不得使使用任何何变量。程序编编写完毕毕后,运运行,查查看结果果。新建一个个工程,实现功功能:单单击eddit11框时,ediit1中中的内容容被全选选。保存存。按照要求求编写程程

58、序:新新建一个个工程,在窗体体中添加加一个文文本框“Ediit1”。编写写适当的的事件过过程,使使得程序序运行时时,如果果单击窗窗体,则则可以使使文本框框移动到到窗体左左上角;如果在在文本框框中输入入信息,则可以以使文本本框移动动到窗体体右上角角。程序序中不得得使用任任何变量量,只允允许通过过修改属属性的方方式移动动文本框框。程序序编写完完毕后,运行,查看结结果。3.1.3Meemo控控件TMemmo组件件的常用用属性属性说明Careetpoos 用来得到到光标的的位置.其中x表示所所在列,y表示所所在行,从0开始计计数。ScroollBBarss 用来设置置备注框框是否出出现滚动动条以及及滚

59、动条条的种类类。Linees 按行处理理文本。Tsttrinngs类类型,字字符串数数组,序序号从00开始。WorddWraap用来决定定当输入入的文本本到达右右边界时时是否插插入软回回车,换换到下一一行输入入。WanttRetturnns为布尔型型,它确确定在该该组件中中用户输输入的回回车键是是作为文文本的内内容还是是进入窗窗体中。若WaantRRetuurnss为Truue,则则用户输输入的回回车键作作为文本本的部分分;若WWanttRetturnns为Fallse,则用户户输入回回车键时时,激活活窗体中中的其它它在WaantRRetuurnss为Fallse时时,要在在备注中中输入回回车

60、,使使用Cttrl+Entter。WanttTabbs属性:该该属性为为布尔型型,它确确定在该该组件中中是否可可使用TTab键键。当WWanttTabbs为Truue可使使用。若若WanntTaabs为为Truue,则则用户不不能使用用Tabb键来选选定窗体体上的下下一组件件。也就就是说从从其它组组件中,用户可可以使用用Tabb键进入入该组件件,但在在该组件件中使用用Tabb键不能能进入其其它的组组件。Modiifieed 运行属性性,用来来指示mmemoo内容是是否发生生了改变变。TEXTT 用于取得得组件中中文本(字符串串)TMemmo组件件的常用用方法Add 该方法用用来向字字符串列列表

温馨提示

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

评论

0/150

提交评论