版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 窗体和常用组件,5.1 窗体和组件 5.2 文本组件 5.3 按钮组件 5.4 分组组件 5.5 列表组件 5.6 表格组件 5.7 菜单组件 5.8 工具栏和状态栏组件 5.9 图形组件 5.10 公共对话框组件 5.11 其他组件,本节教学目的: 1.认识Delphi的窗体 2.掌握窗体的主要属性,事件和方法 3.了解如何在窗体中使用组件 本节重点: 1.窗体的主要属性,方法和事件 本节难点: 1.窗体的常用事件,5.1 窗体和组件,在windows操作系统中,人机交互的界面主要是通过一些窗口和对话框实现的。 在Delphi中,这些窗口和对话框就是程序设计阶段的窗体。 通常,窗体中
2、会有一些组件,通过这些组件可以实现多种多样的功能。,5.1 窗体和组件,在Delphi中,把组件分成可视组件和不可视组件。 可视组件:运行期间出现在窗口和对话框中的组件。 不可视组件:运行期间不出现的组件。,5.1 窗体和组件,可视组件分成两种:窗口组件和图形组件。 窗口组件:基于系统窗口,具有窗口句柄,可作为输入焦点,可包含其他组件。 图形组件:没有窗口句柄,不可作为输入焦点,不能包含其他组件。,5.1.1窗体,应用程序的窗口在设计时称为窗体(Form)。每个Delphi应用程序至少有一个窗体。窗体有标题、菜单、按钮和客户区等。可以通过了解窗体的属性、方法和事件来了解窗体。,5.1.1窗体,
3、1窗体的主要属性 (1)BorderIcons 属性BorderIcons用于设置窗体标题栏上的图标,该属性的类型是集合类型。属性值设置如表5-1所示。,5.1.1窗体,表5-1 BroderIcons属性值和说明 biSystemMenu:可以通过点击标题栏左边的图标或在标题栏上单击鼠标右键来显示控制菜单。控制菜单有时也称为系统菜单。 biMinimize:在标题栏右边显示最小化按钮。biMaximize:在标题栏右边显示最大化按钮。BiHelp:在标题栏右边显示帮助按钮。只有窗体的BorderStyle属性设置为bsDialog或者窗体属性BorderIcons中不包括biMinimize
4、和biMaximize时,biHelp设置才有效。,5.1.1窗体,列如: 在通过菜单【File】/【NewApplication】新建的应用程序中,窗体的BorderIcons属性默认设置为:biSystemMenu,biMinimize,biMaximize,可以在窗体中增加一个按钮组件,在其默认事件OnClick的处理过程中添加下面的一段代码: procedure TForm1.Button1Click(Sender:TObject); begin BorderIcons:=BorderIconsbiMaximize; /使最大化按钮失效 end;,5.1.1窗体,注意 窗体属性Bord
5、erIcons的设置与属性BorderStyle的设置可能会互斥,例如属性BorderIcons的biMinimize和biMaximize会与属性BorderStyle的bsDialog冲突,属性BorderIcons的biHelp会与属性BorderStyle的bsSizeable冲突。,5.1.1窗体,(2)BorderStyle 属性BorderStyle用于设置窗体的外观和边框,该属性的类型是枚举型,属性值设置如表5-2所示。,5.1.1窗体,表5-2 BroderStyle属性值和说明 BsDialog:窗体为标准的对话框,边框大小不可以改变。 bsSingle:窗体具有单线边框,
6、大小不可以改变。 bsNone:窗体没有边框,也没有标题栏,边界的大小不可以改变。 bsSizeable:边框大小可变的标准窗体。bsToolWindow风格与bsSingle相同,只是标题栏比较小。另外,对于这种风格的窗体,属性BorderIcons中设置的biMinimize和biMaximize并不起作用。 bsSizeToolWin风格与bsSizeable相同,只是标题栏比较小。对于这种风格的窗体,属性BorderIcons中设置的biMinimize和biMaximize也不起作用。,5.1.1窗体,(3)Caption 属性Caption用于设置窗体标题栏中的说明文字,该属性的数
7、据类型是字符串类型。 直接在对象监视器Caption属性的右边编辑框输入字符即可。,5.1.1窗体,(4)Color 属性Color用于设置窗体中客户区的背景颜色,该属性的类型是枚举型。 单击对象监视器Color属性下拉按钮选择所需的颜色或双击打开【颜色】对话框进行设置,如图5-1所示。,5.1.1窗体,5.1.1窗体,(5)Font 属性Font用于设置窗体中文字的字体、颜色和字号等,该属性包括了子属性,各子属性的说明如下。,5.1.1窗体,CharSet:字符集,该属性的类型是枚举型,一般不设置。 Color:设置字体颜色,该属性的类型是枚举型。 Height设置字体垂直像素的大小,该属性
8、的类型是整型,一般不设置。 Pitch:设置字体是否有相同的宽度,该属性的类型是枚举型,一般不设置。 Size:设置字体的大小,该属性的类型是整型。 Style:设置字体的特殊效果,如加粗(fsBold)、下划线(fsUnderline)、斜体(fsItaly)、删除线(fsStrikeOut)等。该属性的类型是集合型。,5.1.1窗体,5.1.1窗体,注意: 如果将窗体中组件的属性ParentFont设置为True,那么该组件的字体设置就与其父级窗体的字体设置完全一样了。所以在程序设计的时候,为了保持整个系统风格的统一,应该使工程中的窗体风格尽量一致,可以先设置窗体的Font属性,然后将窗体
9、中所有组件的ParentFont属性设置为True就可以了。一般不要单个地对窗体中的组件进行Font属性的设置。,5.1.1窗体,(6)FormStyle 属性FormStyle用于设置窗体的类型,该属性的类型是枚举型。 属性FormStyle可以分别实现上面所说的各种类型的应用程序,属性值设置如下。,5.1.1窗体,fsNormal:普通类型的窗体。既不为MDI应用程序的父级窗口,也不为MDI应用程序的子窗口。 fsMDIChild:MDI应用程序中的子窗体。fsMDIForm:MDI应用程序中的父窗体。fsStayOnTop:在桌面最前端显示的窗体。 注意:通常不要在程序运行期间改变窗体的
10、类型。,5.1.1窗体,(7)Height 属性Height用于设置窗体的高度,该属性的类型是整型。 直接在对象监视器Height属性的右边编辑框输入整型数值即可,或者用直接利用鼠标改变设计窗体的大小也可改变属性Height的值。,5.1.1窗体,(8)Icon 属性Icon用于设置标题栏中显示的图标。 单击对象监视器Icon属性右边的省略号按钮即可弹出【Picture Editor】对话框,如图5-3所示。在对话框中点击【Load】按钮,就可以装入一个制作好的图标。,5.1.1窗体,5.1.1窗体,使用Delphi自带的工具ImageEditor可以方便地制作图标。通过菜单【Tools】/【
11、ImageEditor】可运行ImageEditor。 如果需要动态地改变窗体Form1中的图标,可以调用下面的过程: Form1. Icon. LoadFromFile(MyIcon. ICO); 其中MyIcon. ICO是要在窗体Form1标题栏中显示的图标文件名。,5.1.1窗体,(9)Left 属性Left用于设置窗体的位置,左上角在屏幕的横坐标,该属性的类型是整型。 直接在对象监视器Left属性的右边编辑框输入整型数值即可,或者移动设计窗体的位置也可改变属性Left的值,5.1.1窗体,(10)Name 属性Name用于设置工程中的窗体名称,该属性的类型是字符串型。 直接在对象监视
12、器的Name属性的右边输入字符即可。,5.1.1窗体,(11)Position 属性Position用于设置窗体的显示的位置,属性值设置如下。 poDesigned:窗体显示的位置和大小与设计期间的一致。 poDefault:窗体每次显示时,与上次比较,往右下角移动了一些位置;窗体的高度和宽度由Windows决定。,5.1.1窗体,poDefaultPosOnly:窗体以设计期间的大小显示,窗体显示的位置较上次向右下角移动了一些。如果窗体以设计时的大小不可以在屏幕上完全显示,就移动到屏幕的左上角显示。poDefaultSizeOnly:窗体以设计期间的位置显示,窗体的大小由Windows决定。
13、poScreenCenter:窗体以设计期间的大小显示,窗体显示的位置总在屏幕的中间。考虑多个监示器时位置的调整。 poDesktopCenter:窗体以设计期间的大小显示;窗体显示的位置总在屏幕的中间。不考虑多个监示器时的调整。,5.1.1窗体,(12)Top 属性Top用于设置窗体的位置,左上角在屏幕的纵坐标,该属性的类型是整型。 直接在对象监视器Top属性的右边编辑框输入整型数值即可,或者移动设计窗体的位置也可改变属性Top的值。,5.1.1窗体,(13)Width 属性Width用于设置窗体的宽度,该属性的类型是整型。 直接在对象监视器Width属性的右边编辑框输入整型数值即可,或者用
14、直接利用鼠标改变设计窗体的大小也可改变属性Width的值。,5.1.1窗体,(14)WindowStyle 属性WindowStyle用于设置窗体的显示状态,该属性的类型是枚举型。属性值设置如下: wsNormal:窗体以普通状态显示(既不是最大化状态,也不是最小化状态)。wsMinimized:窗体以最小化状态显示。wsMaximized:窗体以最大化状态显示。,5.1.1窗体,2窗体的常用方法 (1)Show和ShowModal方法 Show方法用于显示窗体,ShowModal用于显示模态窗体,这两种方法都可以触发OnShow事件。调用的方法如下: Form1.Show; Form1.Sh
15、owModal;,5.1.1窗体,(2)Close方法 Close方法可以关闭窗体,同时触发OnClose事件,调用的方法如下: Form1.Close;,5.1.1窗体,3窗体的常用事件 当用户对窗体进行操作时,Delphi会触发相应事件,并执行相应的事件处理程序。编写事件代码操作方法是,选中对象监视器的【Events】页,找到所要编写的事件名称,双击【Events】页的事件名称的空白处即可编写程序代码,有些事件处理程序是可以直接双击组件即可编写程序代码的。在窗体空白处上双击可以编写OnCreate事件处理程序。,5.1.1窗体,(1)OnCreate和OnDestroy事件 当程序创建窗体
16、时,触发OnCreate,对窗体进行初始化,分配所需的资源。通常在该事件中,设置窗体属性的初始值,如窗体位置、是否最大化等。当窗体占用的空间被释放时,将触发OnDestroy事件。在OnDestroy事件中,释放OnCreate事件中分配了的资源。 OnCreate和OnDestroy事件声明如下: procedure Create(Sender: TObject); procedure Destroy(Sender: TObject);,5.1.1窗体,(2)OnShow和OnHide事件 当窗体被显示时,触发OnShow事件;当窗体被隐藏时,触发OnHide事件。 OnShow和OnHid
17、e事件声明如下: procedure Show(Sender: TObject); procedure Hide(Sender: TObject);,5.1.1窗体,(3)OnCanResize和OnResize事件 当要改变窗体的大小时,触发OnCanResize事件。 当窗体的大小发生变化后,OnResize事件就会发生,可以通过处理该事件以便对窗体的大小的变化作出响应。 OnCanResize和OnResize事件声明如下: procedure Resize(Sender: TObject; var NewWidth,NewHeight: Integer; var Resize: Boo
18、lean); procedure Resize(Sender: TObject);,5.1.1窗体,(4)OnCloseQuery和OnClose事件 当窗体将要关闭时,首先触发OnCloseQuery事件。OnCloseQuery和OnClose事件声明如下: procedure Close(Sender: TObject; var Action: TCloseAction); procedure CloseQuery(Sender: TObject; var CanClose: Boolean);,5.1.2组件,在Delphi编程的过程中,要经常使用到组件。通过可视组件,可以在窗体中方便
19、地构建与用户交互的界面。另外一些不可视的组件可以为程序增加许多强大的功能。在Delphi集成开发环境的组件栏中,按照功能分类罗列了大量的组件,熟悉它们可以提高开发程序的进度。此外,还可以根据需要,调整组件栏中组件的位置,或者在组件栏中添加、删除组件,还可以为了满足一些特殊需求而创建新的组件,并把它们添加到组件栏中。,5.1.2组件,Delphi中默认的组件栏包括了如下的各个组件页标签: Standard:标准Windows控件、框架、菜单等 Additional:一些专用的Windows控件 Win32:32位Windows系统中的公用控件 System:进行系统操作的组件(包括定时器、多媒体
20、和DDE等) DataAccess:操作数据库的组件,如访问数据库、表格、查询和报表等,5.1.2组件,DataControls:进行数据库控制的组件 ADO:通过ActiveXDataObjects访问数据库的组件 InterBase:提供与InterBase直接联接的组件 Internet:开发Web服务的应用程序FastNet提供Internet操作的一些组件 DecisionCube:为应用程序提供多维数据分析的组件 DialogsWindows:通用对话框组件 Samples:一些定制组件的例子,本节教学目的: 1.熟练掌握文本组件(Label,Edit)的使用 2.学会在窗体中使用
21、文本组件 3.掌握文本组件(Label,Edit)的主要属性,方法和事件 本节重点: 1.标签和文本编辑框在窗体中的使用 无难点,5.2 文本组件,在应用程序的界面上,往往需要用户输入一些文字,或者以一定的格式将文本显示给用户,这时可通过文本组件来实现。,5.2.1 Label,标签(Label)组件在组件面板的Standard页标签上,是最常用的显示文字的组件。它只能显示文本,运行时不能对它进行编辑。因此Label常用于显示不需要修改的文字,通常利用Label组件在窗体上显示静态文本。此外,将Label组件与其他没有标题的组件相关联后,可以通过键盘上的Tab键使这些组件获得输入焦点。,5.2
22、.1 Label,1Labe组件的主要属性 (1)Alignment 属性Alignment用于设置Label组件文本水平方向的对齐方式,该属性的类型是枚举类型。属性值设置如下: taLeftJustify:文本水平左对齐 taCenter:文本水平居中对齐taRightJustify:文本水平右对齐,5.2.1 Label,(2)AutoSize 属性AutoSize用于设置Label组件的大小是否随字体的大小而变化,该属性的类型是布尔型。值为True时,Label组件的大小随字体的大小而变化。,5.2.1 Label,(3)Caption 属性Caption用于显示Label组件的文字内容
23、,该属性用法和窗体的Caption属性相同。 (4)Color 属性Color用于设置Label组件的背景颜色,该属性用法和窗体的Color属性相同。 (5)Font 属性Font用于设置Label组件的字体,该属性用法和窗体的Font属性相同。,5.2.1 Label,(6)Layout 属性Layout用于设置Label组件的文本垂直方向的对齐方式,该属性的类型是枚举类型。属性值设置如下: alTop:文本垂直左对齐 alCenter:文本垂直居中对齐 alBottom:文本垂直右对齐,5.2.1 Label,(7)Name 属性Name用于标识Label组件的名称,它的用法和窗体的属性相
24、同。所有组件都有这个属性,因此我们在后面不再介绍。,5.2.1 Label,(8)Transparent 属性Transparent用于设置Label组件的背景是否透明的,该属性的类型是布尔型。值为True时,Label组件背景透明。 Label组件的Transparent属性比较有用。如果将Transparent属性设置为True,则显示的字符串不会完全挡住下面的组件。例如Label组件下面有一个Label组件,显示了另外一个文字,那么Label组件的Transparent属性设置为True后,在字符的笔划之间将显示下面文字的内容,我们也可以使用这个属性设计一个立体字。,5.2.1 Labe
25、l,(9)Visible 属性Visible用于设置Label组件的可见否,该属性的类型是布尔型。值为True时,Label组件不可见。 (10)WordWrap 属性WordWrap用于设置Label组件的文本是否分行显示的,该属性的类型是布尔型。值为True时,Label组件的文本分行显示。,5.2.2 Edit,编辑框(Edit)组件可以用于显示、编辑单行文本,用于在程序动态地输入和修改一段文字。Edit组件在组件面板的Standar页标签上。,5.2.2 Edit,1Edit组件的主要属性 (1)AutoSelect 属性AutoSelect可以设置当Edit组件获得输入焦点时,是否自
26、动选中所有的文本。该属性的类型是布尔型。 在Edit组件中可以输入文字来替换以前的文字,也可以在以前的文字后面添加新的内容。当用户将输入焦点移动到某个Edit组件上时(如通过按下Tab键),替换的机会远远大于新添加的机会时,就可以将AutoSelect属性设置为True,这样可以方便用户的使用。,5.2.2 Edit,(2)BorderStyle 属性BorderStyle可以设置当Edit组件的边框类型,该属性的类型是枚举型。默认值为单线边框bsSingle,也可设置为没有边框bsNone。,5.2.2 Edit,(3)CharCase 属性CharCase用于设置字符的大小写形式。该属性的
27、类型是枚举型。属性值设置如下: ecLowerCase:字符小写形式 ecNormal:字符正常形式 ecUpperCase:字符大写形式,5.2.2 Edit,(4)Enable 属性Enable用于设置Edit组件是否有效状态,该属性的类型是布尔型。当设置为true时,Edit组件处在效状态,即不可以编辑也不响应Edit组件的事件。 (5)HideSelection 属性HideSelection用于设置当组件失去焦点时是否高亮度显示选中的文本,该属性的类型是布尔型。当设置为true时,Edit组件隐藏所选中的文本。,5.2.2 Edit,(6)MaxLength 属性MaxLength用
28、于设置Edit组件最多可包含的字符数,该属性的类型是整型。当值为零,表示不由应用程序来限制每行的字符数,而是由操作系统来确定的。,5.2.2 Edit,(7)ReadOnly 属性ReadOnly用于设置Edit组件的内容是否可以修改,该属性的类型是布尔型。当设置为true时,Edit组件内的文字只显示,不能修改。 (8)PasswordChar 属性PasswordChar用于设置将用户输入的所有字符以同一个字符显示。该属性的类型是字符型。 通常情况下,用户在Edit组件中输入口令的时候,将输入的字符使用星号(*)显示。另外,还需要提供给用户一个重新输入对口令加以确认的过程。,5.2.2 E
29、dit,(9)SelLength 属性SelLength是Edit组件的被选中的字符块的长度,该属性的类型是整数型,是一个运行期的属性,因此在对象监视器看不到。 (10)SelStart 属性SelStart是Edit组件的被选中的字符块的起始位置,该属性的类型是整数型,是一个运行期的属性,因此在对象监视器看不到。,5.2.2 Edit,(11)SelText 属性SelText是Edit组件的被选中的文本内容,该属性的类型是字符串符,是一个运行期的属性,因此在对象监视器看不到。 (12)TabOrder 属性TextOrder用于设置Edit组件获得焦点的次序,该属性的类型是整型。 (13)
30、Text 属性Text用于设置Edit组件显示文字内容,该属性的类型是字符型。,5.2.2 Edit,2Edit组件的常用方法 (1)Clear Clear方法用于清除Edit组件的内容。 (2)CutToClipboard CutToClipboard方法用于剪切Edit所选的内容到剪贴板中。 (3)CopyToClipboard CopyToClipboard方法用于复制Edit所选的内容到剪贴板中。,5.2.2 Edit,(4)PasteFromClipborad PasteFromClipborad方法用于从剪贴板中将内容粘贴出来。 (5)SelectAll SelectAll方法用于
31、选中Edit组件全部内容。 (6)SetFocus SetFocus方法用于让Edit组件获得焦点。,5.2.2 Edit,3Edit组件的常用事件 (1)OnChange事件 当Edit组件中的文本发生改变时,将触发OnChange事件。该事件声明如下: procedure Change(Sender: TObject); (2)OnEnter事件 当Edit组件获得焦点时,将触发OnEnter事件。该事件声明如下: procedure Enter(Sender: TObject);,5.2.2 Edit,(3)OnExit事件 当Edit组件失去焦点时,将触发OnExit事件。该事件声明如
32、下: procedure Exit(Sender: TObject); (4) OnKeyPress事件 当在Edit组件按键时,将触发OnExit事件。通常用此事件来判断用户在编辑框中按下的键值。该事件声明如下: procedure KeyPress(Sender: TObject; var Key: Char); 其中Key是所按下键的字符值。,本节教学目的: 1.学会在窗体中使用文本组件(Memo, Maskedit,Richedit). 2.掌握文本组件的主要属性,方法和事件 本节重点: 1.各组件的属性,方法和事件 本节难点: 1.Maskedit的editmask属性 2.rich
33、edit的SelAttributes属性,5.2.3 Memo,Edit组件中只能输入单行文本,而多行文本编辑框(Memo)组件可以显示、编辑多行文本。对一些比较长的文本内容可以利用Memo组件来显示、编辑。Memo组件在组件面板的Standard页标签上。 TMemo类是TEdit类的衍生类,因而具有TEdit类中的属性、方法和事件,此外,Memo组件增加了处理多行文本的一些属性。,5.2.3 Memo,1Memo组件的主要属性 (1)Lines 属性Lines可以对Memo文字内容进行分行处理,该属性的类型是TStrings。单击【Lines】属性的省略号按钮,打开【String List
34、 editor】对话框,在其中输入多行字符串。如图5-13所示。,5.2.3 Memo,5.2.3 Memo,Lines属性是一个数组,它的元素是Memo文本的某一行,如Memo1.Lines2表示Memo第3行的数据。此外,可以调用TStrings的类方法来对Lines中的数据进行处理,如: TStrings类具有的方法: Add 功能:在尾部添加一行字符串。 格式:Add(const S: String) 例如:Memo1.Lines.Add(AAA); /在多行文本编辑框Memo1中添加一行“AAA”字符。,5.2.3 Memo,Append 功能:在尾部添加一行字符串。 格式:Appe
35、nd (const S: String) 例如:Memo1.Lines.Append(AAA); /在多行文本编辑框Memo1中添加一行“AAA”字符。 Clear 功能:清除内容。 格式:Clear 例如:Memo1.Lines.Clear; /将多行文本编辑框Memo1的内容清除,5.2.3 Memo,Insert 功能:在指定的位置上插入一行字符。 格式:Insert(Index: Integer; const S: string) 例如:Memo1.Lines.Insert(2,AAA); /表示在多行文本编辑框Memo1中第3项插入一行“AAA”字符。,5.2.3 Memo,Move
36、 功能:将选项当前位置移至新的位置。 格式:Move(CurIndex, NewIndex: Integer) 例如:Memo1.Lines.Move(0,3); /将多行文本编辑框Memo1中的第1行移到第4行。 Delete 功能:删除指定的某一行字符串。 格式:Delete(Index: Integer) 例如:Memo1.Lines.Delete(2); /删除多行文本编辑框Memo1的第3项,5.2.3 Memo,LoadFromFile 功能:加载磁盘指定的文本文件的内容。 格式:LoadFromFile(const FileName: String) 例如:Memo1.Lines
37、. LoadFromFile(1.txt); /从应用程序运行的当前文件夹加载1.txt的内容到Memo1中,5.2.3 Memo,SaveToFile 功能:将内容保存到磁盘指定的文本文件,如果文件不存在,将新建该文本文件,否则将会覆盖该文件。 格式:SaveToFile(const FileName: String) 例如:Memo1.Lines. SaveToFile(1.txt); /将Memo1中的内容保存到应用程序的当前文件夹1.txt,5.2.3 Memo,(2)Modified 属性Modified用于获得文本内容是否发生了改变,这个属性运行期属性,而且是个只读的属性,它在对象
38、监视器中看不到。 (3)ScrollBars 属性ScrollBars用于设置Memo组件的滚动条,该属性的类型是枚举型。属性值设置如下:,5.2.3 Memo,ssBoth:同时有水平与垂直滚动条ssHorizontal:只有水平滚动条 ssNone:无滚动条 ssVertical:只有垂直滚动条,5.2.3 Memo,(4)WantReturns 属性WantReturns用于设置Memo组件是否响应回车键,该属性的类型是布尔型。当属性值设置为true时,按Enter键时,插入一个回车符;否则,按Enter键事件由窗体处理,如想输入回符,则需按下Ctrl+Enter组合键。 (5)Want
39、Tabs 属性WantTabs用于设置Memo组件是否响应制表符键,该属性的类型是布尔型。当属性值设置为true时,按Tab键时,插入Tab字符;否则按Tab键将改变获得焦点的组件。,5.2.4 MaskEdit,掩码编辑框(MaskEdit)组件可以显示、编辑具有指定格式的文本,如6位数字的邮政编码、固定格式的电话号码、日期、时间等。TMaskEdit类是TEdit类的子类,因而具有TEdit的属性。MaskEdit组件在组件面板的Additional页标签上。,5.2.4 MaskEdit,1MaskEdit组件的主要属性 (1)EditMask 属性EditMask用于设置用户输入数据格
40、式的屏蔽字符串,该属性的类型是字符串型。屏蔽分为三部分,用分号分隔,如“!99/99/99/00;1;_”。第一部分是屏蔽的主要部分,它确定了数据的格式;第二部分决定是否将屏蔽中的字符作为数据的一部分,它将影响Text属性中的值;第三部分指出屏蔽中用于代表未输入数据的字符。,5.2.4 MaskEdit,单击EditMask属性的省略号按钮,打开【Input Mask Editor】对话框,如图5-15所示,在【Input Mask Editor】对话框中,有很多屏蔽样板可以选择。,5.2.4 MaskEdit,5.2.4 MaskEdit,EditMask属性中特殊字符的说明如下: !:出现
41、时,字符串的前导空格不会保存。 或)号。 :出现时,则不进行大小写的转换。 :后的字符为一般字符,可用于显示特殊字符。 L或l:该位置只能有一个字母,AZ和az。l时不一定要输入。 A或a该位置只能有一个字母,AZ、az和09。a时不一定要输入。,5.2.4 MaskEdit,C或c:该位置可以有一个字符。c时不一定要输入。 0或9:该位置只能有一个数字,9时不一定要输入。 #:该位置只能有一个数字或正负号,但不一定要输入。 :用于分隔时间中的时、分、秒。 /用于分隔日期中的年、月、日。 ;用于分开屏蔽字符串的三部分。 _自动插入一个空格,输入时光标会跳过这些字符。,5.2.4 MaskEdi
42、t,(2)Text和EditText属性 当屏蔽字符串第二部分为0时,Text表示用户输入的字符串,EditText表示带格式的字符串。当屏蔽字符串第二部分为1时,Text和EditText属性的值是相同的,都是带格式的字符串。EditText是运行期属性,在对象监视器中看不到。,5.2.5 RichEdit,复文本编辑框(RichEdit)组件可以显示、编辑具有丰富文本格式(Rich Text Format)的文件,如. rtf文件。RTF格式是指多行文本中,可以包含大量的编辑格式,如文本的颜色、字体和对齐方式等,就像Word中的文本一样。TRichEdit类是TMemo类的衍生类,因而具有
43、TMemo中的属性、方法和事件,此外RichEdit还增加了一些属性。RichEdit组件在组件面板的Win32页标签上。,5.2.5 RichEdit,1RichEdit组件的主要属性 (1)DefAttributes 属性DefAttributes是RichEdit组件默认字体样式,该属性是一个运行期属性。 (2)Paragraph 属性Paragraph是RichEdit组件光标或被选块所在段落属性,该属性是一个运行期属性。 (3)PlainText 属性PlainText用于设置RichEdit组件的格式以是否以普通文本的方式显示出来。当设置为true,则在RichEdit组件中显示R
44、TF文件的时候,将格式标记以普通文本的方式显示出来。否则根据RTF文件中的格式设置来显示。通常将PlainText属性设置为False。,5.2.5 RichEdit,(4)SelAttributes 属性SelAttributes是RichEdit组件当前所选字体样式的属性,该属性是一个运行期属性。,5.2.5 RichEdit,2RichEdit组件的常用事件 OnSelectionChange事件。 当Memo组件中的被选中的内容改变或光标移动时,将触发该事件。该事件声明如下: procedure SelectionChange(Sender: TObject); 注意:我们可以通过方法
45、Lines. LoadFromFile和Lines. SaveToFile可以方便地存取RTF文件。,本节教学目的: 1.学会使用各种不同的按钮 2.熟练掌握各按钮组件的属性和事件 本节重点: 1.各种按钮组件的属性和事件 2.按钮在窗体中的使用 本节难点: 1.学会区分各种按钮组件的不同,5.3 按钮组件,按钮组件是最常用的组件,它可以让用户主动产生一个命令。,5.3.1 Button,按钮(Button)组件是一种有标签的灰色组件,它在组件面板的Standard页标签上。 1Button组件的主要属性 (1)Cancel 属性Cancel用于设置按钮是否为取消按钮,即当Esc键按下时,Bu
46、tton的OnClose事件是否被激发,该属性的类型是布尔型。,5.3.1 Button,(2)Caption 属性Caption与Label的用法相似。但可用“”英文字母为按钮设定的热键。如将按钮的标题设置为“确定(,5.3.2BitBtn,位图按钮(BitBtn)组件为图形按钮组件,它可以在按钮表面上显示位图(Bitmap)文件,还可以改变按钮的字体颜色、大小等。BitBtn组件在组件面板的Additional页标签上。 TBitBtn是TButton的子类,拥有TButton的所有属性。两者都是TWinControl的子类,因此都有Windows句柄,可以获得焦点。此外,BitBtn还有
47、一些属性。,5.3.2BitBtn,1BitBtn组件的主要属性 (1)Glyph 属性Glyph为该按钮设置一个.bmp文件,显示在按钮表面上,该属性的类型是TBitmap。 (2)Kind 属性Kind设置按钮的种类,该属性的类型是枚举型。取值为bkCustom、bkCancel、bkHelp、bkYes、bkNo、bkClose、bkAbort、bkRetry、bkIgnore和bkAll。每一Kind值,使BitBtn对应一个特殊的位图。当Kind被设为bkCustom时,表示其为用户自定义类型,位图由该按钮的Glyph属性指定。,5.3.2BitBtn,(3)Layout 属性Lay
48、out用于设置BitBtn中位图与文本的相对位置,该属性的类型是枚举型。属性值设置如下。 blGlyphLeft:位图居左 blGlyphBottom:位图在下方 blGlyphTop:位图在上方 blGlyphRight :位图居右,5.3.2BitBtn,(4)NumGlyphs 属性NumGlyphs设置该位图按钮使用图形的个数,可以设置为1.4之间的一个整数。如果Kind属性不为bkCustom,也就是使用Delphi指定的一组默认图形时,NumGlyphs自动设置为2。对于自己制作图形的位图按钮,如果只有一个位图,就将NumGlyphs的值设置为1,如果设置为2,在按钮上只能显示一半
49、的图形。,5.3.2BitBtn,注意:可以自己制做位图按钮上的图形,也可以采用Delphi指定的一组默认图形。如果自己制作图形,可以将位图保存在. bmp文件中,在设计阶段就可以通过Glyph属性将图形显示在位图按钮上。采用Delphi指定的一组默认图形,可以通过Kind属性来设置。对于自己制做图形的位图按钮,Kind属性要设置为bkCustom。在位图按钮具有多个图形的时候,位图按钮通常显示的是第1个图形;当按钮被按下后,显示第3个图形;当按钮失效后(Enabled属性为False),显示第2个图形。位图按钮包含有几个图形,可以自己设定,然后Delphi自动将指定的图形在水平方向上进行等分
50、,并在不同的情况下显示不同的图形。所以在自己制做图形时,可以将同一个位图按钮的几个图形并排放在一起。,5.3.3SpeedButton,加速按钮(SpeedButton)组件为组件,可以组成工具栏。SpeedButton组件在组件面板的Additional页标签上。,5.3.3SpeedButton,1SpeedButton组件的主要属性 (1)AllowAllUp 属性AllowAllUp用于设置按钮是否允许单击时处于按下状态,再次单击时恢复到松开状态,该属性的类型是布尔型。当设置为true时,按钮允许单击时处于按下状态。 (2)Down 属性Down用于设置该按钮的是否为按下状态,该属性的
51、类型是布尔型。当设置为true时,SpeedButton是按下状态的。,5.3.3SpeedButton,(3)Flat 属性Flat用于设置该按钮的是否为凸现状态,该属性的类型是布尔型。当设置为true时,SpeedButton的外观就像一个Label组件的外观,仅当鼠标移到它的表面时,SpeedButton才会如按钮般凸现出来。,5.3.3SpeedButton,(4)GroupIndex 属性GroupIndex用于设置该按钮的是否协同工作,在同一时间里,它们只有一个可处于按下状态。这时的按下状态,指的是松开鼠标后,按钮处于按下状态,而不恢复正常的凸起状态。当GroupIndex设置为0
52、时,表示该SpeedButton不与其他SpeedButton协同工作。 在加速按钮上可以同时显示图形和文字,用法与位图按钮很相似。,5.3.4CheckBox,复选框(CheckBox)组件是一个旁边带有文字说明的方框。一般有选中和不选中两个状态。用户可以改变它的状态。CheckBox组件位于组件面板的Standard页标签上。,5.3.4CheckBox,1CheckBox组件的主要属性 Alignment 属性Alignment用于设置复选按钮上文字的位置,该属性的类型是枚举型。 AllowGrayed 属性AllowGrayed用于设置复选按钮上文字的位置,该属性的类型是布尔型。如果复
53、选按钮为三态的,也就是可以表达“选中”、“未选中”和“部分选中” (灰色)的概念时,可以将AllowGrayed属性设置为True。,5.3.4CheckBox,Checked 属性Checked用于设置复选按钮是否选中,该属性的类型是布尔型。当设置为true时,表示该复选按钮被选中。 State 属性State用于设置复选按钮为选中cbCheck、未选中cbUnChecked或部分选中cbGrayed,该属性的类型是枚举型。,5.3.4CheckBox,注意:在同一个窗体中,尽量将不同的复选按钮分组使用,将具有相同性质的复选按钮放在一起。,5.3.5RadioButton,单选按钮(Radi
54、oButton)组件显示一组互斥的选择,它在组件面板的Standard页标签上。同一组RadioButton中,任何时候最多只能有一个被选中。,5.3.5RadioButton,1RadioButton组件的主要属性 Checked 属性Checked用于设置单选按钮是否选中,该属性的类型是布尔型。当设置为true时,表示该单选按钮被选中。一个新的RadioButton被选中,则前一个选中的RadioButton会自动变为未选中状态。,本节教学目的: 1.学会使用分组组件 2.掌握各种分组组件的主要属性,方法和事件 3.能区分不同分组组件的区别 本节重点: 1.Groupbox与RadioGr
55、oup的区别 2.PageControl与Tabcontrol的区别 本节难点: 1.容器组件在窗体中的使用,5.4 分组组件,5.4.1 GroupBox 分组框(GroupBox)组件是一个带有标题的组件,它为一组相关联的组件提供一个可视分组并使它们的在组标题下显得更有条理。GropuBox组件在组件面板的Standard页标签上。,5.4.1 GroupBox,在实现单选按钮的分组时,可以有两种方法: (1)利用分组框组件(GroupBox)和单选按钮组件(RadioButton)实现。首先向窗体中添加分组框,然后向分组框中添加单选按钮。这样,同一个分组框中的单选按钮就自动成为一组。可以
56、通过RadioButton组件的Checked属性来确定哪一个单选按钮被选中。 (2)利用单选按钮分组框(RadioGroup)实现。可以通过ItemIndex属性来确定选中哪一个单选按钮。,5.4.2 RadioGroup,单选按钮框(RadioGroup)组件是一个Group与一组RadioButton的组合,RadioGroup可自动对齐属于它的一组RadioButton。RadioGroup在组件面板的Standard页标签上。,5.4.2 RadioGroup,1RadioGroup组件的主要属性 (1)Columns 属性Columns用于设置RadioGroup中RadioBut
57、ton的列数。它的取值范围是1.16之间的整数。 (2)Items 属性Items用于编辑RadioGroup中各RadioButton旁边的文字提示,该属性的类型是TStrings型。 (3)ItemIndex 属性ItemIndex用于设置当前被选中的RadioButton的序号,该属性的类型是整型。序号从0开始,当ItemIndex的值为-1时,表示所有RadioButton均未被选中。,5.4.3 Panel,面板(Panel)组件一个以多种三维效果显现出来的矩形区域、可视化及灵活性都比较好的分组框组件。Panel组件在组件面板的Standard页标签上。,5.4.3 Panel,1P
58、anel组件的主要属性 (1)Align 属性Align用于设置Panel中在容器中的位置,并能使Panel随着容器大小改变而作相应的改变。该属性的类型是枚举型。属性值设置如下。,5.4.3 Panel,alBottom:将面板组件对齐在容器的底部。 alClient:将面板组件填满在容器的所有空余部分。 alCustom:将面板组件旋转在容器的左上部。 alLeft:将面板组件对齐在容器的左边。 alNone:将面板组件的位置和大小由设计时确定。 alRight:将面板组件对齐在容器的右边。 alTop:将面板组件对齐在容器的顶部。,5.4.3 Panel,(2)BevelInner 属性B
59、evelInner用于设置Panel的内部斜面的样式,该属性的类型是枚举型。属性值设置如下。 bvNone:内部斜面不存在。 bvLowered:内部斜面降低。 bvRaised:内部斜面升起。 bvSpace :内部内部出现空间。,5.4.3 Panel,(3)BevelOuter 属性BevelInner用于设置Panel的外部斜面的样式,该属性的类型是枚举型。 (4)BevelWidth 属性BevelWidth用于设置Panel的斜面的宽度,该属性的类型是整型。,5.4.3 Panel,(5)BorderStyle 属性BorderStyle用于设置Panel的边界风格,该属性的类型是枚举型。属性值设置如下。 bsNone:边界无风格。 bsSingle:单线风格。,5.4.3 Panel,(6)BorderWidth 属性BorderStyle用于设置Panel的边界风格宽度,该属性的类型是整型。 在窗体中显示图形的时候,一般先添加一个Panel组件,然后在上面再添加Image组件。这样在图形显示的时候,可以以Panel组件的边框做边界。 另外,可通过设置BevelInner属性和BevelOuter属性来改变Panel组件的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七章 了解地区 单元复习卷 湘教版七年级地理下册
- AI驱动的线上问题解决与客户服务能力升级
- 医生度考核登记表个人总结
- 航大雄英品牌衍生品设计
- 老年人服务与管理专业技能教学标准
- 农业技术进步对农民收入影响实证研究结题报告
- 棒球场垒包维护指南
- 家庭水培植物种植管理指南
- 种子生物学试题及答案
- 服务器操作系统产业发展研究报告 2026
- 用地调整可行性研究报告
- 肾癌根治切除术护理查房
- 高一会考试卷及答案地理
- 高中生物2024届高考易错点(共426个)
- 2022浪潮英政服务器CS5260H2用户手册
- 《民航安全检查(安检技能实操)》课件-第七章 人身检查
- 患者医疗安全管理制度
- 农村土地使用权转让协议书
- 《建筑玻璃膜应用技术规程 JGJT351-2015》
- 高空抛物安全宣传教育
- SYT5405-2019酸化用缓蚀剂性能试验方法及评价指标
评论
0/150
提交评论