已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 常用基本控件,Delphi程序界面的设计主要有控件组合而成,本章主要介绍基本控件。 3.1 与输入/输出有关的控件 3.2 使用对话框函数与对话框过程 3.3 使用焦点 3.4 用于分组的控件 3.5 按钮类控件 3.6 列表框与组合框 3.7 使用计时器控件,3.1 与输入输出有关的控件,在标准(Standard)组件板中,Delphi提供了最为基本的输入输出控件:标签(Label)控件、编辑框(Edit)控件以及进行多行输入的备注框(Memo)控件。 3.1.1 Label控件 3.1.2 Edit控件 3.1.3 Memo控件 3.1.4 MaskEdit控件,3.1.1 Label控件,标签(Label)是Delphi中最常用的输出文本信息的工具。与早期Pascal语言中的Write语句相比,标签更加灵活与方便。 1. 常用属性 标签在Delphi中用Tlabel类处理,其主要属性见表3-1。,Caption:设定标签中显示的文字 AutoSize:为True,标签的长度随文字的长度而改变 Transparent:为True,是透明标签,会显示背景颜色 Alignment:指定文本在标签矩形框内的水平对齐方式,taLeftJustify(左对齐),taCenter(居中), taRightJustify(右对齐),Layout:指定文本在标签矩形框内的垂直对齐方式,tlTop(向左对齐),tlCenter(居中), tlButton(向下对齐) WordWrap:为True,文本到达矩形框右边界时自动折返;为False,文本太长时会截断,可将标签组件的焦点转移给Form上的另一个对象,方法是设置标签组件的FocusControl属性。在值段中,选用与它关联对象的对象名。然后在标签中设置热键,即在Caption属性值段中输入含有“&”的字串,紧接“&”之后的字母称为热键字母,当用户使用“Alt+热键字母”时,将焦点选中它所指向的对象,2. 使用标签 Label控件显示的文本用户不能直接修改。有些没有自己的标题(Caption)属性的控件(如Edit等)可以用Label标识。在Label中显示的文本是由Caption属性控制的,该属性可以在设计时通过“属性”窗口设置或在运行时用代码赋值。,3.1.2 Edit控件,编辑框(Edit)是一种通用控件,既可以输入文本,又可以显示文本,是应用程序中最常用的控件之一。 1. 常用属性 编辑框在Delphi中用TEdit类处理,其常用属性见表3-3。,Readonly:决定编辑框内的文本是否可以被编辑。为True时,只能显示文本,不能输入和更改文本 BorderStyle:设置编辑框的边框类型:bsSingle,单线边框;bsNone,无边框 AutoSelect:当组件获得焦点时,是否自动选中所有的文本 Enable:为False,编辑框不响应任何事件 PasswordChar:指定一个字符来代替显示用户输入的字符,在用户输入密码时常用 MaxLength:编辑框内可输入文字的最大长度。0表示没有长度限制,默认值为0,编辑框组件的常用方法,编辑框组件的常用事件 : OnChange:当编辑框组件中的文本发生改变时触发此事件。 OnKeyPress:当编辑框接收到键盘字符时触发。,2. 使用编辑框 编辑框中显示的文本是受Text属性控制的。Text属性可以用三种方式设置:设计时在“属性”窗口进行、运行时通过代码设置或在运行时由用户输入。通过读Text属性能在运行时检索编辑框的当前内容。,【例3-2】输入球体的半径,然后计算并输出球体的体积和表面积(如图3-4)。,图3-4 计算球的体积和表面积,3.1.3 Memo控件,多行编辑框组件Memo与Edit组件很相像,都是提供给用户在程序中输入数据或显示文字用的对象。与编辑框组件不同的是,多行编辑框组件可以显示和编辑多行文本,而编辑框组件只能显示和编辑一行文本。多行编辑框组件的属性和方法与编辑框组件有很多相同之处,如Text、MaxLength、ReadOnly等属性。,(1)Memo组件的Lines属性,Lines属性设置和显示在多行编辑框组件内的文本。在对象监视器窗口单击Line属性旁边的“.”按钮,打开编辑器窗口,在空白区域可以输入多行文本。区域的上方显示输入文本的行数。 Text与Lines都用来存取数据,Text存放Memo对象中全部的输入数据,而Linesi存放第i+1行的字符串。例如:设置第5行文本值为“Delphi程序设计” 程序代码可以写成: Memo1.Lines4 := Delphi程序设计;。,Lines常用的属性和方法,Strings属性:指定组件每一行文本的内容 Memo1.Lines.Strings0 :=第一行; 等效于Memo1.Lines0 :=第一行; Add方法:在组件的最后添加一行文本 Memo1.Lines.Add(最后一行下面加一行文字); Insert方法:在指定行下方插入一行文本 Memo1.Lines.Insert(2,第三行处插入一行); Delete方法:删除组件内指定行的文本 Memol.Lines.Delete(2); / 删除第三行,SaveToFile:将文本保存到文件 Memo1.Lines.SaveToFile (C:tempa.txt); LoadFromFile:读取文件内容到Memo组件中 Memo1.Lines.LoadFromFile (C:tempa.txt); Clear:清除组件内的所有文本 Memo1.Lines.clear;,(2)Memo组件的其他常用属性,ScrollBar:设置是否显示滚动条。有四个值:ssBoth,显示水平和垂直滚动条;ssHorizontal,显示水平滚动条;ssVertical,显示垂直滚动条;ssNone,不加滚动条。 WantReturn:设置在组件内部能否使用回车键,为True表示可以使用回车键。 WantTab:设置在组件内按Tab键是否起到移位作用,可取True和False两个值,【例3-3】可以在备注框中直接输入多行文本,也可以先在编辑框中输入文本,然后将之添加到备注框中,如程序所示。,3.1.4 MaskEdit控件,掩码编辑框(MaskEdit)控件属于“附加(Additional)组件板”。MaskEdit控件是格式化的编辑框,它限制用户在所定义的位置输入要求输入的符号。 1. 常用属性 MaskEdit控件在Delphi中用TMaskEdit类处理,TMaskEdit类也是TEdit类的子类,因此,TEdit类所具有的属性、事件和方法在TMaskEdit类中都有。另外,TMaskEdit类还增加了一些新的属性,掩码字符串EditMask属性分为三个部分,用分号分隔。第一部分是掩码字符串的主要部分,它确定了数据的格式,其中所用到的特殊字符及其意义参见表3-10;第二部分决定是否将掩码中的字符串作为数据的一部分,0表示不作为数据的一部分,1表示作为数据的一部分,它将影响Text属性中的值;第三部分指出在掩码中用来代表未输入数据的字符。,2. 使用掩码编辑框 在设计阶段,可以通过Delphi的Input Mask Editor对话框来设置EditMask属性。可以直接输入掩码字符串,也可以选择一个样本掩码字符串。Delphi提供了电话号码、日期、时间以及其他样本掩码字符串供选择使用 【例3-4】使用掩码编辑框输入个人数据,如程序所示。,3.2 使用对话框函数与对话框过程,对话框是用户与应用程序之间交换信息的最佳途径之一。使用对话框函数或过程可以得到Delphi的内部对话框,这种方法具有操作简单及快速的特点。Delphi提供的内部对话框有两种: (1) 信息对话框使用过程ShowMessage、ShowMessageFmt、函数MessageDlg、MessageDlgPos、CreateMessageDialog。 (2) 输入对话框使用函数InputBox、InputQuery。,3.2.1 ShowMessage和ShowMessageFmt过程,1. ShowMessage过程 ShowMessage过程显示一个最简单的对话框,其语法格式为: ShowMessage(信息内容);,2. ShowMessageFmt过程 ShowMessageFmt过程的语法格式为: ShowMessageFmt (信息内容,参数组); showmessagefmt(%s已进球%d个!, 公牛队, 11);,3.2.2 MessageDlg与MessageDlgPos函数,MessageDlg与MessageDlgPos函数可以显示一个信息对话框,并等待用户的响应。 1. MessageDlg函数 调用MessageDlg函数,可以在屏幕的中心处显示信息对话框,其语法格式为: 变量= MessageDlg(信息内容,类型,按钮组, HelpCtx);,2. MessageDlgPos函数 调用MessageDlgPos函数,可以在屏幕的指定位置显示信息对话框,其语法格式为: 变量= MessageDlgPos(信息内容,类型,按钮组,HelpCtx, X, Y); 说明:MessageDlgPos函数只比MessageDlg函数多一项功能,即它可以指定对话框的显示位置坐标:X, Y。,3.2.3 CreateMessageDialog函数,与上述函数与过程不同,CreateMessageDialog函数生成一个信息框窗体,可以在程序中多次使用ShowModal方法调用。其语法格式为: 变量= CreateMessageDialog(信息内容,类型,按钮组);,3.2.4 InputBox与InputQuery函数,InputBox与InputQuery函数可以显示一个供用户输入的对话框。 1. InputBox函数 InputBox函数显示一个能接受用户输入的对话框,并返回用户输入的信息。【例3-6】华氏温度和摄氏温度相互转换的程序。利用对话框输入温度。,2. InputQuery函数 如果希望对单击Cancel按钮(退出事件)另作处理,可以选用InputQuery函数。该函数与InputBox函数相似,只是返回值是一个布尔值。其语法格式为: 变量= InputQuery(对话框标题,信息内容,字符串变量),3.3 使用焦点,焦点(Focus)就是光标,当对象具有“焦点”时才能响应用户的输入,因此也是对象接收用户鼠标单击或键盘输入的能力。在Windows环境中,在同一时间只有一个窗体或控件具有这种能力。具有焦点的对象通常会以突出显示标题或标题栏来表示。,与焦点相关的控件属性TabOrder、Tabstop.,可以用SetFocus方法在代码中设置焦点。编写窗体的OnActivate事件代码,其中调用SetFocus方法,使得程序开始时光标(焦点)位于编辑框Edit1中: procedure TForm1.FormActivate(Sender: TObject); begin edit1.SetFocus ; end;,在程序运行的时候,用户可以按下列方法改变焦点: (1) 用鼠标单击对象。 (2) 按Tab键或按Shift+Tab键在当前窗体的各对象之间巡回移动焦点。 (3) 按热键选择对象。,3.4 用于分组的控件,面板(Panel)与组框(GroupBox)控件用于对其他控件进行分组。它们都属于“容器”型控件,即可以在其中包含其他的控件。所包含的控件称为是容器控件的“子控件”,而容器控件则是其子控件的“父控件”。 当父控件的位置、可视性(Visible)以及有效性(Enabled)属性发生改变时,其中的子控件也发生同样的变化。,3.4.1 Panel控件,Panel组件内,起分组作用 。另外,Panel组 件提供了优化视觉效果的属性,因此Panel组件也 常作为某些组件的背景,使程序界面更协调、优美。 面板组件Panel还常用于制作信息栏或状态栏。,面板组件Panel的常用属性,Align:固定Panel的位置:alBotton,固定在父组件下方;alCient,覆盖父组件的全部;alLeft,固定在父组件左方;alNone,位置没有限制;alRight,固定在父组件右方;altop,固定在父组件上方 BevelInner:确定Panel内层是凸出还是凹下:bvLowered,内层凹下;bvNone,内层无凹凸;bvRaised,内层凸出 BevelOuter:确定Panel外层是凸出还是凹下:bvLowered,外层凹下;bvNone,外层无凹凸;bvRaised,外层凸出,BevelWidth:确定Panel内层或外层边界线的粗细,数值越大界线越粗 BorderStyle:确定Panel是否有外框。 BorderWidth:确定Panel外层部分的宽度,数值越大外层越宽,3.4.2 GroupBox控件,组框(GroupBox)是一个带有标题的类似面板的控件。作为容器控件,它可以为一组相关的控件提供分组,并使这些控件在组标题下显得更有条理;作为分组控件,它可以管理其中的相关控件,使之更好地协调工作。,3.5 按钮类控件,在Windows编程中,按钮的使用几乎是必不可少的。Delphi中的按钮类控件包括:基本按钮Button、位图按钮BitBtn、复选框CheckBox、选项按钮RadioButton等。,3.5.1 Button控件,(1) Button按钮的常用属性 Caption:按钮上显示的文本 Default:设定按钮是否为默认按钮。默认按钮在打开窗体或对话框时首先取得焦点,此时按下Enter键,将执行默认按钮的OnClick事件处理代码。虽然可将多个Button对象指定为默认按钮,但只有Tab次序最前的Button对象才是真正的默认按钮 Cancel:设定按钮是否为取消按钮,取消按钮的功能与默认按钮相同,但它是针对Esc键设计的。当用户按下Esc键,被设为取消按钮的OnClick事件处理就会被执行,ModalResult 属性取值见P72 注意: 当button被置于模式窗体时, ModalResult才有意义。 当按钮按下模式窗体自动关闭,并且ModalResult属性值会作为ShowModal函数的结果返回。,(2)Button按钮的常用事件,Button按钮常用的响应事件有:OnClick、OnDblClick、OnMouseMove、OnMouseUp、OnMouseDown等。OnClick及OnDblClick处理事件是最常用的。 当用户用鼠标在Button对象上单击一下,或是当焦点在Button对象上时按下Enter键,触发OnClick事件处理。因此,可以把单击Button对象后要执行的程序放在这个事件处理中。,3.5.2 BitBtn控件,BitBtn位图按钮组件 位图按钮与基本按钮的作用相同。基本按钮上只能显示文字,而位图按钮上不仅可以显示文字,还可以显示位图,使界面更加美观。 BitBtn控件位于Additional组件板中 BitBtn在TbitBtn类处理中。,BitBtn组件的常用属性,Caption:位图按钮上显示的文字 Kind:确定位图图形的种类,可取11个值。当为bkCustoms时, 位图图形由Glyph属性确定。取另外10个值,由系统规定按钮的图形和文字(见书P73) Glyph:确定位图图形文件(*.bmp) Spacing:确定按钮上位图与文字的像素个数。为-1时,文字、位图、按钮成等距离 Margin:确定位图与按钮边界之间的像素个数,默认值-1表示位图位于按钮的正中。,Layout:位图按钮上文字和图形的布局。为blGlyphLeft,图像在文字的左边;为blGlyphRight,图像在文字的右边;为blGlyphTop,图像在文字的上面;为blGlyphBottom,图像在文字的下面,3.5.3 CheckBox控件,复选框有一小方框,旁边带有文本说明,一般具有选中和未选中两种状态,鼠标单击复选框可以在这两种状态之间切换。选中复选框时,小方框内有标记。 复选框组件通常由多个复选框组件形成一组,在这一组中用户可同时选中多个组件,选项彼此之间是不具有“互斥性”的,不会影响其他选项的行为,适用于要进行多项选择的情况。组件可以识别OnClick事件。,复选框组件的常用属性,State:指定三种状态:cbChecked,选中;cbUnChecked,未选中;cbGrayed,不确定 Checked:为True,则选中,小方框内有标记;为False则未选中 Caption:设置复选框旁边的说明文字,3.5.4 RadioButton控件,单选按钮(RadioButton)又称选项按钮,一般总是作为一个组(单选按钮组)的组成部分工作的。 单选按钮组是一组相互排斥的单选按钮,选择一个单选按钮就会立即清除该组中的其他按钮。 1. 使用单选按钮组 在窗体中定义的若干单选按钮自动组成一个单选按钮组。,2. 分组使用单选按钮 对于一个窗体中的多个单选按钮,系统自动将其组成一个单选组。若需要使用多组按钮组时,必须使用分组控件(如Panel、GroupBox)将其分别成组。这样,就可以在每个组中进行选择。 按Tab键可以在组以及其他控件之间移动焦点。 【例3-13】修改例3-11,利用单选组输入性别与民族。,3.5.5 RadioGroup控件,按钮组(RadioGroup)控件巧妙地将一个GroupBox与一组RadioButton组合在一起,可以使用统一的索引号(ItemIndex),为编程提供了方便。,Caption:设置显示在组件上方的文字 Columns:设置组件的列数,最多可有16个 ItemIndex:设置单选分组框中被选中的单选按钮的索引值,从0开始 Item:设置单选分组框中单选按钮的标题文字,每行文本代表一个选项。,单选按钮组的实现通常用三种方法:,利用GroupBox分组组件+ RadioButton单选按钮组件 利用Panel面板组件+ RadioButton单选按钮组件 利用RadioGroup单选分组框组件。,3.6 列表框与组合框,在输入/输出控件中,曾经使用备注框(Memo)来处理多行文本的输入与输出,不过对多行数据更为方便的操作是使用列表框(ListBox)与组合框(ComboBox)。列表框和组合框为用户提供了多项的选择和信息。二者的不同在于:组合框不仅提供选项供用户选择,而且还允许用户通过键盘输入数据,相当于编辑框EditBox与列表框ListBox的结合。,3.6.1 列表框,列表框中可以显示出所有可能的数据供用户选择,用户可以选择其中的一项或多项,因此用户输入数据可以不必使用键盘。列表框组件常用于选项较多的情况。,列表框组件的常用属性,Items:列表框内的选项数据。可以在设计阶段单击属性右边的“.”按钮,在编辑窗口输入选项,一行对应一个选项。程序运行时,可以利用Items对象提供的方法:Add添加一个选项,Delete删除一个选项,Clear删除所有选项,Insert插入一个选项,Move移动选项位置,Exchange交换两个选项的位置。 Count:列表框内的选项数据的项数 ItemsIndex:选项在Items数组中的编号,从0开始至Count-1,属性指出在列表框中被选中的那个项目的索引号,Columns:列表框的列数 MultiSelect:是否可以选择多项 SelCount:被选中项目的数量 Selected:设置或返回某选项是否被选中 Sorted:决定列表框的选项是否排序,组合框组把Edit编辑框和ListBox列表框两者功能合二为一,用户可以直接输入内容,也可以单击向下的箭头后拉出一个列表框,从中选择某个列表项。 在组合框中选项数据的新增、删除、移动、选取等等,也是利用Items对象的Add、Delete、Clear、Insert、Exchange、Move等方法完成。,3.6.2 组合框,组合框组件的常用属性,Items:组合框下拉列表的选项数据。可以在设计阶段单击属性右边的“.”按钮,在编辑窗口输入选项,一行对应一个选项。程序运行时,可以利用Items对象提供的方法:Add添加一个选项,Delete删除一个选项,Clear删除所有选项,Insert插入一个选项,Move移动选项位置,Exchange交换两个选项的位置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026生物医药行业市场竞争格局分析研究报告未来发展趋势规划
- 2026中国新材料产业基地集群效应与招商引资策略报告
- 2026中国智能建筑施工行业市场深度调研及建筑科技与投资布局报告
- 2026中国游戏市场竞争现状分析投资评估规划研究市场分析报告
- 2026汽车轮毂设计与制造技术与市场预测及资本投入规划报告
- 2026中国医疗器械国际贸易市场需求技术壁垒与投资发展方向
- 2026农业生鲜产品市场供需现状及品牌营销策略研究报告
- 2026中国纳米传感器生物医学应用技术突破与伦理边界探讨报告
- 2026中国智能机器人手术辅助系统制造行业市场发展现状及前景规划分析报告
- 2026中国集成电路测试探针卡接触电阻优化与使用寿命评估报告
- 2023年美国肝病学会实践指导:静脉曲张出血介入治疗摘要
- 中国融通资源开发集团有限公司面向退役军人专项招聘100人笔试参考题库及答案详解
- 2026年港口危险货物安全管理人员考试试题题库含答案
- 中国老视矫正多专科管理专家共识(2026年)
- 污水处理PPP项目招标文件
- SYT 6378-2021 油水井取套回接工艺作法-PDF解密
- 监理抽检记录表格
- JJG 4-2015钢卷尺行业标准
- YY 0469-2023医用外科口罩
- 山西兰花科技创业股份有限公司大阳煤矿分公司煤炭资源开发利用、地质环境保护与土地复垦方案
- 中国越剧唱腔知到章节答案智慧树2023年浙江艺术职业学院
评论
0/150
提交评论