《Delphi程序设计及实验指导》电子教案-第4章.ppt
《《Delphi程序设计及实验指导》电子教案-第4章.ppt》由会员分享,可在线阅读,更多相关《《Delphi程序设计及实验指导》电子教案-第4章.ppt(42页珍藏版)》请在三一办公上搜索。
1、Delphi 7 程序设计与实验指导,张景安 赵慧勤 张叶娥 傅文博编 著,第四章 常用组件,在使用Delphi开发应用程序中,广泛地使用到组件。可视组件库(Visual Component Library,简称VCL)是Delphi中最重要的部分,通过VCL可以在窗体中方便地构建与用户交互的界面,其中大部分组件显示在组件面板(Components Palette)上。除了少数例外,所有的组件都是TComponent类的子类。另外,用户还可以创建自己定义的特殊功能组件。本章主要介绍Delphi 7中常用组件的基本功能及主要属性、方法等内容。,4.1 组件概述,4.1.1 组件分类 1可视化组件
2、(Visual Component)可视化组件在程序运行期间用户是可以看到的,也称为控件(Contro1)。控件又有两种不同的类型,即基于窗口的和基于图形的。基于窗口的控件(即窗口控件)是指基于系统窗口的可视组件,具有窗口句柄,可以作为输人焦点并可以含有其他控件,如Edit组件。图形控件没有窗口句柄,不能作为输入焦点,也不能含有其他控件,如Label组件。2非可视化组件(Nonvisual Component)非可视化组件是指在程序运行期间用户是不可以看到的,是从TComponent但不是从TControl派生出来的子类。,4.1 组件概述,4.1.2 组件的常用属性及事件在Delphi中,每
3、一个组件都具有特定的属性、事件和方法。组件的属性是组件特性的描述,包括组件的外观特性(如位置、尺寸、外形、字体、可视性)和非可视化的特性,组件常见的基本属性见表4-1。组件的事件是对组件所做的某个动作或系统的某些行为(如按下鼠标、双击鼠标、窗体装入等)的反应。每个组件都提供满足用户的各类事件处理器,当发生特殊事件时,应用程序将执行事件处理器中的代码。组件的常用事件及触发条件见表4-2。组件的方法是指该类或对象类型实例的函数或过程,每一类组件都有自己的方法,以实现各种功能。,4.1 组件概述,表4-1 组件的常见基本属性,4.1 组件概述,表4-2 组件的常用事件及触发条件,4.2 文本输入类组
4、件,4.2.1 TLabel组件TLabel标签组件位于组件面板的Standard选项卡上(如图4-1),可以显示一个只读的字符串。通常利用TLabel标签组件在窗体上显示静态文本,如显示提示信息;也可显示动态文本,如用TLabel显示不断变化的当前时间。1用途TLabel组件主要用来标识应用程序中的其他对象,最常见的用法是把标签放在其他组件的旁边,如放在文本框、Memo框及单选按钮等组件的左侧或上方。标签上的文字信息有助于用户操作,也可为用户提供信息。,图4-1 组件面板上的Standard选项卡,4.2 文本输入类组件,2主要属性和方法TLabel组件常用的属性见表4-1。下面介绍TLab
5、el组件的主要属性和方法。(1)A1ign属性:该属性决定TLabel组件的显示位置(使其位于窗口的某个部分)。(2)Alignment属性:该属性设置文字在水平方向的对齐方式。(3)AutoSize属性:该属性决定标签的大小是否和文字保持一致,其默认值为false,即标签的大小不随文字的大小而变化。(4)Layout属性:该属性设置文字在垂直方向的对齐方式。(5)TransParent属性:该属性决定标签是否透明显示,主要在图形操作时使用,如果将其设置为true,则可透过标签看到背景图。(6)WordWrap属性:该属性决定当Autosize属性为true时,文字超长时的显示方式。该属性为t
6、rue时,则文字在纵向方向扩展,以多行显示;为false时,则文字在横向方向扩展,以完全容纳文本内容。,4.2 文本输入类组件,4.2.2 TEdit组件TEdit文本框组件位于组件面板的Standard选项卡上(如图4-1),可以显示、编辑单独的一行文本。1用途TEdit组件提供了一个编辑区域,用户可在区域中输入单行信息。TEdit不但允许用户在文本框中输入数据,也可以用来显示查询的数据及提示信息。2主要属性和方法(1)AutoSelect属性:该属性用来设置当TEdit组件获得输入焦点时,自动选中所有的文本。若它的值为true,则当Edit组件获得输入焦点时,自动选中所有的文本;若它的值为
7、false,则当Edit组件获得输入焦点时,不自动选中所有的文本。,4.2 文本输入类组件,(2)AutoSize属性:用于控制是否随字体的高度来改变编辑框的高度。当AutoSize设置为true时,编辑框的高度会自动适应输入文字的字体高度。但要注意,该属性只有当BorderStyle属性设置为bsSingle时才有效。(3)CharCase属性:该属性用于强制组件中的文本全部为大写(或小写)字母。(4)Enabled属性:该属性决定文本框中的内容是否可以修改,其默认值为true,即文本框中的文本可以修改;当它的值为false时其中的文本不能修改。(5)Hint属性:该属性用来设置所显示的提示
8、信息。例如通过将该属性设置为“请输入职工姓名”,并将ShowHint属性设置为true,则在应用程序运行时当用户将鼠标移到文本框并停顿片刻后,将显示引号中的提示信息。,4.2 文本输入类组件,(6)IME属性:IME是输入法编辑器(Input Method Editor)的英文缩写,通过设置该属性可以在输入焦点定位在Edit组件上时,自动实现输入法的切换。设置ImeMode属性:如果要设置为中文输入法,可以将ImeMode属性设置为imChinese.设置ImeName属性:可以通过下拉组合框选择一个具体的输入法。(7)PasswordChar属性:将用户输入的所有字符以同一个字符显示,其默认
9、值是“#0”,表示编辑框直接显示用户输入的字符;如果将其设置为“*”,则不论用户输入什么,编辑框中都只显示“*”号,一般在键入密码时可以这样设置。(8)Clear方法:该方法删除文本框中的所有文本。(9)ClearSelect方法:该方法删除文本框中被选择的文本。如果文本框中没有被选择的文本,则不删除任何内容。,4.2 文本输入类组件,(10)CopyToClipboard方法:该方法将文本框中已选择的文本拷贝到剪贴板上,并取代原来剪贴板中的所有内容。如果用户未在文本框中选择任何文本,该方法的执行将不删除原来剪贴板的所有内容。(11)CutToClipboard方法:该方法将文本框中已选择的文
10、本拷贝到剪贴板上,并取代原来剪贴板中的所有内容,然后删除在文本框中被选中的内容。(12)PasteFromClipboard方法:该方法将剪贴板上的内容拷贝到文本框中,并插入到文本框中光标所在的当前位置。(13)SelectAll方法:该方法选择文本框中的所有文本。Edit组件最常用的事件(也是默认事件)为OnChange,一旦Edit组件中的文本内容发生了改变,就会触发OnChange事件。,4.2 文本输入类组件,【例4-1】设计用户登录验证的窗体,用来接收用户输入的用户名和口令,单击“确定”按钮进行验证,根据输入是否正确显示相应的提示信息。(1)创建“人事管理”文件夹,用来保存该应用程序
11、代码。(2)创建一个工程RsglPrj.dpr,登录窗体设计界面如图4-2所示,包含六个组件,即两个Label组件用于显示提示信息;两个TEdit组件(UseName用于输入用户名,PassWord用于输入用户口令);二个TButton组件。(3)组件的属性设置。登录窗体所包含的各组件的主要属性设置见书表4-7。(4)编写DengLu窗体相应的程序代码。,4.2 文本输入类组件,图4-2 DengLu窗体的界面(5)按F9键运行程序。在用户名中输入“yonghu”,在口令中输入正确的口令“12345”,单击“确定”按钮,即可运行。(6)保存程序。选择FileSave All选项,出现一个Sav
12、e As对话框,用户选择保存位置为“人事管理”文件夹,使用DengLuUnit.pas对单元文件进行命名,使用RsglPrj.dpr对工程文件进行命名。,4.2 文本输入类组件,4.2.3 TMemo组件TMemo备注框组件位于组件面板的Standard选项卡上(如图4-1),可以显示、编辑多行文本。1用途TMemo组件为用户提供了一种处理多行文本的方法,还可用来快速阅读文件中的数据。尽管TLabel、TEdit和TMemo组件有许多相似之处,但它们的使用场合却有所不同。如果只显示用户不能修改的信息,可采用标签;如果用户只处理单行信息,则使用TEdit组件;如果用户要处理多行文本,那么只能采用
13、TMemo组件。,4.2 文本输入类组件,2主要属性TMemo组件的很多属性(如MaxLength、ReadOnly和Text等)和TEdit组件的属性类似,相同属性的含义不再赘述。以下是TMemo组件的特殊属性。(1)Lines属性:返回TMemo组件中文本的行数。(2)ScrollBars属性:该属性用来设置TMemo组件是否有滚动条。(3)WantTabs属性:该属性用来设置是否可以使用Tab键来进行文本编辑。其值设置为true,这时可以用Tab键来使TMemo组件获得输入焦点,但不能用Tab键从TMemo组件切换到其他组件,默认值为false。,4.2 文本输入类组件,4.2.4 TR
14、ichEdit组件TRichEdit组件和TMemo组件几乎完全相同,但是在TRichEdit组件中的文字可以有多种字体、多种颜色。TRichEdit组件位于组件面板的Win32选项卡上,如图4-3所示。,图4-4 组件面板的Win32选项卡,TRichEdit组件可以编辑多行的文本,它比TMemo的功能更强大,能够对字体格式化和段落格式化,也能插入OLE文档,支持鼠标拖放,还可以搜索和打印。它是一个相当完美的编辑器,保存的文件格式为RTF。但是TRichEdit组件没有提供完整的用户界面,诸如打开、保存、打印、剪贴、拷贝、搜索等操作,需要通过编程,配合其他组件完成。TRichEdit主要属性
15、、事件和方法与TEdit基本相似,在功能上TRichEdit更加丰富。,4.3 按钮类组件,Delphi 7为用户提供了三种按钮组件,也是平时在Windows应用程序时经常用到的按钮:普通按钮(TButton)、位图按钮(TBitBtn)和快捷按钮(TSpeedButton)。下面介绍与这些按钮有关的组件。4.3.1 TButton组件TButton命令按钮组件位于组件面板的Standard选项卡上,如图4-1所示。1用途TButton组件是为用户提供用来选择执行命令的组件,通常称为命令按钮。按钮在Windows程序中应用非常广泛,它可以放在应用程序的任何地方,触发之后执行特定的操作。,4.3
16、 按钮类组件,2主要属性(1)Cancel属性:该属性决定按钮是否为Cancel按钮。当设置为true时,为Cancel按钮,即当用户按Esc键时,将执行按钮的OnClick事件处理程序。当窗体中有多个Cancel按钮时,则只调用Tab Order属性最小按钮的OnClick事件。(2)Caption属性:该属性用来让用户识别组件,输入属性值显示在组件表面。(3)Default属性:该属性决定按钮是否为默认按钮。如果将其设置为true,则按钮为默认按钮,此时当用户按Enter键时,将执行按钮的OnClick事件处理程序。(4)Enabled属性:该属性决定按钮是否对鼠标、键盘和计时器事件做出响
17、应。(5)ModalResult属性:该属性确定按钮是否以及如何关闭其父窗体。(6)Name属性:该属性是组件的名称,与Caption不同,它不显示在组件表面,而是在应用程序代码中作为组件的名称。,4.3 按钮类组件,4.3.2 TBitBtn组件TBitBtn位图按钮组件位于组件面板的Additional选项卡上(如图4-4所示),为图形按钮组件。,图4-5 组件面板的Additional选项卡1用途TBitBtn组件与其他按钮一样,在对话框和窗体中广泛使用。该组件的作用和TButton组件相同,唯一的区别是可以在位图按钮上同时显示文本信息和位图。,4.3 按钮类组件,2主要属性(1)Gly
18、ph属性:该属性指定在用户选择的位图按钮表面设置图形。单击该属性右边的“”按钮,弹出装入位图文件的Picture Editor对话框(如图4-6),在其中单击Load按钮选择用户需要的位图,此时选择的位图将显示在对话框中,再单击OK按钮后,位图将显示在按钮上。(2)Kind属性:该属性决定位图按钮的种类,包括bkAbort、bkAll、bkCancel、bkClose、bkCustom、bkHelp、bkIgnore、bkNo、bkOK、bkRetry、bkRetry。(3)Layout属性:该属性决定位图在按钮上的显示位置,即位图可以显示在按钮的左边、右边、上边或下边。(4)Margin属性
19、:该属性确定位图按钮边沿和位图边沿之间的距离,单位为像素。该属性的默认值为-1,表示位图和文字都在按钮的中间显示,但相互不重叠。(5)NumGlyphs属性:当用户为位图按钮在Glyph属性中指定多个图像时,必须用该属性指定按钮要显示的图像,它的值可以是14之一,默认值为1。,4.3 按钮类组件,(6)Spacing属性:该属性确定位图按钮上图像和标题之间的间隔。该属性值可以是负数、0和正数,默认值为4。(7)Style属性:该属性决定位图按钮的外观,共有3种可能的值:bsAutoDetect、bsWin31和bsNew,即位图按钮采用Windows哪一种版本的风格。lbsAutoDetect
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi程序设计及实验指导 Delphi 程序设计 实验 指导 电子 教案
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6525831.html