第11章 TApplication与TScreen类介绍及应用
一、TApplication类
用于开发窗口程序的类。此类封装了一个窗口应用程序,其方法和属性反映了窗口操作系统在建立、执行、维持以及析构该程序等方面的基本原则。
Delphi的每个窗口程序都会自动声明一个Application对象,此变量属于Tapplication类。
TApplication类对象常用属性:
ExeName:只读,EXE文件路径名。
Title:读写。标题,即运行时应用程序图标后的文字。除了直接设置此属性外,还可通过另一种方式更改:Project->Options->Application。
Icon:读写。只有该项目内没有设置Icon属性值的窗体,它们标题栏的图标,都会以代表应用程序的图标作为它们的图标。更改也有两种方式,同Title。
MainForm:指定该程序的哪个窗口为项目的主窗口。
TApplication类对象常用方法:
CreateForm:在程序中建立一个新的窗体。当程序有多个窗体时,可将程序中默认建立窗体的代码删除,等需要时才以动态方式建立它们的实体。除可节省空间外,当程序窗体繁多时,还可节省程序的启动时间。
MessageBox:此方法属于Application。而MessageDlg和ShowMessage是全局的方法。
Run:执行此应用程序。Run方法包含了应用程序的主消息循环,因此能让程序执行,并使它的窗口在执行中能持续显示画面,直到程序主消息循环终止。注意:此方法在Unit中无用,仅在Application中才起作用。
Terminate:终止程序执行。此方法会调用Windows API函数PostQuitMessage,依序终止程序。当系统收到程序的WM_QUIT消息,或程序主窗体关闭时,会自动调用Terminate。
二、TScreen类
代表该程序在执行整个时整个屏幕的状态。此类的属性记录了下列相关的内容:
Ø 此程序举用了何种窗体或数据模块。
Ø 什么是作用中的窗体,及该窗体内作用中的控制组件。
Ø 该屏幕大小及分辨率。
Ø 该程序使用的光标和文字。
Delphi项目中,有一个默认的全局变量:Screen。
TScreen的属性
ActiveControl:指出屏幕上哪个控制组件现在拥有输入焦点。只能通过作用中窗体的SetFocusedControl来更改。ActiveControl值改变时,会触发OnActiveControlChange事件。
Fonts:屏幕能支持的所有字体。TStrings类型。通过此属性,可知道当前Windows安装了哪些字体。最好不要使用未安装的字体。
第12章 高级组件介绍
这些高级组件可能是标准组件的加强版,也可能是与标准组件不相干的全新组件。因高级组件数量太多,仅介绍Additional、Win32、System、Dialogs中最常用的组件。
一、Additional选项卡中的常用组件
1、TBitBtn
继承自TButton,具有和Tbutton几乎相同的属性、方法与事件,但它拥有图形化按钮表面的特殊功能。允许程序员自己建立图形,也可使用内建的标准图形。
Glyph:几乎是TBitBtn最重要的属性,用来指定TBitBtn对象显示于按钮表明的图形。此属性属于TBitmap类。Glyph属性按钮图形需注意:
1)图形必须是BMP格式。
2)加载的图形配合NumGlyphs属性,可用来指定按钮不同状态显示的图形,NumGlyphs最大为3,此时,加载的图形均分为左中右三等分,左图表示按钮一般状态时显示的图形,中图为Enabled为False时显示的图形,右图则为按钮按下时显示的图形。
3)加载的图形左下角的像素,同时表示此图形的透明颜色。即按钮图形中,任何与此图形左下角像素颜色相同者,会被设为按钮底色,产生透明效果。
NumGlyphs:当设置Glyph属性时,NumGlyphs用来表示该图形包含集中按钮状态。允许值为1~4。4表示按钮按下且固定住的图形,TBitButton无此行为。
Kind:设置按钮类型,是个枚举类型的值。
Layout:设置图片与文字的相对位置,是个枚举类型的值。
Margin:设置图形(含文字)与按钮边界的距离。
Spacing:表示按钮图形与文字间的距离。
Style:决定按钮外观。
2、TMaskEdit组件
继承自TCustomEdit,具有和TEdit几乎一样的属性和方法,但它加入了格式化文字的功能,这几乎是使用它的唯一理由。
EditMask:设置TmaskEdit组件显示文字的格式化规则。格式化字符串由三个字段组成,并以分号分隔。如“!\(99\)0000-0000;1;_”:第一部分“!\(99\)0000-0000”为主体,其意义如下表,第二部分指定是否保存非用户输入的字符(1保存,0不保存),第三部分设置尚未输入字符的位置的显示状态。
要清除格式条件,只需将EditMask设为空字符串即可。
EditText:设置或取得MaskEdit组件显示的文字。要设置EditText,其字符串必须包含未输入字符的位置的显示状态(默认为‘_’),否则其格式化功能运行不正常。
Text:同EditText。但设置时,不需加未输入字符的位置的显示状态。
GetTextLength:取得Text属性的字符串长度。
IsMasked:是否设置MaskEdit属性。即MaskEdit属性是否为空。
3、TImage控件
常用它来存放图形或显示图形于窗体上。其支持的格式包括BMP、ICO、JPEG、WMF、EMF等。
AutoSize:Image组件是否自动缩放为加载的图形大小。
Stretch:加载的图片是否会自动缩放为Image组件的大小。
Canvas:对TImages而言,此属性是只读的。
Center:图片是否置中。
IncrementalDisplay:指明图形文件是否使用渐进方式显示。
Picture:设置或取得Image组件显示的图形对象。设置方式或在设计时直接指定此属性,或在运行时指定此属性或者通过LoadFormFile、LoadFromClipboard、Format、SaveToFile、SaveToClipboard实现。将此属性设为nil即可清除显示图片。
Proportional:指明图形文字是否以等比例方式显示。
Transparent:通过颜色来设置Picture属性所包含的图片的透明颜色。其设置方式与TBitBtn的Glyph属性相同(依左下角像素为基准)。需注意,仅对BMP图片有效。
4、TShape组件
用来显示矩形、正方形、圆形、椭圆等基本几何图形,因不接受用户输入,所有比较节省资源。
Brush:用来设置TShape组件的内容。属于TBrush类。设计时可设置其子属性:color和style;运行时可设置其Bitmap属性。
Pen:用来设置TShape组件的框线。
Shape:设置TShape的显示外观。
二、Win32选项卡常用组件
1、TPageControl组件
常用属性:
ActivePage:设置或取得作用中的TabSheet组件。
ActivePageIndex:设置或取得作用中的TabSheet组件的索引值,当不存在选项卡时,此值为-1。
HotTrack:鼠标指到选项卡时,选项卡文字是否高亮显示。
Images:指定选项卡显示的小图标来源TImageList,选项卡图标与来源TImageList对象间的对应关系,通过各选项卡的TabSheet的ImageIndex指定。
MultiLine:选项卡是否以多列显示。
PageCount:只读。取得选项卡数(即TabSheet总数)。
Pages:只读。取得PageControl包含的TabSheet集合。通过Pages可直接操作指定的TabSheet。
RaggedRight:一般用默认值False。选项卡右边空白是否不填满。
ScrollOpposite:一般用默认值False。当有多个选项卡时,选择的选项卡及其右侧所有选项卡是否自动占满到PageControl的另一端。
Style:设置选项卡外观。
TabPosition:选项卡相对于PageControl的位置,此属性仅在Style设为tsTabs时有效。
TabHeight、TabWidth:设置选项卡高度、宽度。
常用方法:
FindNextPage:由指定的TabSheet(CurPage参数),依照指定方向(GoForward参数;往前为True)并指定是否检查选项卡的Visible(CheckTabVisible),返回CurPage的下一个TabSheet。当CurPage不存在时,则根据GoForward为True或False,分别返回第一个或最好一个TabSheet。
SelectNextPage:将选项卡定位到下一个TabSheet(依GoForward决定向前还是向后)。
常用事件:
OnDrawTab:当选项卡重绘时,触发这个事件。
OnGetImageIndex:当选项卡正准备显示其对象的选项卡图标时触发。当时间一开始触发时,其TabIndex与ImageIndex参数值相同,可通过变更ImageIndex改变该选项卡的图标。
2、TImageList组件
用来有效管理大量的ICO或BMP图片。通常通过索引值,提供其他组件图标。虽然她也拥有运行时的一些属性,方法设置,但通常将其视为一个静态的图标数组来源。
TransparentColor:仅用于BMP图片(因ICO本身已是屏蔽过的图片)。透明色仍为左下角的像素颜色,但可自行由图中点选透明颜色。
Fill Color:当指定图片较小时,可指定填满颜色。
Options:选项设置中的Cop表示加载的图片以左上角为基准,Center表示已图片中心为基准,Stretch则是将图延伸到跟图标大小一样的大小。
可直接拖拽图形来重新排列。
3、TRichEdit控件
继承自TMemo,具有标准的格式化文字能力,用来提供类似Word的格式化文件。即支持RichText的格式化(RTF)、打印、搜索、文字拖拽等功能。
使用此组件时,必须自行建立用户操作界面,即所有字体变化、缩进等行为,都必须通过程序自行建立操作接口并编写对应的程序代码。
DefAttributes:运行时自定义TRichEdit组件的默认字体。
HideScrollBar:当不需要滚动条时,是否隐藏滚动条。
HideSelection:当失去焦点时,是否隐藏TRichEdit中选择的文字。
PageRect:指定打印内容大小。
Paragraph:设置段落。
SelAttributes:类似DefAttributes,仅作用于选取的文字,或指定位置。
PlainText:指定读写文件时,是否将RichEdit的文字视为纯文本。
FindText方法:查找文字。
Print方法:打印RichEdit的格式化文字,参数Caption为打印文件的标题。
4、TDateTimePicker组件
是可视化的日期、时间组件,其显示格式由系统设置决定。
常用属性:
CalAlignment:决定显示日期时,显示的下拉日历组件相对于日期组件的位置。
Checked:当ShowCheckBox设为True时,显示的检查栏是否被选择。
DateFormat:设置日期格式。dfShort:简短日期。dfLong:完整日期。
DateMode:设置日期组件右方显示的外观。其值为dmComboBox(下拉箭头)或dmUpDown x(上下箭头)。当Kind设置为dtKTime,则此属性失效。
DroppedDown:只读。用来判断日期组件是否处于下拉状态。
Format:格式化TDateTimePicker组件日期显示格式。Format格式字符如下:
Ø d、dd、ddd、dddd:顺序显示一位日期、两位日期、简短星期、完整星期。
Ø H、HH、h、hh、m、mm、s、ss:依序为时分秒。对小于10的数,一位数时,第一位保留空白,两位数时前置0。H与h区别:前者24小时,后者12小时。
Ø M、MM、MMM、MMMM:依序为一位月份、二位月份、简短月份、完整月份。
Ø t、tt:显示am/pm。t显示格式为“a/p”,tt显示格式为“am/pm”。
Kind:设置TDateTimePicker组件显示日期(dkDate)或时间(dkTime)。
ShowCheckbox:是否显示检查栏。为True时,Checkbox必须被选择,才能接受输入。
常用事件:
OnCloseUp和OnDropDown:下拉日历关闭时时触发,TDateTimePicker组件显示时触发。
5、TStatusBar
由一些Panel组件(TStatusPanel)组成,且通常位于程序下方。
AutoHint:为True时,Hint属性的文字会被显示到第一个Panel中。
Panels:存放管理TStatusPanel的集合。设计时通过Panels可新增、删除Panel,或改变显示文字、Panel宽度、浮凸效果(Bevel属性)。运行时则通过Items属性的Add、AddItem、Insert等方法管理Panels。
SimplePanel:指定TStatusBar是否仅有单一Panel,当设置为True时,Panels失效。
SimpleText:用来显示SimplePanel为True时,状态栏的文字。
SizeGrip:状态栏右下方是否显示三角形斜纹。若TStatusBar右边的Panel设置为靠右对齐,文字会被此斜纹裁掉。
UseSystemFont:是否使用系统默认字体。设为False时,Font中设置的字体才有效。
FlipChildren:将TStatusBar中的Panels顺序反转。
三、System选项卡常用组件
1、TTimer组件
Enabled:用来控制组件是否每隔Interval所指定的时间,触发OnTimer事件。
Interval:触发OnTimer事件的时间间隔。
OnTimer事件。
四、Dialogs选项卡常用组件
1、TOpenDialog组件:用来显示“选择文件”对话框。
DefaultExt:默认扩展名用于保存文件对话框,但其扩展名字符串不允许超过3个字符,且字符串中不得含有‘.’。
FileName:用来存放包含路径的文件名称字符串。
Files:只读。用来存放TOpenDialog选取的所有文件名称(当Options设置为允许多重选择时,Files包含多个文件名字符串)。
Filter:打开文件时的“文件类型”设置。格式为“类型描述|*.扩展名”,其中类型描述可省略。多中文件类型时,如:OpenDialog1.Filter :='文本文件(*.txt)|*.txt|avi文件(*.avi)|*.avi'; 此种方式是要么txt要么avi。OpenDialog1.Filter := 'bmp(*.bmp),txt(*.txt)|*.bmp;*.txt';此种方式是bmp和txt同时起作用。
FilterIndex:指定打开文件对话框中的默认文件类型,其值起始于1。如上述设置的txt和avi格式时,默认为txt,可设置此值为2,则默认显示avi。
InitialDir:指定默认路径,当默认路径不存在时,会以系统默认路径取代。
Options:设置了打开、保存文件的对话框共享选项设置,其常用设置值如下:
Ø ofAllowMultiSelect:允许多重选择文件。
Ø ofCreatePrompt:文件不存在时,是否提示建立新文件。
Ø ofOverridePrompt:文件存在时,是否提示覆盖,用于保存文件对话框。
OptionsEx:只包含ofExNoPlaceBar选项,当ofExNoPlaceBar为False时,TOpenDialog包含下图中红色圈出的区域;否则,不包含。
Execute方法:调用对话框,通过返回值来确定是否按下“确定”按钮。
2、TFontDialog组件
用来显示“设置字体”对话框,也是通过Execute来打开对话框。
Device:可用字体设置。默认为fdScreen(屏幕字体),其他可能值包括fdPrinter(打印机)、fdBoth(两者)。
Font:设置、取得字体。
Option属性:常用设置:fdApplyButton:是否包含“应用”按钮。
3、TColorDialog组件
用来显示“颜色”对话框,也是通过Execute来打开对话框。
Color:设置、获取颜色值。
Options:常用设置:cdFullOpen:对话框是否完全打开。cdPreventFullOpen:“规定自定义颜色”按钮是否为disabled。