第3章 DELPHI的窗体设计_第1页
第3章 DELPHI的窗体设计_第2页
第3章 DELPHI的窗体设计_第3页
第3章 DELPHI的窗体设计_第4页
第3章 DELPHI的窗体设计_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

第3章窗体设计

■Delphi窗体、组件

-窗体属性、事件

-设计窗体

■窗体模板

■加H程序及其设计

3.1Delphi窗体

3.2设计窗体

3.3体模板

3.4运行时改变窗体

3.5MDI程序

3.1Delphi窗体

3.1.1窗体与窗口

■窗口是屏幕上被边框围住的一部分。它

有标题,而且通常有一个控制菜单,用

于移动、关闭、最大化、最小化窗口。

■在Windows中,用户界面的绝大多数都是

窗口。

■应用程序的窗口,通常可分为三类:

■•重叠型窗口:作为应用程序的主窗口。

■•弹出式窗口:通常用于对话框与消息框。

只有弹出式窗口才能覆盖其他窗口,弹出式窗

口与重叠型窗口非常相似。

■•子窗口:通常用于不能移出父窗口客户区

中的从属窗口,如用于创建MDI应用程序等。

3.1.2窗体属性

■窗体是用户设计应用程序界面的地方,

有时也将窗体称作表单。

■在Delphi中,每个窗体都有一个窗体文

件(.DRM)和一个单元文件(.PAS)o

■窗体文件保存着窗体和窗体上各个组件

的属性;单元文件则是用户编写窗体的

事件处理过程的地方。

震Delphi7・Project1

|<None>3Je

_rt-utI专Standard|AdditionalIWin32|SvstemIDataAccess|DataControls|dbExorew|Da

Ub>eclLroeVi”,(Jbjcc.X

7jFor*lIZ叵区,

~|Forml

Forml

PropertiesEvents

Action窗体的各种属性

窗AcfiveControl

AlignalNone

AlphaBlendFalse

AlphaBlencK^ah255

田Anchor*[akLeftakTop

AutoScrollTrue

AutoSize

BiDiMode□LeftToRighi

田Borde(lcon$[biSystemMenu.bil

BorderStylebsSizeable

BorderWidth0

属CaptionForml

ClientHeight539

Clientwidth469

ColorIIclBtnFace

性田Con$traint$(TSizeConsUaints)

CH3DTrue

CursorcrDefault

DefaultMonitordnv\ctiveForm

DockSiteFalse

DragK.inddkDrag

DragModedmManual

EnabledTrue

□Font(TFont)

UormChilo

Allshown

窗体的常用属性

说明

BorderStyle设置窗体的边界风格

Caption用于设置显示在窗体标题栏上的文字。

Height设置窗体的高度

width设置窗体的宽度

Left设置窗体左上角的X坐标

Top设置窗体左上角的y坐标

Color设置窗体的背景颜色

Bordericons用于决定窗体是否拥有系统菜单、最小化按钮、最

大化按钮和帮助按钮。

ClientHeight设置用户区的高度,以像素为单位

Clientwidth设置用户区的宽度,以像素为单位

Ctl3D看Ture和False两种取值,用于决定窗体是否以二维

显示

Cursor设置窗体可用的各种光标

^ffabled

决定窗体是否可响应事件

Font决定窗体上所用的字体、字体颜色、字符大小及

字体的一些特征。

Formstyle即窗体风格

ActiveControl决定程序运行时初始焦点的控件。

Hint设置窗体的弹出提示文字

ShowHint决定窗体及窗体中的组件是否会显示Hint属性所

提供的提示文字

HorzScrollBar决定窗体水平滚动条的各种属性

VerScrollBar决定窗体垂直滚动条的各种属性

HelpContext提供窗体的上下文帮助文件名

Icon决定窗体被最小化后的显示图标

Menu决定当前窗体要使用哪个菜单作为主菜单

Name命名窗体及组件对象,所有组件都有该属性。

Position设置窗体的显示位置

Visible决定窗体在运行时是否可见

3.1.3窗体事件

事件的产生可以来自系统,也可以

来自用户。

事件是一种将发生的动作与代码相

连的机制。

因此事件是一个方法指针,它指向

某个类实例的方法。

FileEditSearchViewProjectRunComponentDatabaseToolsWindowHelp二]I®

⑥Standard|AdditionalIWin32ISu$temIDataAccessIDataControkIdbExoresjID.

ObjectTreeView,Objec.

一回区

□Foiml

窗*1

FormlZJ

PropertiesEven匕

Action窗体的各种事件

ActiveControl

Menu

ObjectMenultei

OrActivate

OnCanResize

OnClick

0ndose

OnCloseQuery

OnConstrainedl

OnContextPopi

OnCreate

OnDbICIick

OnDeacbvate

OnDestroy

OnDockDiop

OnDockOvei

OnDragDrop

OnDragOver

口nEndDock

OnGetSitelnfo

OnHelp

OnHide

OnKeyDown

OnKeyPress

rv-“...It_

1.Create和Destroy事件

当创建窗体时,就执行Create事件;

当释放窗体所占用的空间时,就会执行

Destroy事件。

当创建窗体,并且Visible属性设置

为True时,下列事件按顺序出现Create、

Show、Activate、Painto

■2.Show和Hide事件

■Show事件和Hide事件分别在窗体显

示与隐藏时被触发。

■当窗体的Visible属性设置为True时,

窗体被显示,同时触发Show事件;当窗

体的Visible属性设置为False时,窗体

被隐藏,同时触发Hide事件。

3.Activate和Deactivate事件

当激活窗体时,就触发Activate事

件,当窗体不再激活时,就会触发

Deactivate事件。

■4.Click和Dbl租ick事件

■在窗体上(光标没有在其它组件上)

单击,就会触发Click事件。

■在窗体上双击,就会触发DblClick

事件。

■5.DragDrop事件

■在窗体上拖放操作时,就会产生DragDrop事件。

■该事件过程的基本语法形式为:

■procedureTForm.FormDragDrop(Sender,Source:TObject;X,Y:integer);

■其中Source参数为拖动的对象,Sender为要拖动到

的对象,X和Y为拖放后鼠标的位置坐标(单位像素)。

■6.KeyDown>KeyUp和KeyPress事件

■在窗体上按下键盘的任一键(KeyDown)或

释放它(KeyUp),就会产生Keybown和KeyUp事

彳牛。

■可以对键盘上的所有键,包括功能键及与

Shift、Alt、Ctrl的组合键进行处理(但如果

按下的是快捷键或者热键,则不必编写事件处

理程序,该操作由系统来完成)。

■在窗体上按下单个的字母键,就会产生

KeyPress事件。

>-

■7.MouseDown>MouseUp和MonseMove事

■在窗体上按下或释放任一鼠标键时,

就会出现MouseDown和MouseUp事件。

-在窗体上移动鼠标(鼠标指针在窗

体上),就会产生MouseMove事件。

■8.Resize事件

在调整窗体的大小时,就会触发

Resize事件。

3.2设计窗体

3.2.1新建窗体

设计窗体的第一步当然是新建空白

窗体。

单击[New]菜单下的[New

Application]命令开始一个新项目,此

时会新建一个名为“Forml”的空白窗体。

3.2.2设置窗体属性

新建窗体后,就是设置窗体的属性

了。

设置窗体属性通常是利用Object

Inspector来进行。

3.2.3添加组件

新建窗体后,就是往窗体中添加组

件了。

从组件板上往窗体添加组件通常有

三种方法。

,组件面板

FileEditSearchViewProjectRunComponentDatabaseToolsWindowHelp|<None>三],3

I七㈤▼且|同畲|曲型11。IStandard|AdditionalIWin32ISustemIDataAccess|DataControls|dbExore&$IDataSnao|BDE|ADO|InterBase|W

区信驾亶

S:?关口0息

Qbj”,7For>l

□Forml

IFormlTForm!三]

PropertiesEvents

OnClo$eLabel控件

OnCloseQuery

OnConshamedRe;

OnContextPopup组件面板

OnCreale

OnDbICIick

OnDeactivate

OnDe$troy

OnDockDrop

OnDockOver

OnDragDrop

OnDragOvei

OnEndDock

•双击组件板上的组件图标,Delphi将把组件以

缺省的标准和大小放在窗体正中间。

•在组件板上单击组件图标,选中组件,再在窗

体中想放置组件的位置的左上角单击一下窗体,

Delphi将以缺省的大小把组件放置在那里。

•如果想添加组件的同时设置组件的大小,可将

组件添加到窗体中后,单击组件选中组件,这时组件

四周将会出现八个黑色方块的控点。

在某一控点上按住鼠标左键,拖动鼠标,这时会出现一个

矩形方框,表示调整后组件的大小。

拖放改变控件大小

/jDelphi1-Pro]cct1

FileEditSearchVie/ProjectRunComponentDatabaseToolsWindowHelp

L期暂留I数电II*]Standard|AdditionalIWin32!Su$temIDalaAcce

口二国七al|-IIH°,5O丁%A画囿闻区

如果方框的大小合适,释放鼠标,

组件会按矩形方框的大小和形状放置在

窗体中。

注意:非控件组件的大小和形状不

能任意改变,它们在窗体中的大小和形

状由系统决定。

■可以往窗体中添加所需的组件。

■添加组件时,如果不知道组件在组件板

的哪一个选项卡怎么办?

添加组件时,如果不知道组件在组件板的

哪一个选项卡怎么办?

■可以单击[View]菜单下的[Component

list]命令,打开一个[Components](组

件列表)对话框。从该对话框中可以找到

所需组件。

如果想在窗体上添加多个相同组件,

可按住Shift键。

再单击要添加的组件,把鼠标移到

窗体上。

*

然后每单击一次鼠标即可放置一个

组件,连续单击鼠标,可以放置多个组

件,直到不想放置为止。

最后用鼠标单击组件板上左侧的箭

头标志按钮,就可脱离连续放置状态。

3.2.4编辑组件

添加组件后,还要对组件进行适当

编辑,包括选定组件、调整组件大小和

位置、对齐组件,以及对组件进行删除、

复制、剪切和粘贴操作。

■1.选定组件

-要编辑组件,首先得选定组件。

■选定组件可分为选定单个组件和选

定多个组件两种。

-选定单个组件又有两种情况。

■•若组件在窗体最表面,即可见,此时,

单击组件,该组件周会出现八个黑色

小方块的控点表示该组件被选定。

■•若组件被另一个组件完全覆盖,此时要选

定组件,得先右击覆盖该组件的组件,打开一

快捷菜单,再选择[SendToBack]命令,这样

可将被覆盖的组件传送到窗体表面,笄选定该

组件。或从ObjectInspector窗口的组件下拉

列表中选定该组件的名称。

如果要选定多个组件,可以有两种

方法。

1、按住鼠标左键,拖动鼠标,此时

将会出现一个选线矩形框,使要选定的

组件被方框所包含,释放鼠标即可。

2、按住Shift键,依次单击要选定

的组件。

选定多个组件后,这些组件即形成

一整体。

可同时进行移动、删除、复制等操

作。

■2.调整大小

■要调整组件的大小,可先选定组件,

将鼠标放在组件周围的某个控点上,按

住鼠标左键并拖动鼠标,即可改变组件

的大小。

选定组件后,按住Shift键,同时按

“3”键可

精确调整组件的尺寸。

另外,可以通过在Object

Inspector(对象查看器)中设置组件的

Height和Width属性来调整组件的大小。

■3.调整位置

■调整组件的位置和调整组件大小的

操作基本相同。

方法是先选定组件,在组件8个控点

形成的方框内按住鼠标左键并拖动鼠标,

就可以将组件拖到所需位置。

选定组件后,按住Ctrl键,同时按

“一"、"一"、"t"、"I"键可

精确调基组件的%置。、

另外,可通过在Object

Inspector(对象查看器)中设置组件的

Left和Top属性来调整组件的位置。

■4.对齐组件

■为了使窗体整洁、美观,经常需要

把一系列组件横向对齐或纵向对齐。

.如果要对齐组件,可执行如下操作:

对齐组件执行的操作:

■(1)选定要对齐的多个组件。

&对齐组件执行的操作:

■(2)执行如下操作之一,打开[Alignment]

对话框

■①单击[Edit]菜单下的[Align]命令。

■②右击窗体,打开一快捷菜单,再选择

[Align]命令。

对齐组件执行的操作:

__-

■(3)根据需要,选择如下操作:

■①如果要设置水平对齐,可在[Horizontal]选

项组中选择对齐方式单选按钮。

■如:

■[LeftSides](左对齐)、[Centers](居中

对齐)、[RightSides](右对齐)、[Space

equally](水平均匀分布)、[Centerin

window](组件在窗口横向居中)。

■②如果要设置垂直对齐,可在[Vertical]

选项组中选择对齐方式单选按钮。

■如:

■[Tops](顶端对齐)、[Centers](居

中对齐)、[Bottoms](底端对齐)、

[Spaceequally](垂直均匀分布)、

[Centerinwindow](组件在窗口纵向居

中)。

4对齐组件执行的操作:

■(4)单击[OK]按钮。

■5.删除组件

■如果要删除不合适的组件,可在选

定组件后,按Delete键,或单击[Edit]

菜单下的[Delete]命令。

>

-删除单个组件和删除多个组件的操

作完全相同。

-如果错删除了组件,可用[Edit]菜

单下的[undelete]命令恢复。但如果删

除组件后进行了其他编辑工作,则无法

恢复。

■6.复制、剪切和粘贴组件

■复制、剪切和粘贴组件分别是使用

[Edit]菜单下的[Copy]>[Cut]>

[Paste]命令。

另外,可直接在窗体文件中复制w

除、剪切)组件。

以文本方式查看窗口

7FOFBI回回区I

Button1Button2

Edit

Control

Position

FlipChildren

脸ITabOrder.

痘CreationOrder

XeverttoZnlierited

AddtoRepository.

ViewasText

TextDFM

右击窗体,可打开一个快捷菜单,

从中选择[ViewasText]命令,可打开

窗体文件。

窗体文件中有窗体中所有组件及其

属性的描述。

将需要复制(删除、剪切)的组件的

代码复制(删除、剪切),其实质即是复

制(删除、剪切)组件。

在窗体文件中复制(删除、剪切)组

件完毕后,右击文件,打开快捷菜单,

从中选择[ViewasForm]命令,即可返

回窗体窗口。

■7.锁定组件

■窗体设计好后,为了确保窗体中的

各个组件的位置不会因为不小心而改动,

可以将组件锁定,组件锁定后窗体就不

能再移动或改变大小,除非解除锁定。

锁定组件

7Delphi1-Project1

FileEdit|SearchViewProjectRunComponentDatabaseToolsWindowHelp|<None>

|七国、CtrTh>◎Standard\Additional|Win32|System|DataAccess|DataControls|dbExon

xRedaSidft4csi校

I田百J氐一―黑•A-叁|qj」—驾营3.

CatCtrl+X

CopyCtrl+CFool

自F%51«CtrX+V

DeleteCtrl+Del

SelectAllCtrl+A

[Editl

AligntoGrid

Panell

BringtoFront

Propertie

SendtoBack锁定组件

Align

AhgnmrAlign.

0AnchorSizeButtonlButton2

AutoSi;

Scale...

Bevellr

BevelDTabOrder

Bevefv-CreationOrder

BiDiMo

FlipChiL

Border?

,-e■.,

BordeA

ICaptior

Colot

□Constraints^SizeConsJraM||

CU3D

如果要锁定组件,单击[Edit]菜单

下的[LockControls]命令。

再次单击该命令则可解除锁定。

3.2.5设置组件属性

3.2.6Tab顺序

Tab顺序是指在运行时用Tab键将控

件组件切换成当前活动组件时所要遵循

的顺序。

Foral。叵I区]

个人基本信息

姓名,【I年龄:[

体重:[

身高:

电话।[

籍氮

确定重填

■设置Tab顺序有两种方法。

第一种方法是在ObjectInspector(对象

查看器)上通过设置组件的TabOrder属性值来

达到目的。

第二种修改Tab顺序的方法是单击[Edit]

菜单下的[TabOrder]命令,或右击窗体,从

快捷菜单中选择[TabOrder]命令,打开菜ab

Order]对话框。该对话框以Tab顺序将组件依

次排列。

调整组件Tab顺序方法一

FileEditSearchViewProjectRunComponexitDfttaba.seJoolsWindowHelp|<None>

七必•日0X宫昌愈Standard|AddihonalIWin32!SvstemIDataAccessIDataControlIdbExor

i£g||>>iiIj-^||iQ宜窠生八成匐旦।区afi冒3-

Oiu“tTr・m・・.因

W__

QEdit2

个人基本信息

Editl二J

姓名:年龄:

Properties]Events|

ImeName

:体重,

Left85身高:

MaxLength0

NameEditl

电话:

OEMConvertFalse籍贯:

ParentBiDiModeTrue

ParentColorFalse

Parent口I3DTrue

确定重填

ParentFontTrue

ParentShowHintTrue

PasswordChar«0Edit3:TEdit;

PopupMenuLabel4:TLabel;

ReadonlyFalse

ShowHintFalse改变TabOrder属性值

TabOfdero

TabStopTrue

LUTCoZrEoTuT

Tag0Buttonl:TButton;

TextToho1M・TTslno1•

Top48

调整组件Tab顺序方法二

个人基本信息

姓名:年龄:j

身高,

籍贯:

如果要改变组件的Tab顺序,先选定

该组件,然后单击对话框右边的上下箭

头按钮,移动该组件到适当位置。

3.2.7创建顺序

创建顺序和Tab顺序意义相似,不同

的是,Tab顺序用于控件型组件,而创建

顺序则用于非控件型组件。

通常创建顺序决定创建窗体时非控

件型组件被创建的顺序。

»3.2.8窗体网格

■缺省情况下,窗体都带有网格。此时,

移动和改变窗体中组件的位置和大小都

要以网格的单元格为单位。

窗体的网格

ZUulpha7-ProjectI

fileEditSetr«JiViewprojectRunComponentRatabas.ToolsWindowHelp|<None>31磬

之国▼目H自I盘|窗,囱JI*11Standard|Additional|V/ird21SvsUMh|DataAcce$$IDataControl,jdbExo<e5s|JM

由各密El»,H3息宜窠生A城国国国G驾富皿)・

OlijvctTrw«

l1l.paji

窗体的网格

FormlBEB

目Edrtl

的Edit2个人基本信息

X]

EditlTEdil\「姓名:年龄:二]

Properties]Events|

□Anchors[akLeft.akTop]人高:彳体重:i

AutoSelectTrue

AutoSizeTrue二]

QBevelEdges[beLefl.beTop,b«电话::[

BevellnneibvRaised

BevdKindbkhJona

BevelOuterbvLowered

BCiModebdLeftfoRigrt确定重填

BorderStyIeb$Single

这种情况下,对精确排列、对齐组

件有时很不方便。

因此,有时需要使窗体的网格无效。

4

、如果要使网格无效,单击[Tools]菜

单下的[EnvironmentOptions]命令,

打开[EnvironmentOptions]对话框,并

选择[Designer]选项卡。

改变设计者参数

FileEditSearchXiewProjectRunComponentDatabaseToolsWindowHelp|<None>二I等」

*9日白心3嬷Standard|AdditionalIWin32ISustem!DataAccessIDataControlsIdbExoress|DataSnao|

।,H»,诵o6氐亘》gA西昌匈区优驾管T11■三:J

IbjeetTruirViaw,Ubj.Sg0S|^£fEnvironBentOptions

SUnatl

TypeLibraryIEnvnonmentVariables|Internet|DelphiDirect

£FOI

PreferencesDesigner|Ob|ectInspector|Palette|Library|Explorer

笃EdR1

51Edit2,+GridoptionsOptions

1*7DisplayaridFShovfcomponentcaptiom

|Edit1TEdif

姓名VSnaptogrid歹Showdesignerhints

Properties|Events]

GridsizeIyShowextendedcontrolhints

□Anchors[akLeh,akTop]A

身高xR"耐Y|一8jJ

AutoSelectTrueJ

|AutoSize-

True

Modulecreationoptions

HBevelEdges[beLeftbeTop.b*

VNewform$a$text

BevellnneibvRaised

BevelKmdbkNoneI**Autocreateforms&datamodules

BevelOuterbvLowered

BiDiModebdLeftToRight

BorderStviebsSingle

CharCaseecNormal

Color口cWindow

国Constraints[TSizeConstraint

OI3DTrue

CursorcrDefault

DragCursorcrDrag

DragKinddkDrag

Cancel

DragModedmManual

在[Gridoptions]选项组进行窗体

的网格设置,选项组中选项功能如下:

•[Displaygrid]复选框:使窗体

显示网格。

•[Snaptogrid]复选框:在窗体

中移动组件和改变组件的大小都以网格

间距为单位,否则可任意移动组件和改

变组件大小。

%

•[GridsizeX]编辑框:设置网格

单元格的宽(以像素为单位)。

•[GridsizeY]编辑框:设置网格

单元格的高(以像素为单位)。

■-[Showcomponentcaptions]复选框:设

计时显示非控件型组件的标题(option)。

选择该项可清楚地识别非控件型组件。

•[Showdesignerhints]复选框:

设计时,将鼠标移动到某个组件上,就

可以显示该组件的名称及所属的类。

3.2.9保存文件

窗体设计完后,要保存项目文件和

单元文件,以便以后修改。

保存单元文件方法是,单击[File]

菜单中[SaveAs]命令项,打开[Save

UnitAs]对话框,选择指定文件夹和文

件名,单击[保存]按钮。

保存项目文件方法是,单击[File]

菜单中[SaveProjectAs]命令项,打开

[SaveProjectAs]对话框,选择指定文

件夹和文件名,单击[保存]按钮。

3.3窗体模板

有一些窗体设计已形成约定俗成的

规范,此时如果每次设计窗体时都重新

设计,不仅浪费时间,而且难以保证符

合规范。

对于这一种情况,Delphi提供了窗

体模板。

窗体模板位于对象库中。

单击[File]菜单下的[New]级联菜单

下[Other]命令,打开[NewItems]对话

框(即对象库),并选择[Forms]选项卡。

对象库共提供了3种窗体模板,另外,

还提供了复制、继承、使用三种应用窗

体模板的方式,分别对应于对话框底部

的[Copy]、[Inherit]和[Use]单选按钮。

对象库提供的3种窗体模板

■这三种方式的含义如下。

•复制方式:Delphi将把窗体模板

文件(.DFM)和单元文件(.PAS)复制一份。

并以缺省的“Formn.DFM”和

“Unitn.PAS”来命名所生成的窗体和单

元文件(n表示某一个数字),将它们放入

在当前项目中。

•继承方式:Delphi将以窗体模板

所定义的类为基类,派生出一个新的窗

体类。并把派生窗体的DFM文件和PAS文

件用缺省名放入项目中。

•使用方式:Delphi将在项目文件

(.DPR)中的Uses语句中声明窗体模板的

单元文件。该窗体并没有复制到项目中。

但编译项目时,Delphi将根据项

目文件(・DPR)中的声明,把窗体模板的

文件一起编译链接。

对象库共提供了3种窗体模板,其功

能如下。

•AboutBox模板:标准的[About]

对话框,常用于显示应用程序的名称、

版本和版权信息等。

•DualListBox模板:有两个列表

框的窗体,可在两个列表框之间相互移

动选项。

■•TabbedPages模板:多页窗体。

用户除了可以利用系统提供的窗体

模板外,也可以创建窗体模板。

>

-如果要创建窗体模板,执行如下操作。

-(1)新建并设计一个窗体。

-(2)右击窗体,打开一个快捷菜单。

■(3)单击[AddtoRepository]命令,打

开[AddtoRepository]对话框。

-(4)在[Title]编辑框输入窗体模板的名

称。

■(5)在[Description]编辑框输入窗体模

板的描述。

■(6)在[Page]下拉框中选择“Forms”。

■(7)在[Author]编辑框输入作者姓名。

■(8)单击[Browser]按钮,选择窗体模板

的图标。

■(9)单击[0K]按钮,保存窗体模板。

保存窗体模板(一)

保存窗体模板(二)

这样,下次再打开[NewItems]对话

框的[Forms]选项卡,就会发现其中有用

户所创建的窗体模板。

3.4运行时改变窗体

窗体和组件的属性可以分为两种情

况,第一种情况是在设计窗体时设定属

性,在运行时不允许修改。

第二种情况是可以在设计窗体时设

定属性,也可以在运行时设定属性,也

就是说可以在运行时修改属性值。

另外,还可以根据需要在运行时创

建组件。

3.4.1运行时设置属性

3.4-2运行时创建组件

Delphi还允许用户在运行程序时根

据需要创建自己的组件。

这种方法与在设计时添加组件相比,

具有更大的灵活性,而且能够节省内存。

这是因为,运行创建的组件可以在

不需要时删除。

■运行时创建组件可分为三个步骤:

■(1)组件的变量声明,即用要创建的组件

对应的类声明一个组件对象。

■如:用组件ColorDialog对应的类

TColorDialog声明了组件对象

ColorDialogl。

■(2)创建组件,即调用该组件类的Create

方法,该方法引用的参数表明该组件被

谁拥有。

■如:参数为Forml,表明该组件创建

后由Forml窗体拥有。

■(3)释放组件,即调用组件的Free方法,

释放掉组件所占的内存。

3.5MDI程序

所谓MDI,是MultipleDocument

Interface的缩写,意思是多文档界面。

MDI程序能够同时打开多个文档。

一个MDI程序至少应包括两种类型的

Form:一个是“父"Form,它的

FormStyle属性应当设为fsMDIForm;

MDI的窗体属性设置

-UniHFi届txt]

r"lForml

目ButtonlPROGRammy;

ElButton2(Sapptypeconsole}

vari:integer;

IFormlTK,3二]

Properties|Events|

BorderV/idth0

CaptionForml

DientHeight336

ClientWidth459

Color口clBtnFace

ElConstraints(TSizeConstraints)

Ctl3DTrue

Cursorc(D©fault

DefaullMonrtordmActiveForm

DockSiteFalse

DragK.inddkDrag

DragModedmManual

EnabledTrue

HFont(TFonl)

FonnStylefsMDIForm▼

Height(sMDIChild

HelpContexthMDIForm.

HelpFilefsNormal

HelpKevwordf$StayOnTop

HpInTunphlPnnfrpvl

另一个是“子”Form,它的

FormStyle属性应当设为fsMDIChild。

如果FormStyle属性设为fsNormal,

表示是一般Form。

।3.5.1MDI窗体

■1.“父”Form

■MDI程序需要有一个公共的区域显示

多个文档并在这些文档之间切换,这个

公共的区域称为“父"Form或框架,

在这个框架内被打开的文档称为子

窗口

一个MDI程序只能有一个“父”Form,

但可以有多个子窗口,子窗口的类型可

以是不同的。

&MDI窗体举例

可以把项目中任意一个Form的

FormStyle属性指定为fsMDIForm。

但是,如果没有同时把这个Form指

定为程序的主Form,编译将出错。

■2.“子”Form

要创建一个“子”Form,首先要使

用[File]菜单上的[NewForm]命令向项

目中加入一个新的Form,把这个Form的

FonnStyle特性设为fsMDIChild。

3.5.2创建子窗体

■1.启动时静态建立子窗体

■在[ProjectOptions]对话框的

[Forms]页上有一个[Auto-Create

Forms]列表框。

静态建立子窗体菜单位置

7Delphi7—ProjectI

FileEditSearchViewProjectRunComponentDatabaseToolsWindow]

七日,日,亶旬隹二AddtoProject.Shift+Fll32jSustem|Data?

5国的0»・IRemovefromProject'国司旦)

甩ImportTypeLibrary.

r,Ubj.et&AddtoRepository.

国ViewSource

Languages

□Form2UnitlUni

温馨提示

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

评论

0/150

提交评论