delphi 写界面程序 3.Delphi常用组件1.窗体
delphi 写界面程序 3.Delphi常用组件1.窗体
2024-11-22 10:10:19  作者:风的追求  网址:https://m.xinb2b.cn/tech/emq148954.html
1.窗体

在Delphi的组件面板中一共有500多个组件。我们从窗体开始逐步介绍常用组件。

用户界面是应用系统中直接面对用户的窗体,包括:主窗体、子窗体、弹出对话框窗体等。

1.1 Form组件1.1.1 Form组件的主要属性BorderIcons

用来设置窗体标题栏上的图标,取值如下:

取值

功能

biSystemMenu

可以使用控制菜单,也称为系统菜单。

biMinimize

显示最小化按钮

biMaximize

显示最大化按钮

biHelp

显示帮助按钮,只有窗体的BorderStyle属性设置为bsDialog或者BorderIcons中不包括biMinimize和biMaximize时,biHelp才会有效。

BorderStyle

用来设置窗体的外观和边框,取值如下:

取值

功能

bsDialog

标准对话框窗体,边框大小不可以改变

bsSingle

单线边框窗体,可以改变大小

bsNone

无边框窗体,无标题栏,不可以改变大小

bsSizeable

边框大小可改变的窗体

bsToolWindow

与bsSingle风格相同,但标题栏较小,如果设置为该值,BorderIcons属性中的biMinimize和biMaximize不起作用

bsSizeToolWin

与bsSizeable风格相同,但标题栏较小,如果设置为该值,BorderIcons属性中的biMinimize和biMaximize不起作用

Name

对象的名称,用来唯一标识对象。代码中使用该名称调用对象的属性和方法。

Caption

用来指定窗体标题栏中的文字,可以为空,为空时,与Name属性值相同。

Font

用来设置窗体中文字的字体、颜色和字号等。

FormStyle

用来设置窗体的类型。在Windows中应用程序可以分为三类:多文档界面应用程序(MDI)、单文档应用程序(SDI)、对话框应用程序。该属性的取值如下:

取值

功能

fsNormal

普通窗体,既不是MDI应用程序的父窗口,也不是MDI应用程序的子窗口

fsMDIChildMDI

MDI应用程序的子窗口

fsMDIFormMDI

MDI应用程序的父窗口

fsStayOnTop

在桌面最前端显示窗体

Icon

用来指定标题栏中显示的图标

Position

用来指定窗体的大小和显示的位置,取值如下:

取值

功能

poDesigned

与设计期间相同

poDefault

窗体每次显示时比上次往右下角移动一些位置,大小由操作系统决定

poDefaultPosOnly

窗体大小与设计期间相同,位置每次显示时比上次往右下角移动一些位置

poDefaultSizeOnly

窗体以设计期间的位置显示,大小由操作系统决定

poScreenCenter

窗体大小与设计期间相同,位置显示在屏幕中间,会考虑多个监视器时位置的调整

poDesktopCenter

窗体大小与设计期间相同,位置显示在屏幕中间,不考虑多个监视器时位置的调整

WindowsState

用来描述窗体显示的状态,取值如下:

取值

功能

wsNormal

窗体以普通状态显示,既不最大化也不最小化

wsMinimized

窗体以最小化状态显示

wsMaximized

窗体以最大化状态显示

1.1.2 Form的常用事件建立窗体时的事件

事件

含义

OnCreate

窗体创建时产生此事件

OnShow

窗体显示前产生此事件

OnPaint

重画窗体、窗体大小改变、窗体上的其他窗体移去时产生此事件

OnActivate

窗体激活时(窗体获得焦点时)产生此事件

关闭窗体时引发的事件

事件

含义

OnClose

窗体关闭时产生此事件

OnCloseQuery

窗体关闭时产生此事件

OnDestory

窗体被删除前产生此事件

OnDeactivate

窗体变为非激活状态时产生此事件

键盘引发的窗体事件

事件

含义

OnKeyDown

当窗体获得键盘的输入焦点,且有键按下时产生此事件

OnKeyPress

当窗体获得键盘的输入焦点,且有字符键按下时产生此事件

OnKeyUp

当窗体获得键盘的输入焦点,且按下键抬起时产生此事件

鼠标引发的窗体事件

事件

含义

OnClick

单击窗体时产生此事件

OnDblClick

双击窗体时产生此事件

OnMouseDown

当鼠标放置在窗体上,且鼠标按下键时产生此事件

OnMouseMove

鼠标在窗体上移动时产生此事件

OnMouseUp

当鼠标放置在窗体上,且鼠标按键抬起时产生此事件

1.1.3 窗体的方法

窗体的常用方法:

方法

含义

Create

用来创建一个窗体并进行初始化,同时触发OnCreate事件

Close

关闭一个显示中的窗体,会调用CloseQuery方法决定是否可以关闭,同时触发OnClose事件

CloseQuery

用来判断窗体是否可关闭,返回一个逻辑值

Release

用于将窗体对象从内存中彻底删除

Show

显示窗体,同时触发OnShow事件

ShowModal

显示模式窗体,触发OnShow事件

Print

打印窗体

1.1.4 窗体的创建

创建应用程序时,Delphi会自动创建新的窗体,它是应用程序的主窗体。应用程序除了主窗体外,还可以拥有子窗体、对话框等,所以需要在程序设计时创建和显示新的窗体。创建窗体的方法包括:静态创建和动态创建。

静态创建

创建窗体是在工程编辑设计时创建新窗体;

动态创建

是在程序执行过程中通过代码生成窗体;

1.静态创建新窗体

示例:首先,创建应用程序,自动生成Form1,然后选择File|New|Form菜单,生成Form2,在Form1中添加两个按钮,分别为“打开窗体2”、“退出”,在Form2中添加一个按钮“关闭”,如下图:


编写“退出”按钮的事件:

procedure TForm1.Button2Click(Sender: TObject);begin close;end;

编写"打开窗体2"的事件:

procedure TForm1.Button1Click(Sender: TObject);begin form2.show();end;

编写窗体2上的”关闭“按钮的事件:

procedure TForm2.Button1Click(Sender: TObject);begin close;end;

此时运行程序,会出现如下图所示的提示信息:


该提示信息的含义是在窗体1上引用了窗体2,询问是否添加引用。选择Yes,Delphi自动将窗体2的引用添加到窗体1的代码中,也可以选择No,然后在Unit1.pas中添加引用代码:

implementation{$R *.dfm}uses Unit2;

2.动态创建新窗体

示例:首先,创建应用程序,自动生成Form1,然后选择File|New|Form菜单,生成Form2,在Form1中添加两个按钮,分别为“打开窗体2”、“退出”,在Form2中添加一个按钮“关闭”,图与上例相同。

由于Delphi默认情况下会在执行程序时自动创建窗体,所以需要设置,选择Project|Options,单击Forms,在对话框右侧会出现Auto-create forms列表和Available forms列表,将Form2移动到Available forms列表,则Form2不会在内存中自动创建。

在Unit1.pas中 implementation 语句下面添加:

uses unit2;

编写“退出”按钮的事件:

procedure TForm1.Button2Click(Sender: TObject);begin close;end;

编写"打开窗体2"的事件:

procedure TForm1.Button1Click(Sender: TObject);begin form2 := TForm2.Create(nil); form2.Show;end;

编写窗体2上的”关闭“按钮的事件:

procedure TForm2.Button1Click(Sender: TObject);begin close;end;

编写窗体2的关闭事件:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);begin Release;end;

由于窗体2是动态创建的,所以在窗体2关闭时要执行销毁动作,以便释放窗体所占用的内存。

程序运行效果如下图:


1.2 弹出对话框

对话框是与用户交互的最佳途径之一,在Delphi中提供了多种对话框:

输出对话框ShowMessage过程ShowMessageFmt过程MessageDlg函数MessageDlgPos函数CreateMessageDialog函数输入对话框InputBox函数InputQuery函数

1.ShowMessage过程

该过程显示一个简单的对话框,语法格式:

ShowMessage(<信息内容>);

该过程显示的对话框以应用程序的可执行文件名为标题,对话框中包含一个OK按钮,对话框的高度和宽度随信息内容不同而变化;信息内容是对话框中显示的文本,在信息内容中可以使用硬回车(#13)来使文本换行。

2.ShowMessageFmt过程

语法格式:

ShowMessageFmt(<信息内容>, <参数数组>);

如:

ShowMessageFmt('您的%s成绩是%d分。', ['外语', 98]);

3.MessageDlg函数

执行该函数,可以在屏幕的中心显示信息对话框,语法格式:

<变量> := MessageDlg(<信息内容>, <类型>, <按钮数组>, HelpCtx);

类型取值:

取值

说明

mtWarning

警告对话框

mtError

错误对话框

mtInformation

信息提示对话框

mtConfirmation

确认对话框

mtCustom

不含图标的一般对话框

按钮取值:

取值

说明

mbYes

Yes按钮,返回mrYes或6

mbNo

No按钮,返回mrNo或7

mbOk

OK按钮,返回mrOk或1

mbCancel

Cancel按钮,返回mrCancel或2

mbHelp

Help按钮

mbAbort

Abort按钮,返回mrAbort或3

mbRetry

Retry按钮,返回mrRetry或4

mbIgnore

Ignore按钮,返回mrIgnore或5

mbAll

All按钮,返回mrAll或8

mbNoToAll

NoToAll按钮,返回9

mbYesToAll

YesToAll按钮,返回10

也可以使用按钮常量,按钮常量的取值:

取值

说明

mbYesNoCancel

Yes、No、Cancel三个按钮

mbOkCancel

Ok、Cancel两个按钮

mbAbortRetryIgnore

Abort、Retry、Ignore三个按钮

HelpCtx指定当用户单击Help按钮或按下F1时,显示的帮助主题。

该函数根据用户单击的按钮返回相应的值。

4.MessageDlgPos函数

可以在屏幕指定位置显示对话框,语法格式:

<变量> := MessageDlg(<信息内容>, <类型>, <按钮数组>, HelpCtx, x, y);

x, y 表示显示的坐标位置。

5.CreateMessageDialog函数

该函数用于创建一个信息框窗体,语法格式:

<变量> := CreateMessageDialog(<信息内容>, <类型>, <按钮数组>);

该函数返回一个TForm类型的对话框,而且并不直接显示出来,在需要的时候,可以使用窗体的ShowModal方法弹出。

6.InputBox函数

显示一个接收用户输入的对话框,并返回用户输入的信息。语法格式:

<变量> := InputBox(<对话框标题>, <信息内容>, <默认内容>);

7.InputQuery函数

语法格式:

<变量> := InputBox(<对话框标题>, <信息内容>, <字符串变量>);

在该函数中,默认内容存在字符串变量中,当用户单击OK按钮,输入框中的文本将赋值到字符串变量,并返回True,若用户单击Cancel按钮,字符串变量中内容保持不变,并返回False。

  • 白头发怎么治疗能变黑发(白头发是哪些原因导致的)
  • 2024-11-22白头发是哪些原因导致的英国皮肤科医生进行了一系列实验,发现到50岁时,世界上50%的人口至少有50%有白发此外,白皮肤的人的头发在30岁以后开始变白,亚洲人的头发在40岁左右开始变白,而深色皮肤的人的头发在40岁以后开始变。
  • 炖羊肉的时候放冷水还是热水呢(天冷煮羊肉时牢记)
  • 2024-11-22天冷煮羊肉时牢记朋友们大家好,马上就要过年了,今天就让我来给你们分享一道羊肉汤的做法,如何?寒冷的冬季,能来上一碗热腾腾的羊汤,可是非常美味的哦但是如何才能把羊肉煮得汤鲜味美,这就很讲究技巧了,因为大多数人做出来的羊。
  • 汽车密封条大全(带你走近汽车密封条)
  • 2024-11-22带你走近汽车密封条汽车密封条是车身上重要的密封件,主要制作材料是聚氯乙烯(PVC)、乙丙烯橡胶(EPDM)、合成橡胶改性聚丙烯(PP-EPDM)等,通过挤压成型或注射成型等方法制成主要应用在车门门框、车窗、发动机盖和行。
  • 文体旅教融合思路(展现新作为迈出新步)
  • 2024-11-22展现新作为迈出新步近日,光明网与思享无限携手推出“奋进新时代”大型系列直播活动,呈现新时代发展的壮丽交响曲依托于第十三届中国艺术节,优秀文艺作品《北魏长歌》《李大钊》《谷文昌》《海峡海峡》《掀起你的盖头来》在秀色直播间。
  • 唐人街探案2春节上映时间(唐人街探案2年初一全美公映)
  • 2024-11-22唐人街探案2年初一全美公映【侨报记者管黎明2月14日纽约报道】由陈思诚编剧、执导的喜剧探案系列电影《唐人街探案2》即将于大年初一(2月16日)在中美两地同步上映,而电影的北美海外发行权首次交由好莱坞八大影业之一的华纳兄弟影业,。
  • 真三国无双4武器怎么来的(如何获得武器)
  • 2024-11-22如何获得武器拿4级武器必须要在特定的关卡完成特殊的条件,当条件达成后就会有贵重品报告,此时察看情报履历,把情报信息滚动到贵重品报告那一栏,然后地图上会有个相应的黄色点,那个就是4级武器的地点,找到后挑破红木箱拿到。
  • 历史上真实的杨家将是怎样的(历史上真的有杨家将吗)
  • 2024-11-22历史上真的有杨家将吗1959年5月25日,时年六十五岁的戏曲大师梅兰芳在北京人民剧场唱出"非是我临国难袖手不问,见帅印又勾起多少前情杨家将舍身忘家把社稷定,凯歌还人受恩宠我添新坟庆升平朝堂内群小争进,烽烟起却又把。
  • 基准刑是什么意思(大家可以理解一下)
  • 2024-11-22大家可以理解一下法定的量刑幅度基准刑,刑事术语,是在不考虑各种法定和酌定量刑情节的前提下,根据基本犯罪事实的既遂状态所应判处的刑罚基准刑是一种刑罚首先,我们要明确一个概念,在确定量刑起点后,再确定基准刑,最后确定最终。
  • 3.16碎片商店:30号碎片商店突变
  • 2024-11-223.16碎片商店:30号碎片商店突变可乐要加冰,乔妹在你心,大家好我是小乔妹,每天为您分享有趣的王者荣耀新皮肤、新版本,最新攻略等文章内容王者荣耀近期正式服当中也是上线了一批新皮肤和新活动到正式服当中,新皮肤就是高品质的限定传说皮肤橘右。
  • 7万到16万的宝骏530(最低仅需7万元就能买到)
  • 2024-11-22最低仅需7万元就能买到宝骏汽车走的是亲民路线,旗下车型大多都比较实惠,像宝骏530这款紧凑级SUV,最低仅需7.58万元,那么这么实惠的一款车型究竟值不值得买呢?宝骏530是一款紧凑级SUV车型,是宝骏家族里的第三款SUV。
  • 娜扎剧照归还世界给你名场面(归还世界给你热播)
  • 2024-11-22归还世界给你热播提到娜扎,就不得不提最近热播的电视剧《归还世界给你》这部剧从开播起,就备受关注,虽然很多网友都吐槽杨烁饰演的角色有点油腻,但娜扎饰演的女主,因为靓丽动人、冷静睿智,所以圈了不少的粉丝而且娜扎在里面饰演。
  • 松冈原创(第三期--松冈身边的小伙伴)
  • 2024-11-22第三期--松冈身边的小伙伴神的师妹--大西沙织大西的出身地为千叶县(这个地名有趣,神的妈妈在千叶县就是黑社会的千金大小姐,这里可以脑洞开一波)大西是独生女,家族里连堂表兄姐弟妹都没有,妈妈的弟弟已成婚但尚未有子女(这才是孤独之。