收藏 分销(赏)

第三章 Delphi窗体.ppt

上传人:xrp****65 文档编号:13219663 上传时间:2026-02-05 格式:PPT 页数:49 大小:254KB 下载积分:10 金币
下载 相关 举报
第三章 Delphi窗体.ppt_第1页
第1页 / 共49页
第三章 Delphi窗体.ppt_第2页
第2页 / 共49页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,人民邮电出版社,第3章 窗体的使用,窗体是编写,Delphi,程序的工作底稿区,凡是与用户进行交互的程序都得使用窗体来设计用户界面面。在程序运行时,窗体实际上就是标准的应用程序主窗口、对话框及多文档界面的主窗口。因此在编写程序时一定要掌握如何在窗体中加入、选定、删除、对齐组件等方法。另外对窗体本身及各组件的属性及方法也必须有一定的认识与了解。,退出,3.1 窗体和组件,3.2 窗体中组件的操作,3.3 窗体组件的属性,3.4 窗体的事件,3.1 窗体和组件,3.1.1 窗体和组件的关系,1.窗体与组件的包容关系,窗体与组件的包容关系是指窗体是一种容器,组件就像是容器中包容的对象。从程序设计时组件放在窗体上我们就可以直观地看出来,另外在,Object Pascal,的代码上也可以反映出来。如当我们在窗体上放一个标签、一个编辑框、一个按钮时,程序代码中的界面部分为:,type,TForm1=class(,TForm,)/,定义窗体类,Button1:,TButton,;/,定义窗体类的,Button,成员,Label1:,TLabel,;/,定义窗体类的,Label,成员,Edit1:,TEdit,;/,定义窗体类的,Edit,成员,private,Private declarations,public,Public declarations,end;,var,Form1:TForm1;/,定义一个窗体,2.对窗体的理解,我们知道窗体是,Delphi,基本的构造模块,,Delphi,程序设计就是在窗体上进行的。当程序运行时,窗体实际上就是我们看到的各种窗口和对话框。,在窗体上放置的组件有些是可见的(称为控件),有些是不可见的。用户可以通过可见的组件来操作应用程序,对不可见的组件,用户无法直接与之进行交互式操作,需要通过某种控件才能访问到它们。,实际上,窗体也是一种组件,因此对于窗体也可以设置窗体的属性、编写事件处理程序。,3.组件的特性,从面向对象程序设计的角度来看,组件就是对象,这些对象具有下列特征:,封装性,封装了数据和数据的访问方法。,继承性,继承了父类中的数据和方法。,多态性,从一个祖先派生出来的对象之间可以进行可替换的操作。,Delphi,中的所有组件都是从共同的祖先,Tcomponent,类派生出来的,因而都有一些共同的特性。,3.1.2 组件的层次结构,Delphi,提供了可视化组件库,VCL(Visual Component Library),,通过,VCL,提供了大量的功能各异的可见和不可见组件,从而使,Delphi,具有真正可视化和快速的特点。,1.控件,可见的组件也称为控件,在程序运行时用户可以与其进行交互。一般来说这些控件在设计阶段与运行阶段的外观是相同的,因此对设计阶段的窗体布局带来了方便。控件可分为三类:窗口控件、图形控件、,ActiveX,控件。,2.不可见组件,不可见组件是用户无法与其进行交互的组件。在设计阶段它表现为一个小图标,通过该图标可以设置组件的属性、方法等。这些组件主要用于完成各种不同的任务,为应用程序在运行时提供后台服务,如菜单组件、定时器组件等。,3.1.3 组件的分类,这里对组件的分类是按实现的功能进行分类的。,1.组件的公共元素,每个组件都包含一系列的属性、方法和事件。其中一部分是从父类中继承而来的,称为公共元素,如每个组件都有一个单击事件,它就是所有组件的公共元素。,2.组件的关键元素,每一组件都有自己特殊的元素,这些元素称之为关键元素。如单选按钮有一个,Checked,属性,它表示单选按钮的状态(是否被选中);,Name,属性是所有组件都有的,它表示组件的名称。,3.2 窗体中组件的操作,在启动,Delphi,或选择,File|New|Form,菜单命令建立应用程序后,出现的程序设计工作底稿区为空白。从组件选项板中选定所需的组件就可以构造应用程序。,在组件选项板中的组件图标凸起表示未选定,凹下表示选定;鼠标指针图标 凹下表示没有选定组件,凸起 表示有组件选定。,3.2.1 组件的添加,在窗体中添加组件有以下两种方法,可以根据需要来选择其中一种方法。,1.方法一,添加组件到窗体中,可使用下面的操作过程:,第1步:选定组件,在组件选项板上单击包含要用组件的页标签,然后单击要用的组件。,第2步:添加组件,将光标移动到窗体要放置选定组件的左上角单击。这时组件以默认的大小出现在窗体上。,2.方法二,添加组件到窗体中,可使用下面的操作过程:,第1步:选定、添加组件,在组件选项板上单击包含要用组件的页标签,然后双击要用的组件。则选定的组件就会出现在窗体的正中央。若窗体的正中央已有组件,则添加的组件放在其上。,第2步:移动组件到适当的位置,将光标移动到窗体中央的组件上,将其拖动到窗体中的适当位置。,若要一次添加多个相同类型的组件,使用下面的操作过程:,第1步:按住,Shift,键。,第2步:选定组件,在组件选项板上单击包含要用组件的页标签,然后单击要用的组件。选定的组件图标凹下且边缘呈蓝色。然后放开,Shift,键。,第3步:在窗体中添加选定的组件,将光标移动到窗体的适当位置单击,移动、单击,,,,直到添加的组件数量满足为止。,第4步:放弃选定的组件。,3.2.2 选定组件,在窗体中添加组件后,要对其进行操作,必须首先选定它。选定单个组件的方法为单击该组件、或用对象编辑器上的对象选择器选定组件、或激活窗体后,用,Tab,键来选定组件。选定的组件周围有框线,并有8个控点出现。,要选定多个组件,按住,Shift,键,然后单击要选定的组件或单击要选定的多个组件区域的左上角,拖动鼠标到右下角,在该区域中的所有组件就被全部选定。,若组件在容器组件内,拖动鼠标前按住,Ctrl,键。,要选定窗体中的所有组件,选择,Edit|Select All,菜单命令。,3.2.3 改变组件的大小,对在窗体中的组件可以改变其大小,其操作过程为:,第1步:选定要改变大小的组件,第2步:将光标放在选定的组件的边框或一个角上,当鼠标光标形状改变形状后,拖动鼠标到适当的位置。,3.2.4,移动和删除组件,若要移动窗体中的组件,首先选定它,然后将其拖动到新的位置上即可。,若要删除窗体中的组件,首先选定它,然后按,Del,键或选择,Edit|Delete,就可删除选定的组件。,3.2.5 组件的剪切、复制与粘贴,对组件可以进行剪切、复制与粘贴的操作,其操作方法与,Windows,中的其它对象的操作方法是相同的。,3.2.6 组件的对齐,使用对齐对话框的操作过程为:,第1步:选定窗体中需要对齐的组件。,第2步:选择,Edit|Align,菜单命令,这时出现“,Alignment”,对对话框,如图3-1所示。,选择,View|Alignment Palette,菜单命令,则出现对齐方式选项板。从中选择需要的对齐方式。除居中对齐是以窗口中央为基准外,其它对齐方式的对齐是以第一个选定的组件为基准。,另外,在设计时使用窗体中的网格点也可辅助对齐组件(这就是窗体中显示网格点的含义)。,关于网格点的各种设定,可在环境选项对话框中进行设定。选择,Tools|Environment Options,菜单命令,弹出,Environment Options,对话框,单击设计者(,Designer),页标签,这时的对话框如图3-2所示。,3.2.7 组件的前后次序调整,在添加组件时,有可能出现比较小的组件被后来添加的组件盖住了,这就要调整组件的前后次序。其操作过程为:,第1步:选定要调整的组件。,第2步:选择,Edit|Bring,toFront,或,Bring to Back,菜单命令,使选定的组件移动到前面或后面。,3.2.8 使用容器组件,显然窗体是一个可以容纳其它组件的容器组件(,Container Component)。,其它的容器组件还有,GroupBox,、Panel、Notebook、,TabbedNotebook,及,ScrollBox,。,使用容器组件可以把容器内的所有组件与容器本身看成一个整体。容器内组件的位置是相对于容器,而不是相对于窗体的。,建立容器组件的过程为:,第1步:将容器组件添加到窗体中。,第2步:选定窗体中要添加其它组件的容器组件。,第3步:将其它的组件添加到选定的容器组件中。,3.2.9 组件的,Tab,键次序设定,设定控件的,Tab,键的次序的操作过程为:,第1步:选择,Edit|,TabOrder,菜单命令,弹出,Edit Tab Order,对话框,如图3-3所示。,第2步:在该对话框中,根据需要调整前后次序。,编辑,Tab,键控制次序对话框的列表框中显示出可控制次序的组件及当前的顺序(以建立的先后次序为准)。先在列表框中选定组件,然后单击列表框右边的向上或向下按钮,一次向上 或向下 移动一个次序。也可拖动列表框中的组件到适当的位置。,前面说明的是可见组件,也就是当程序开始执行时就已自动装入内存的组件。而有些组件不是直接可见的,如,MainMenu,、,PopupMenu,、Database、Table、Query,等,它们装入内存的时机也是可以控制的。选择,Edit|Creation Order,菜单命令,这时出现的,Creation Order,对话框如图3-4所示。,建立次序对话框的操作方法与编辑,Tab,键控制次序对话框的操作方法是相同的。,设置的,Tab,键序出现在对象编辑器的,TabOrder,属性中,另外,TabStop,属性决定是否可用,Tab,键使组件获得输入焦点。,3.3 窗体组件的属性,对于在程序设计时首先遇到的窗体这一组件,让我们先来了解一下的它的属性。窗体的属性是与其外观密切相关的。,对于组件的属性除必要进行设定的外,一般使用它的默认值。,3.3.1 窗体的位置与大小,窗体的位置与大小是由属性,Left、Top、Width、Height、,ClientWidth,、,ClientHeight,、Position,来确定的。一般来说前四个属性可以定义控件在它们所在的容器组件中的物理位置和大小,在,Delphi,中的可见组件都有这四个属性,而不可见组件没有这些属性。,Left、Top,确定窗体的左上角坐标,,Width、Height,确定窗体的宽与高(单位为像素),,ClientWidth,、,ClientHeight,确定窗体客户区的宽度和高度,窗体的标题和边框不计算在内(当用鼠标改变窗体的大小时,这两个参数会随之变化,并直接反映到对象编辑器中去,单位为像素)。而窗体的位置与大小在运行时的表现是由,Position,属性确定的。,3.3.2 窗体的颜色,窗体的背景颜色是由,Color,属性来控制的。对象编辑器提供了一个有许多预定义颜色的下拉式列表框,可以直接在该列表框中选择合适的颜色,也可通过双击该列表框打开通用颜色选择对话框来选择颜色。默认的颜色为灰色。,3.3.3 窗体的外观与样式,与窗体的外观与样式有关的属性有:,BorderIcons,、,BorderStyle,、,FormStyle,、Caption、Ctrl3D,属性等。,1.,Caption,属性,Caption,属性确定了窗体的标题,当窗体最小化后,,Caption,属性值为图标的文本说明。不要与,Name,属性混淆,,Name,属性是该组件对象的变量名。除窗体外的器它组件,可在该属性上设置热键,即带有下划线的字符(用字符前加“&”符号来实现)。,2.,Ctrl3D,属性,该属性用来控制应用程序在运行时是否以3,D,方式来显示窗口,默认为,True。,3.,BorderIcons,属性,BorderIcons,属性为集合型的属性,它的值确定了出现在窗体的标题栏上的图标。,4.,BorderStyle,属性,BorderStyle,属性指定窗体能否改变大小及边框的类型。,5.,FormStyle,属性,FormStyle,属性确定窗体的样式。,3.3.4 窗体的状态设定,确定窗体状态的属性。,3.3.5 其它重要的属性,1.,Font,属性,Font,字体属性为字体对象,可用来控制写在组件、对象上的文本及送到打印机的文本属性。修改字体就是改变字体对象的,Color、Name、Size,或,Style,属性。,2.,Icon,属性,Icon,属性确定当窗口最小化后在屏幕上或任务栏上显示的图标。若没有给该属性赋值,窗体使用应用程序的图标。,3.,ActiveControl,属性,ActiveControl,属性表示哪一控制是焦点或当窗体激活时初始的焦点。应用程序可以使用,ActiveControl,属性存取激活控制的方法。,4.,HelpContext,HelpContext,属性提供调用上下文相关的在线帮助的上下文号(索引),索引是唯一的。当选定组件,按,F1,键就可以出现帮助屏幕,出现哪一帮助屏幕是由,HelpContext,属性的值确定的。若,HelpContext,为零,则控制将继承其父窗口的帮助内容。,5.,Menu,属性,Menu,属性指定用于窗体的菜单栏。在设计时,,Menu,自动指向添加到窗体的第一个,TMainMenu,。,在运行时该属性可在多个主菜单之间进行切换。,6.,PopupMenu,属性,PopupMenu,属性表示当用户选定组件,右单击(若,AutoPopup,属性为真)或弹出式菜单的,Popup,方法被调用时出现的快捷菜单。,7.,Tag,属性,Tag,属性对在组件中存储整型值是有用的。在,Tag,属性对,Delphi,没有意义时,应用程序可以用来存储特殊需要的值。,8.,Scaled,属性,Scaled,属性确定窗体是否可重新调整到,PixelsPerInch,属性的值。若为真,,PixelsPerInch,的值与当前系统的设置不同,窗体调整到新的位置。若为假,不能调整,而与,PixelsPerInch,的值无关。,9.,PixelsPerInch,属性,窗体的,PixelsPerInch,属性表示用于窗体设计的系统字体属性。,PixelsPerInch,属性与屏幕的分辨率无关。当,Scaled,的值为真时,该属性的值确定是否可调整窗体的大小以使窗体的控制与设计时具有相同的比例。一般不需要修改,PixelsPerInch,属性;设计时保存窗体后自动更新。,10.,Cursor,属性,Cursor,属性为当鼠标移动到控制覆盖的区域时的形状。该属性的默认值为,crDefault,。,3.4 窗体的事件,3.4.1,Create,和,Destroy,事件,当创建窗体时,就产生,Create,事件;当释放窗体所占用的空间时,就会产生,Destroy,事件。这两个事件过程的基本语法形式为:,procedure TForm1.,FormCreate,(Sender:,TObject,);,procedure TForm1.,FormDestroy,(Sender:,TObject,);,通常整个程序的初始化工作放在主窗体的,Create,事件中进行处理,如读入将要用到的图形资源等,而这些资源的释放则放在主窗体的,Destroy,实践中进行处理。,当创建窗体,并且,Visible,属性设置为,True,时,下列事件按顺序出现:,Create、Show、Activate、Paint。,3.4.2,Show,和,Hide,事件,Show,事件和,Hide,事件分别在窗体显示与隐藏时被触发。当窗体的,Visible,属性设置为,True,时,窗体被显示,同时触发,Show,事件;当窗体的,Visible,属性设置为,False,时,窗体被隐藏,同时触发,Hide,事件。这两个事件过程的基本语法形式为:,procedure TForm1.,FormShow,(Sender:,TObject,);,procedure TForm1.,FormHide,(Sender:,TObject,);,3.4.3,Activate,和,Deactivate,事件,当激活窗体时,就产生,Activate,事件;当窗体不再激活时,就会产生,Deactivate,事件。这两个事件过程的基本语法形式为:,procedure TForm1.,FormActivate,(Sender:,TObject,);,procedure TForm1.,FormDeactivate,(Sender:,TObject,);,3.3.4,Click,事件,在窗体上(光标没有在其它组件上)单击,就会产生,Click,事件。该事件过程的基本语法形式为:,procedure TForm1.,FormClick,(Sender:,TObject,);,3.4.5,DblClick,事件,在窗体上双击,就会产生,DblClick,事件。该事件过程的基本语法形式为:,procedure TForm1.,FormDblClick,(Sender:,TObject,);,3.4.6,DragDrop,事件,在窗体上拖放(,Drag-and-Drop),操作时,就会产生,DragDrop,事件。该事件过程的基本语法形式为:,procedure TForm1.,FormDragDrop,(Sender,Source:,TObject,;X,Y:Integer);,其中,Source,参数为拖动的对象,,Sender,为要拖动到的对象,,X,和,Y,为拖放后鼠标的位置坐标(单位象素)。,3.4.7,KeyDown,和,KeyUp,事件,在窗体上按下键盘的任一键(,KeyDown,),或释放它(,KeyUp,),,就会产生,KeyDown,和,KeyUp,事件。可以对键盘上的所有键,包括功能键及与,Shift、Alt、Ctrl,的组合键进行处理(但如果按下的是快捷键或者热键,则不必编写事件处理程序,该操作由系统来完成)。这两个事件过程的基本语法形式为:,procedure TForm1.,FormKeyDown,(Sender:,TObject,;,var,Key:Word;,Shift:,TShiftState,);,procedure TForm1.,FormKeyUp,(Sender:,TObject,;,var,Key:Word;,Shift:,TShiftState,);,Key,参数用来表示所按或释放键的键码。,3.4.8,KeyPress,事件,在窗体上按下单个的字母键,就会产生,KeyPress,事件。该事件过程的基本语法形式为:,procedure TForm1.,FormKeyPress,(Sender:,TObject,;,var,Key:Char);,Key,参数为所按字母键所代表的字符。对非,ASCII,码键及组合键使用,KeyDown,或,KeyUp,事件进行处理。,3.4.9,MouseDown,和,MouseUp,事件,在窗体上按下或释放任一鼠标键时,就会出现,MouseDown,和,MouseUp,事件。这两个事件过程的基本语法形式为:,procedure TForm1.,FormMouseDown,(Sender:,TObject,;Button:,TMouseButton,;,Shift:,TShiftState,;X,Y:Integer);,procedure TForm1.,FormMouseUp,(Sender:,TObject,;Button:,TMouseButton,;,Shift:,TShiftState,;X,Y:Integer);,Sender,参数指定产生鼠标事件的组件对象;,Button,参数表示按下哪一键;,Shift,表示哪一,Shift,键(,Shift、Ctrl,及,Alt,键)与鼠标键按下和释放;,X,和,Y,鼠标指针的位置坐标(单位象素)。,3.4.10,MouseMove,事件,在窗体上移动鼠标,就会产生,MouseMove,事件。该事件过程的基本语法形式为:,procedure TForm1.,FormMouseMove,(Sender:,TObject,;,Shift:,TShiftState,;X,Y:Integer);,使用,Shift,参数可以对鼠标键与,Shift,键(,Shift、Ctrl,和,Alt),的组合进行处理;,X,和,Y,为鼠标指针的位置坐标(单位象素)。,3.4.11,Resize,事件,在调整窗体的大小时,就会出现,Resize,事件。该事件过程的基本语法形式为:,procedure TForm1.,FormResize,(Sender:,TObject,);,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服