版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 Delphi 的窗体 与组件教学要求:掌握窗体、编辑类组件、按钮类控件、列表类控件、分组类组件、时钟组件、菜单组件、工具栏组件和工具 按钮、多选项卡的的属性、方法与事件,学会使用这些组件设计应用程序的界面。掌握 ShowMessage 、ShowMessageFmt 、 MassageDlg 、MassageDlgPos 、InputBox 、InputQuery 对话框 函数与对话框过程的特点,并能熟练应用。熟悉公共对话框控件组件的属性,方法、事件及应用。掌握创建新窗体的两种不同的方法及其应用。掌握 windows 的模式与非模式窗体的概念及应用方法。掌握焦点的含义,与焦点相关的属性
2、,应用焦点设计程序的方法。了解 CreateMessageDialog 函数的定义与用法、 speedbutton 和文件有关的控件的属性、方法与事件。从本章开始,将介绍Delphi编程的一些基本方法。通过这一部分的学习,可以了解开发 Windows 环境下应用程序的一些关键技术,并可以方便、快捷地开发一般的应用程序。为了简化编程工作,Delphi提供了许多功能强大的函数和类。其中很重要的一部分就是组件类。 本章将重点介绍常见组件及其编程应用。现在深入普及的 Windows操作系统中,方便快捷的人机交互界面主要是通过窗体和对话框实现 的。在Delphi中,这些窗体和对话框就是程序设计阶段的窗体
3、,Delphi的可视化设计工作就是在窗体中进行的。通常,窗体中会有 文字输入、滚动条、复选框、单选框、按钮等一系列组件,通过这些直观易懂的组件,可以方便的实现多种多样的功能。在Delphi中,这些运行期间出现在窗体和对话框中的组件称为可视组件 。在窗体中,还可以放置一些运行期间非可视的组件,对应其它的TComponent子类。这些不可视组件集中地实现了一些特殊的功能。比如,时钟控制等功能。TComponent 组件类,所有的组件都是由这个类派生来的。TControl子类(可视组件) 可分为两类: 窗体组件和图形组件。窗体组件对应 TWinControl 子类,是基于系统窗体的可视组件,具有窗体
4、句柄,可作为输入焦点或含有其它组件,例如TEdit组件、TPanel组件。图形组件对应 TGraphicControl子类,没有窗体句柄,不可作为输入焦点 ,也不能含有其它组件,例如Label组件。图形组件比窗体组件使用的资源少,尤其在组件数量比较多的情况下最好使用图形组件。组件组的关系如图所示。窗体和组件的关系非常密切。窗体就像一个容器,其中包容了可视组件和非可视组件。窗体和 组件之间除了具有上述的不同点之外,还具有一些相同点。例如,从面向对象编程的角度来看,所 有组件都是TComponent 类派生类的一个对象。窗体类(TForm)也是从TComponent类派生的,所以可以将窗体看成一个
5、特殊的组件 。有些组件也具有窗体的“容器”属性,也就是在这些组件中可以放置其它组件,通常这些组件 称为容器组件。例如 Tpanel组件就是一个容器组件,可以在 Tpanel组件中放置其他组件。Delphi中的所有组件是在可视组件库(Visual Component Library,缩写为VCL )中圭寸装的。可视组件库是Delphi中非常重要的一部分,不仅封装了所有组件对应的类,还封装了一些通用的类。 所有的这些类都是由一个基类派生出来的,也就是TObject类。了解可视组件库对于学习组件、使用Delphi很有帮助。Delphi中的主要组件栏Stan dard标准 Windows组件、框架、菜
6、单等Additio nal一些专用的 Windows组件Win 3232位Windows系统中的公用组件System进行系统操作的组件(包括定时器、多媒体和DDE等)Data Access操作数据库的组件,如访问数据库、表格、查询和报表等Data Con trols进行数据库控制的组件BDEBORLAND访问数据库的组件ADO通过ActiveX Data Objects访问数据库的组件In terBase提供与In terBase直接联接的组件MIDAS开发多层数据库应用程序的组件In ternetExpress开发InternetExpress应用程序(Web服务器应用程序和客户端多层数据库
7、应 用程序)的组件Internet开发Web服务的应用程序FastNet提供In ternet操作的一些组件Decisi on Cube为应用程序提供多维数据分析的组件DialogsWindows通用对话框组件Win 3.1提供与Windows 3.1兼容的一些组件Samples一些定制组件的例子Servers通用COM服务器组件DELPHI组件常见属性及说明属性说明Alig n设置组件对齐(相对于其父容器)Borderstyle设置组件边框形状Capti on设置组件标题Ctl3d设置组件边框是否为 3D模式,若BORDERSTYLE 设置为BSNONE则此属性无效Color设定组件背景颜色
8、Cursor设定鼠标经过组件时光标所显示的形状En abled设定组件是否能使用,当设为FALSE时组件会呈灰色Font设疋组件内文子的子型、子体大小、颜色等Height设定组件高度Helpc ontent用来为帮助说明文件中的索引值建立关联Left设定组件与父组件左边框间的距离Popupme nu设定鼠标右键(弹出式)快捷菜单Taborder设定组件在按下 TAB键后焦点(FOCUS )移动的顺序Tabstop若设为FALSE,则按TAB键后焦点并不会在此组件上停留Top设定组件与父组件上边框间的距离Visible设定组件是否可见,此属性只在执行时起作用Width设定组件显示宽度DELPHI
9、常见事件及说明事件说明On cha nge当组件有所改变时触发的事件On click当在此组件上按下鼠标左键时触发的事件On dblclick当在此组件上双击鼠标左键时触发的事件Onen ter当焦点进入此组件时触发的事件On exit当切换到其它组件使该组件失去焦点时触发的事件,但当切换到另一窗体或另一应用程序时此事件不会触发On keydow n当在拥有焦点的组件上按下某个键时触发的事件,按键包括所有的英文、数字键、方向键、功能键等On keypress当在拥有焦点的组件上按下某个键时触发的事件,但按键只包括所有的英文、 数字键、TAB、BACKSPACE、ENTER、ESCOn keyu
10、p当使用者放开键盘上的按键时触发的事件,按键看ONKEYDOWNOnm ousedow n当鼠标键在某个组件按下时触发的事件(其参数包括哪个鼠标键被按下、是否有特殊键(CTRL、ALT、SHIFT )被按下以及鼠标当前的坐标)Onm ousemove当鼠标在组件内移动时触发的事件Onm ouseup当鼠标键在组件上方放开时所触发的事件Onpaint在组件需要被重画时触发的事件,此时可进行自定义画法1.6窗体介绍窗体是编写Delphi程序的工作底稿区,凡是与用户进行交互的程序都得使用窗体来设计用户界面。在程序运行时,窗体实际上就是标准的应用程序主窗口、对话框及多文档界面的主窗口。根据不同的窗体类
11、型,Windows环境中的应用程序可以分为下面的三类:单文档界面(SDI)应用程序:这种应用程序同时只能打开一个文档。例如Windows系统附件中的“画图”程序,只能同时编辑一个图像文件。多文档界面(MDI)应用程序:一般这种应用程序具有一个父窗体和多个子窗体,可以同时打开 多个文档,分别在多个子窗体中显示。例如常用的word软件,可以同时编辑多个文档。对话框应用程序:这种应用程序的主界面基于一个对话框类型的窗体。例如Windows系统附件中的“磁盘扫描”程序。此外,有些应用程序在运行期间可以总是显示在桌面的最前端,例如在Windows中按下系统热键Ctrl+Alt+Del,激活的关闭程序窗体
12、会一直显示在其它应用程序的窗体之上,除非退出该程序。窗体由标题栏、工作区和边界组成。1.6.1窗体的属性窗体的属性是与其外观密切相关的。对于组件的属性除必要进行设定的外,一般使用它的默认值。1 窗体的位置与大小窗体的位置与大小是由属性Left、Top、Width、Height、Clie ntWidth、Clie ntHeight、Positi on、Align来确定的。一般来说前四个属性可以定义控件在它们所在的容器组件中的物理位置和大小,在Delphi中的可见组件都有这四个属性,而不可见组件没有这些属性。Heigth属性和Width属性分别指定窗体的高度和窗体的宽度窗体的左上角相对于父容器(屏
13、幕)的坐标:Top属性和Left属性Align属性用来设定窗体相对与父容器(屏幕)的对齐方式,该属性为枚举类型,取值如下取值含义alBotton窗体位于屏幕的下方,宽度为整个屏幕宽(Width属性失效),高度为Heigth属性值alClie nt窗体占据屏幕的中部,Width与Height属性失效alLeft窗体位于屏幕的左方,宽度为Width属性值,高度为整个屏幕(Heigth属性失效)alNo neWidth与Height属性有效,以及其他属性有效alRight窗体位于屏幕的右方,宽度为Width属性值,高度为整个屏幕(Heigth属性失效)alTop窗体位于屏幕的上方,宽度为整个屏幕宽(
14、Width属性失效),高度为Heigth属性值Position属性:在应用程序运行阶段,确定窗口在屏幕上的位置。只有当Align属性为alNone时才有效,属性为枚举类型,取值如下:取值含义poDesig ned窗体运行时显示的位置和大小与设计相冋poDefault窗体每次显示时,与上次比较,往右下角移动了一些位置;窗体的高度和宽度由Windows 决定poDefaultPosO nly窗体以设计期间的大小显示,窗体显示的位置较上次向右下角移动了一些。如 果窗体以设计时的大小不可以在屏幕上完全显示,就移动到屏幕的左上角显示。poDefaultSize Only窗体以设计期间的位置显示,窗体的大
15、小由Win dows决疋poScree nCen ter窗口尺寸由窗体的Height和Width属性参数确定,但是窗口位于屏幕的中央poDesktopCe nter窗体以设计期间的大小显示;窗体显示的位置总在屏幕的中间。2.窗体的名称与标题Caption属性确定了窗体的标题 ,当窗体最小化后,Caption属性值为图标的文本说明。通常,对于多文档界面(MDI)应用程序,当主框架窗体中的子窗体最大化显示的时候,应用程序的标题栏中显示的内容为“ -”;当子窗体非最大化窗体显示的时候, 主框架窗体中只显示应用程序的名称,子窗体有自己的标题栏,其中显示该窗体打开的文件名。所 以,当窗体的显示方式发生了
16、改变后,应该立即改变标题栏中的内容。默认情况下 Name属性与Caption属性值相同,但不能混淆两者的作用。 Name属性是窗体对 象的变量名,当工程中有多个窗体时, 每个窗体的名称必须是唯一的, 即其名称不能相同。 属性Name 用来标志工程中的窗体。通常,应该在系统 开发的设计阶段就将整个工程中所有窗体的名称确定,然后在编程阶段根据 设计文档修改窗体的 Name属性。不能在程序运行期间通过代码修改Name属性。3.窗体的外观与风格与窗体的外观与样式有关的属性有:BorderIcons、BorderStyle、FormStyle、WindowStyle、HorzScrollBar 和 Ve
17、rtScrollBar 属性等。FormStyle属性可以分别实现各种类型的应用程序,取值如下:取值含义FsNormal普通的窗体fsMDIChildMDI(多文档窗体)的子窗体fsMDIFormMDI(多文档窗体)的主窗体fsStayO nTop位于桌面顶层的窗体BorderIcons属性用来指定窗体标题栏上的图标,该属性为集合类型,取值如下取值含义biSystemMe nu在窗体的标题栏中显示系统菜单biMi ni mize在窗体的标题栏中显示最小化按钮biMaximize在窗体的标题栏中显示最大化按钮biHelp在窗体的标题栏中显示帮助按钮,只有窗体的 BorderStyle 属性设置为
18、bsDialog 或者窗体属性 BorderIcons 中不包括 biMinimize 和 biMaximize 时,biHelp设置才有效。确定窗体的边界类型:BorderStyle属性,该属性为枚举类型,取值如下取值含义bsDialog标准对话框边框,边框大小不可以改变。bsS in gle单线框,大小不可以改变bsN one窗体没有边框,也没有标题栏,边界的大小不可以改变,边框不能移动。bsSizeable边框可移动大小可变的标准窗体bsToolWi ndow风格与bsSingle相同,只是标题栏比较小。另外,对于这种风格的窗体,属性 BorderIcons 中设置的biMinimize
19、 和biMaximize 并不起作用。bsSizeToolWi n风格与bsSizeable 相同,只是标题栏比较小。对于这种风格的窗体,属性BorderIcons 中设置的 biMinimize 和 biMaximze 也不起作用。注意:窗体属性Borderlcons的设置与属性BorderStyle的设置可能会发生互斥, 例如属性Borderlcons 的 biMinimize 和 biMaximize 会与属性 BorderStyle 的 bsDialog 冲突,属性 Borderlcons 的 biHelp 会与属 性 BorderStyle 的 bsSizeable 冲突。设置窗体的
20、显示状态:WindowStyle属性,该属性为枚举类型,取值如下取值含义wsNormal窗体运行时显示的位置和大小与设计相冋wsMi ni mal窗体运行时,最小化wsMaximized窗体运仃时,最大化4. Font属性属性 Font 用来设置窗体中文字的字体、颜色和字号等,包含 Color、Name、Size 或 Style 等属性。如果将窗体中组件的 属性ParentFont设置为True ,那么该组件的字体设置就与其父级窗体的字体设置完全一样了。在程序设计的时候,为了保持整个系统风格的统一,应该使工程中的窗体风格尽量一致,可以 先设置窗体的Font属性,然后将窗体中所有组件的Paren
21、tFont属性设置为True就可以了。一般不要单个地对窗体中的组件进行Font属性的设置。5. Icon属性属性Icon用来指定标题栏中显示的图标。单击对象编辑器Icon属性右边的省略号按钮,在弹出的Picture Editor对话框中点击Load.按钮,就可以装入一个制作好的图标。使用Delphi自带的工具Image Editor 可以方便地制作图标。通过菜单Tools/ Image Editor 可运行Image Editor 编辑制作图标。如果需要动态地改变窗体Forml中的图标,可以调用下面的过程:其中Icon 1.ICO 是要在窗体Forml标题栏中显示的图标文件名。1.6.2窗体的
22、事件窗体的事件很多,常用事件:1. Create 事件和 Destroy 事件当创建窗体时,就产生Create事件;当释放窗体所占用的空间时,就会产生Destroy事件。这两个事件过程的基本语法形式为:procedure TForm1.FormCreate(Se nder: TObject);procedure TForm1.FormDestroy(Se nder: TObject);应用:通常整个程序的初始化工作放在主窗体的Create事件中进行处理,比如读入将要用到的图形资源等,而这些资源的释放则放在主窗体的Destroy事件中进行处理。例如:procedure TForm1.FormCr
23、eate(Se nder: TObject);beginform1.Caption:=欢迎使用!;form1.Color:=clred;隶书;button1.Caption:=请按键;butto n1.Left:=130;butto n1.Top:=500;butto n1.Height:=50;butto n1.Width:=100;en d;当创建窗体并显示时 ,下列事件按顺序出现:Create、Show、Paint、Activate。参见表1-142. Show 和 Hide 事件Show事件和Hide事件分别在窗体显示与隐藏时被触发。当窗体的Visible属性设置为True时,窗体被显
24、示,同时触发Show事件;当窗体的Visible属性设置为False时,窗体被隐藏,同时触发Hide事件。这两个事件过程的基本语法形式为:procedure TForm1.FormShow(Se nder: TObject);procedure TForm1.FormHide(Se nder: TObject);3. Activate 和 Deactivate 事件事件发生的条件:当激活窗体时,就产生Activate事件;当窗体不再激活时,就会产生Deactivate事件。这两个事件过程的基本语法形式为:procedure TForm1.FormActivate(Se nder: TObjec
25、t);procedure TForm1.FormDeactivate(Se nder: TObject);4 .关闭窗体 close 和closequery 事件参见表 1-155 .改变窗体大小时Resize事件和paint事件在调整窗体的大小时,就会出现Resize事件。该事件过程的基本语法形式为:procedure TForm1.FormResize(Sender: TObject);1.6.3窗体的方法参见常见方法列表:p25窗口可以分为模态显示和非模态显示两种显示形态。采用模态显示时 用ShowModal方法打开窗口。打开模态窗口之后,同一程序其他窗口的操作被禁止,直到把模态窗口关闭
26、,其它应用程序的窗口可以被操作。非模态显示的窗口 用Show 方法打开。非模态窗口打开后可以不关闭,然后再去打开其他窗口。1.6.4创建新窗体一个对象的生命周期是从它被创建那一刻开始。当我们不再使用某个对象时,可以将这个对象从内存空间中删除,这样可以避免不必要的数据浪费内存空间。默认构造方法是 Create方法。使用这种方法构造的对象 (变量)的值,是该对象实体数据所在的 内存地址。默认的解构方法是 Destroy ,推荐使用的是 Free。使用Free方法,既能删除这个对象,还能 删除对象实体所占的内存空间。窗体是一个对象,要想在程序中操作它,必须先调用其create函数创建它。要注意程序设
27、计状态 与程序运行状态的 区别。设计好的窗体在运行时,都应该先创建出来才能 执行。主窗体:当应用程序运行时,首先显示出来的窗体一般称之为主窗体。主窗体一般由应用程序自动创建。但一个应用程序,一般不会只有主窗体,其他窗体有两种不同的创建方式。包括:静态创建(自动创建)和动态创建(手动创建)1. 静态创建新窗体的步骤打开已有工程文件新建窗体建立主窗体与该窗体的联系。引用单元unit2。在进行编译时系统会自动提示并添 加代码。也可手工在主窗体单元中添加对unit2的引用代码。Use unit2保存并运行。2. 设置工程主窗体和自动创建与手动创建窗体的方法3. 动态创建新窗体静态创建的窗体在运行时将全
28、部装入内存。当窗体很多时,会引起系统资源紧张。通过动态创 建的方法,在需要调用某个窗体时,临时创建,使用完后立即释放。修改工程选项。选择菜单 project|options 系统打开project options对话框,在 forms选项卡中,所有窗提出现在自动创建列表框中,选择不需自动创建的窗体,移到“Availableforms ”列表框中。在主调窗体中修改程序代码。Form2:=tform2.create( nil);Form2.show;动态创建的窗体在运行结束后,一般应手动释放,以释放其所占用的内存空间。释放窗体的方法一般有两种的destroy,free。一般用free,两者在用法上
29、稍有不同,请查阅帮助文档进一步了解。Form2.destroy;Form2.free;或者 form2.Release;作业:1. 设计一个不含系统菜单的窗体,添加一个按钮实现窗体的关闭。2. 设计一个不能改变大小的窗体。3. 设计一个透明窗体。提示:首先设置窗体的 TransParentColor - True;4.然后设置窗体的Color与TransParentColorValue为相同值新建一个工程,创建三个窗体butto n1,butto n2两按钮,选择form1,form2,form3 ,将 butto n1,以无模式显示form1设为主窗体,在Form2,选择 button2,f
30、orm1放置以有模式显示Form3 。5.form1设为主窗体,在6.form1,form2,form3 ,将由应用程序自动创建,选择button1,以无模式显示新建一个工程,创建三个窗体button1,button2 两按钮,form2手动创建,选择 button2,先创建form3,并以有模式显示 Form3。请编写程序验证窗体Create Show、Pai nt、Activate等事件激活的顺序。form1放置Form2,form3窗体组件(FORM )常见属性属性说明Active指示此窗体是否拥有 FOCUSActivec on trol指示窗体中目前拥有 FOCUS的组件Active
31、mdichild指示主窗体中目前拥有 FOCUS的子窗体Activeolec on trol用于取得或设定此窗体上的 OLE控制,以响应FOCUS改变Borderic ons指定哪些ICON显示在窗体的TITLE BAR上Bordersytle用以指定窗体BORDER外观及行为Canvas提供使用者可在窗体上CLIENT 内自行显示的画板,一般在ONPAINT事件中使用Clie ntha ndle提供可存取系统内部使用的MDI CLIENT WINDOW HANDLEClie ntheight窗体客户区高度Clie ntrect窗体客户区所对应的矩形Clie ntwidth窗体客户区宽度Def
32、aultm on itor指定此窗体所显示的预设的显示器,用于多显示器环境下Desig ner此窗体的设计界面,一般不用用户设定Droptarget用以指定窗体是否为目前 DRAG AND Drop 动作的目标Floati ng用以指示此窗体是否正在停泊在另一个视窗内Formstate用于指示此窗体所处状态Formstyle用于指示窗体的样式Helpfile用于指定HELP文件Icon指定窗体最小化时所显示的 ICONKeypreview指定此窗体是否需在目前的ACTIVE组件之前取得键盘输入Mdichildcou nt用于取得子窗体数目Mdichildre n用于取得子窗体(数组)Me nu
33、用于指疋窗体主采单Modalresult当窗体作用为 MODAL对话框时,作为对话框的效果Mo nitor用于指示窗体所显示的显示器Oldcreateorder指定ONCreate 和ONDESTROY 事件何时发生Oleformobject对包含在此窗体内的 OLE对象指定OLEFORM界面Pare nt设定此窗体的 PARENTPare ntbidimode指定是否此窗体使用 PARENT的BIDIMODEPixelsperi nch表示此窗体设计时系统上字形的比例Positi on表示此窗体的大小及位置Prin tscale表示此窗体打印的比例Scaled用于指定窗体的大小是否依据PIX
34、ELSPERINTCH 属性来指定Tilemode用于指定TILE方法被调用时子窗体如何排列Visible用于设定此窗体是否被显示Win dowme nu如果窗体是一个MDI PARENT窗体,用于指定视窗的菜单Win dowstate用于指定窗体如何显示于屏幕中窗体组件(FORM )常见事件及说明事件说明Onpaint当窗体必须重画时发生On help当窗体收到HELP请求时发生On dragdrop当一个对象拉进此窗体并丢下时发生On dragover当一个对象拉进此窗体时发生Oncon stra in edresize在ONCANRESIZE 事件发生后发生Oncan resize当企图
35、改变窗体尺寸时确认是否改变On resize当窗体尺寸改变时发生On startdock当对象开始停泊时发生Onenddock当对象停泊结束时发生Onundock当窗体解除停泊时发生On dockdrop当其它窗体停泊到此组件时发生On dockover当其它窗体向此组件停泊接近时发生On getsitei nfo当有关停泊消息传回此窗体时发生On create当窗体创建时发生On close当窗体即将关闭时发生On closequery在窗体即将关闭时确认是否真的关闭窗体On destroy当窗体释放时发生Onshow当窗体显示时发生On hide当窗体隐藏时发生On activate当窗体
36、获得FOCUS时发生On deactivate当窗体失去FOCUS时发生3.3使用焦点焦点focus就是光标,当对象具有焦点时,才能响应用户的操作,焦点就是对象接受用户操作(鼠标或键盘)的能力。1与焦点相关的属性:主要有visibleenabled ,当他们都为true时,对象才能够获得焦点。有些控件不具有焦点。?哪些呢?2. 获得焦点的方法:程序设计时,通过代码设定,调用组件的setfocus 方法,例如:editl.setfocus;程序运行中:用户操作时(1) 鼠标单击对象(visible enabled都为true)(2) 按Tab键或Shift+Tab在当前窗体的各对象之间巡回移动焦
37、点(3) 按热键选择对象。3. 获得焦点的顺序:TabOrder属性决定控件的接收焦点的顺序。从0开始。TabStop属性决定焦点是否能停在该控件上。False跳过该控件。3.1 与输入输出有关的控件LabeK标签)一般放在对象的旁边,用来标记这些对象,从而对用户的操作进行提示,也可以用来显示信息。可以 在标签中设置 热键,也即在Caption属性值段中输入含有“&勺字串,当用户使用Alt关键字母时,将自动选中它所指向的对象。方法是设置Label部件的FocusControl属性,在Label控件在标准(Standa值段中,选用与它关联对象的对象名称。3.1.1 Label 控件期L名础Cap
38、ti on即标题属性,这是 TLabel组件最重要的属性,用来设置该组件中显示的文本。AutoSize布尔型,用来决定标签是否自动随文本的长短而改变大小。WordWrap布尔型,用于设定组件文本宽于组件宽度时是否自动换行Alig nment枚举型,用来决定标签中显示的文本的对齐方式。1.常用属性En abled布尔型,用来决定该组件是否能即响应用户的操作。Visible布尔型,用来决定在程序运行时组件是否可见Font该属性用来设置标签组件中显示的文本字体,是一个对象属性。ShowAccelChar布尔型,用来确定标签的Caption是否出现表示热键的下划线。Tran spare nt布尔型,用
39、来确定标签是否为透明的。2.标签的应用例1 :利用标签设计并控制文本的投影效果。包括静态设置属性,动态改变属性。课堂练习:修改实验一的登录窗体,设计如图所示界面,要求两个label都采用折行显示 方式,对齐方式采用上下、 左右均采用居中对齐, 且当按热键U, P时编辑框 1,2可分别获得焦点。3.1.2 Edit 控件Edit、MaskEdit、Memo部件都是用作接收、显示用户输入文本的。 它们具有一些相同的属性。Readonly 在运行时间内控制对象是否可以进行Windows的操作,当此值 为False时,他们接受用户的输入。MaxLength 可以设置输入文本的长度限制。 值为0时,不限
40、制文本长度。用PasswordChar属性可以按照显示隐蔽密码的方法显示用户输入文本,例如,它的值为 “*运行时,输入将用 “来显示,芻爲人巒栏从而提供了一种安全措施。当AutoSelect 属性为true 时,文本框获得焦点时,文本被选中,呈高亮度显示,按键操作会将这些字符删除,替换成当前的键盘输入。这种设置为操作提供了方便,用户不必每次先删除原来的文本;但也可能会导致误删文本。将其设置成False,这种替代功能就被取消了。: |Align 属性调整该对象在窗口中的对齐情况,有alNone(无对齐指定 卜alBottom(底部对齐卜alClient(全窗口显示)等可以选择;而 Alignme
41、nt 属性则决定了文本在框中的对齐显示格式。Lines 属性访问的文本被存储在一个TStrings对象中,按动它的省略按钮,可以通过对话框向它增加文本,也可以用程序对这一属性进行操作,以达到修改或增加备注文本的目的。ReadO nly该属性用来决定编辑框中显示的文本是否可以修改。PasswordChar用来决定用户输入的字符是原样显示还是以密码方式显示。CharCase用来控制编辑框中文本的大小写。AutoSelect用来决定当编辑框获得焦点时,是否自动选定显示的文本。 请输入帐号画囲BorderStyle用来决定编辑框组件是否有边框及边框的样式。MaxLe ngth用来决定编辑框中最多能够输
42、入或显示的字符个数。SelStart运行属性,用来设置或指示选中文本的第一个字符的位置,文本框 的第一个字符位置为 0。SelText运行属性,用来设置或指示选中的文本。SelLe ngth运行属性,用来设置或指示选中文本的长度。Modified运行属性,用来指示编辑框内容是否发生了改变。CanUndo用来指出对编辑框中显示内容的改变是否能够撤消。只读属性HideSelectio n用来决定当编辑框失去焦点时,选中的文本是否还是以选中的方式提供视觉提示。例如:如果editl.text为abcdef 下列程序运行后,edit1选中的文本是什么呢?editl.SetFocus;edit1.SelS
43、tart:=1;editl.SelLe ngth:=3;2. TEdit组件的常用方法SetFocus该方法用于为编辑框设置焦点,无参数。Clear该方法用来清除编辑框中的所有文本,无参数。ClearSelectio n该方法用来清除编辑框中选中的文本,无参数。SelectAll该方法用来选中编辑框中的所有文本。Un do亥方法用来撤消在编辑框中最近所做的编辑操作。ClearU ndo该方法用来清除撤消”缓冲区,从而不能对以前的操作做撤消操 作,该方法无参数。CopyToClipboard该方法用来把选中的文本复制到剪贴板上,相当于复制操作。CutToClipboard该方法用来把选中的文本移
44、动到剪贴板上,相当于剪切操作。PasteFromClipboard该方法用来把剪切板上的文本粘贴到插入点处,相当于粘贴操作。3. TEdit组件的常用事件OnChange当编辑框输入的text属性值发生改变时将触发该事件。On KeyPress当用户按下键盘上的 ASCII字符键时触发该事件。On KeyDow n当用户按下键盘上的 任何键时都会触发该事件。OnKeyUp当用户按下任何一个键后再松开时将触发该事件。参见p54例题2练习:1 新建一个工程,窗体上一个文本框editl,两个按钮,caption分别为剪切”,恢复”,运行后要求在editl中输入文本,点“剪切”,把editl中的内容剪
45、切掉,点“恢复”,把editl中的内容 恢复出来。2 新建一个工程,窗体上文本框editl,使用户输入字母一律转换为大写显示(焦点在最右端),保存。3 新建一个工程,实现功能限制:在editl中只能输入10个字母,超过的在 edit2中显示。保存。4按照要求编写程序:新建一个工程,在窗体中添加两个文本框分别为“Editl “Edit2 ”,默认显示内容为空。请设置适当的控件属性,并编写适当的事件过程,使得程序运行时,只能在Editl中输入数字,且每输入一个字符,则显示一个“*”,同时在Edit2中显示输入的内容。程序中不得使用任何变量。程序编写完毕后,运行,查看结果。5 新建一个工程,实现功能
46、:单击editl框时,editl中的内容被全选。保存。6 按照要求编写程序:新建一个工程,在窗体中添加一个文本框“Editl ”。编写适当的事件过程,使得程序运行时,如果单击窗体,则可以使文本框移动到窗体左上角;如果在文本框中输入信息,则可以使文本框移动到窗体右上角。程序中不得使用任何变量,只允许通过修改属性的方式移动文本框。程序编写完毕后,运行,查看结果。3.1.3 Memo 控件1 TMemo组件的常用属性属性说明Caretpos用来得到光标的位置其中x表示所在列,y表示所在行,从0开始计数。ScrollBars用来设置备注框是否出现滚动条以及滚动条的种类。Lines按行处理文本。Tstr
47、ings类型,字符串数组,序号从0开始。WordWrap用来决定当输入的文本到达右边界时是否插入软回车,换到下一行输入。Wan tReturns为布尔型,它确定在该组件中用户输入的回车键是作为文本的内容还是进入 窗体中。右 WantReturns为True,则用户输入的回车键作为文本的部分; 若 WantReturns 为False,则用户输入回车键时,激活窗体中的其它在 WantReturns 为False时,要在备注中输入回车,使用Ctrl+Enter 。WantT abs属性:该属性为布尔型,它确定在该组件中是否可使用 Tab键。当WantTabs 为True可使用。若 WantTabs
48、为True ,则用户不能使用 Tab键来选定窗体 上的下一组件。也就是说从其它组件中,用户可以使用Tab键进入该组件,但在该组件中使用 Tab键不能进入其它的组件。Modified运行属性,用来指示memo内容是否发生了改变。TEXT用于取得组件中文本(字符串)2 TMemo组件的常用方法Add该方法用来向字符串列表的尾部添加一个字符串。其语法格式如下: function Add(const S: string): Integer; virtual;Clear该方法用来清空字符串列表。其语法格式如下:procedure Clear; virtual; abstract;Delete该方法用来从
49、字符串列表中删除一个指定的字符串。其语法格式如下:procedure Delete(I ndex: In teger); virtual; abstract;In sert用来向子符串列表中插入一个子符串。其语法格式如下:procedureInsert( Index: Integer ; const S: string); virtual; abstract;Move该方法用来在字符串列表中移动字符串的位置。其语法格式如下:procedure Move( Curlndex , Newlndex: Integer); virtual;LoadFromFile该方法的作用是用指定的文件填充字符串列
50、表。其语法格式如下:procedure LoadFromFile(c onst FileName: stri ng); virtual;SaveToFile该方法用来把字符串列表中的数据写到某文件中去。其语法格式如下: procedure SaveToFile(c onst FileName: stri ng); virtual;APPEND在末追加一行文本例:/在最后增加一行memol.Li nes.delete (5);/ 删除第六行memol.Lines.insert(3,ssss);在第 4 行插入新行memol.Lines.move(2,4); 移动第 3 行到第 5 行 参见p57
51、例题33.1.4 MaskEdit 控件? TMaskEdit组件的常用属性EditMask该字符用于控制输入数据的格式。掩码字符串的组成:三部分组成,每一部 分由;分隔。? 主要部分确定数据格式,特殊字符及其意义参见? 第二部分决定掩码中的字符串是否作为数据的一咅 示不作为,1 表示作为。? 第三部分,指出掩码中的代表未输入数据的字符。p65 表 3-13。B分。两个取值0表EditText该属性代表TMaskEdit组件输入的格式化文本。掩码编辑框(MaskEdit )是一种特殊的编辑框。使用它可以设计出许多复杂的输入格式。在选用MaskEdit之后,需要为它设计一个输入格式。方法如下:首
52、先在窗体上将 MaskEdit选中,在对象查看器(Object Inspector )中找到EditMask属性,双 击它,弹出一个如下图所示的对话框。对话框左上角的In put Mask编辑框用于输入掩码格式。 掩码格式可以分为三部分,每个部分之间用分号“;”分开,第一部分;第二部分;第三部分如“ !90:90:90;1;_”。下面解释各输入格式符的意义:1. 输入格式的第一部分是掩码本身,也就是数据输入格式。在这一部分用一些特殊的格式符 来表示应输入的字符类型及格式,如|!IOA9:CII 这样一串输入格式掩码。常用的MaskEdit输入格式符有:格式符意义l和L表示该位置只可 该位置必须
53、是一个冃匕疋字符一个字母,可以用光标键跳过它,但是不能是其它类型的字符。L。a和Aa表示该位置只可台口是 冃匕疋一个字母或数字字符。A表示该位置必须疋一个字母或数字字符。c和Cc表示该位置只可台台是 冃匕疋一个字母,C表示该位置必须有一个字母。9和09表示该位置只可台口是 冃匕疋个数字,0表示该位置必须有一个数字。和格式符表示随后的字母均以小写的形式显示,直到遇到一个格式字符或 格式符。格式符则和 正好相反。表示不作大小写转换,以输入时的形式为准。表示该格式符之后的那个掩码格式符将作为数据中的普通字符对待。当用户想在数据中放进一个掩码格式符时,应该在这个格式符前放一个符号。如A ,等等。#表示
54、该位置可能是1 一个数字或正负号。!如有!表示数据前的空格将不被保存在数据中,没有!则数据后的空格不被保存。!格式符只能放在掩码格式符的第个字付处。;和/标准的分隔符,可作为数据的一部分。其中/在显示时为一而非/。2. 在输入格式中的第二部分只有0和1两种选择。如为1,则掩码中的非用户输入数据和标准分隔符等其它各种字符会作为数据的一部分保存;为0则不保存。3. 输入格式的第三部分用于表示数据中的空位用那个字符代替显示。!(9999)999999;1;_“!”将前面的空格去掉。“ ( ”区号的左括号。因为括号是特殊字符,所以在前面加“”。“9999 ”,区号的4个号码,当然若改成“ 0000 ”,则用户一定要输入区号。“ ) ”区号的右括号。“99
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 申请贷款延期合同范例
- 瓷砖加工协议合同模板
- 简易劳动就业合同范例
- 二零二四年度网络交易平台安全服务协议(04版)3篇
- 用工合同模板2014
- 社保补缴合同范例
- 职工思想教育管理制度(3篇)
- 矿棉板施工合同范例
- 球队代言品牌合同范例
- 2024公民委托代理合同版
- 专业课程融入思政工作的教学设计理念与方法(课堂PPT)
- YT100使用手册-汇聚云
- 消防安全单位基本情况档案
- 露天矿山危险有害因素警示牌
- TEA1716中文版手册(个人翻译)
- 中医常见病辨病、辩证、治法与方剂
- 价值观评价及岗位绩效考核制度(参考)
- 【人教版】八年级英语上册 Unit 7 全单元英文教案
- 灯光音响、舞台设备、扩声最新的行业标准、规范及修改说明
- a整车技术部设计指南01前舱布置篇
- 0-1整数规划的算法及其应用
评论
0/150
提交评论