Delphi课件第3章.ppt_第1页
Delphi课件第3章.ppt_第2页
Delphi课件第3章.ppt_第3页
Delphi课件第3章.ppt_第4页
Delphi课件第3章.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 可视化组件的应用,内容提要,窗体与组件 常用组件的使用,3.1 窗体与组件,在Windows环境中,人机交互主要是在一些窗体和对话框中进行的。在Delphi中,窗体指的就是窗口和对话框,进行可视化程序设计一般就是从窗体开始并在窗体中完成的。窗体本身就是一个组件,它与其他组件不同的是:窗体像一个可以放置东西的容器,可以根据任务的需要在其上放置各种各样的组件。窗体与组件的关系参见图3-1。,3.1.1 窗体与组件的关系,图3-1 窗体与组件,3.1.2 组件的公共属性和事件,不同的组件具有不同的属性、方法和事件,但有些属性和事件是公共的,也就是它们虽然出现在不同的组件中但含义和使用方法相同

2、。 1.常用的公共属性,(1) Action 属性。用来设置与菜单项相关的动作对象,可以通过动作列表编辑器来设置。 (2) Align 属性。用于决定组件在窗体或上一级组件中的位置和尺寸。 (3) Autosize 属性。用于决定组件是否随其所包含内容的大小而调整尺寸。 (4) Caption 属性。用来设置组件的标题。 (5) Color 属性。用来设置组件的颜色。,(6) Cursor 属性。 用于设定当鼠标的光标落入该组件的区域时鼠标光标的形状。 (7) Font 属性。 用于设置组件上所显示的文字的字体。 (8) Height 属性和Width属性。用于设置组件的高度和宽度。 (9)

3、Hint 属性和ShowHint 属性。 Hint属性用于设置鼠标在组件上停留是显示提示信息的内容;ShowHint属性用于指定鼠标在该组件上停留时是否显示提示信息。 (10) Left 属性和Top 属性。 指定该组件在窗体中的左上顶点的坐标值。,(11) Name 属性。这是每个组件都具有的属性,该属性用于指明组件对象的名字,通过组件对象的名字来使用组件。 (12) ParentColor 属性。 ParentFont 属性和ParentShowHint 属性。当这些属性值设置为Ture时,组件使用它的上一级组件的同一属性的设置植,这样可以使程序保持一致的风格。 (13) PopUpMen

4、u 属性。 用于指定当右击该组件时弹出时的弹出式菜单PopUpMenu的名字,此时这个弹出式菜单应该已经存在,PopUpMenu本身也是一个组件。 (14) Text属性 。 用于指定文本类组件显示的文本,类似于Caption属性。 (15) Visible属性。 决定组件是否可见。当设置为True时,在运行时可以看到该组件;设为False时运行时不可见。,.常用的公共事件, onClick事件。鼠标左键单击某组件时触发该事件。 onDblClick事件。鼠标左键双击某组件时触发该事件。 OnEnter事件和OnExit事件。当通过鼠标单击组件或Tab键跳转到组件上时,该组件获得焦点,此时该组

5、件的OnEnter事件被触发;该组件由焦点状态转为非焦点状态时将触发OnExit事件。 OnMouseDown事件、OnMouseMove事件和OnMouseUp事件 这是响应鼠标的一组事件。其中当鼠标在组件上被按下时触发OnMouseDown事件;当鼠标在组件的显示区域内移动时触发OnMouseMove事件;当释放了在组件区域内按下的鼠标键时触发OnMouseUp事件。这三个事件不仅可以判断鼠标按下的是左、中、右键中的哪一个键,还可以判断是否同时按下了Alt、Shift或Ctrl键。具体应用请看下面章节的组件介绍。, OnKeyDown事件、OnKeyUp事件和OnKePress事件 这是响

6、应键盘的一组事件。组件处于激活的焦点状态时,按下了键盘上的键时将触发OnKeyDown事件,返回的是按下键的键值,可以是复合键;释放一个按下的键时将触发OnKeyUp事件;键盘上的键一次完整地按下和释放操作将触发OnKeyPress事件。,3.2常用组件的使用,Delphi封装了大量的可视化组件,使程序员能够在拖拖放放中轻松地设计程序界面。Delphi中提供的【Standard】、【Additional】和【Win32】三个标签页放置基本组件。这些组件都是任何程序设计必不可少的。本节将详细介绍常用组件的使用方法。,3.2.1 Label组件,Label(标签)组件在Standard标签页中,主

7、要用于在窗体中显示提示信息,常与Edit组件一起使用,是显示文本的主要组件。其特殊属性有:,1. Autosize属性 该属性用来判断Label(标签)组件是否随Caption属性值自动调整大小。如果该属性值为True,则Label的长度随着Caption属性值自动调整大小;如果该属性值为False,则Label保持设计时定义的大小不变,此时,若标题太长,则只能显示部分内容。 2.Caption属性 该属性用来设置在标签上显示的文本。,3. Wordwrap该属性 该属性用于设置Caption属性的显示方式。缺省为False,表示标签上的标题(提示信息)不能自动换行;如果该属性为True,则标

8、签将在垂直方向变化大小,以使其与显示的文本相适应,而水平方向的大小不变。但若想使该属性起作用,还必须将Autosize属性设为True。 4. Layout该属性 该属性可以改变文本在标签中的位置。 5. Transparent该属性 该属性决定标签的背景是否透明。其值为True时,透明,即标签不会挡住它下面的组件。默认值为False。,3.2.2 Edit组件,Edit组件在Standard标签页中,也称编辑框组件是Windows程序中常用的组件,它主要用于输入单行文字。 Edit组件的常用属性有:,1.AutoSelect属性 该属性确定当编辑框获得输入焦点时,编辑框中的文字是否自动被选中

9、。 2. AutoSize属性 该属性确定编辑框是否随字体变化而自动变动尺寸,缺省为True。 3. BorderStyle属性 该属性确定Edit控件是否有边框。 4. CharCase属性 该属性设置文本框内字符的大小写,其值为:ecLowerCase,全部转换为小写;ecNormal,不转换;ecUpperCase,全部转换为大写。,5.HideSelection属性 该属性决定当输入焦点从Edit组件移走后,编辑框内原来被选中的文本是否依然保持选中状态。其设置为True,不保持;其值为False,保持。该属性的默认值为True。 6.MaxLength属性 该属性确定编辑框最多可以输入

10、的字符数,缺省值为0,表示可以输入任意多的字符;如果该属性不为0,只能向编辑框中输入小于或等于设定值的字符数。 7.Modified属性 该属性确定编辑框中的内容自建立以来或者Modified属性最后一次被设置为False之后是否被修改。 8. PasswordChar属性 该属性在一些编辑框组件如TMaskEdit、TDBEdit中都有。缺省时该属性为#0,即没有掩码。用户可以自己设置一个掩码,如*,则用户在编辑框中输入的字符都将以*字符显示,而隐藏真实的字符。,9.Text属性 该属性用于显示和保存编辑框中的内容。 10.ReadOnly属性 该属性确定程序运行时,用户是否可以改变编辑框中

11、的内容。若为True,表示编辑框是只读的,其内容不可以编辑修改。 11.SelLength属性 该属性可以返回在编辑框中被选中的文本的长度。 12.SelStart该属性 该属性确定在编辑框中被选中文本的起始位置(第一个字符的序号为0)。 13.SelText属性 该属性用来设置或指示选中的文本。,Edit组件的主要方法,Edit组件常用的几个事件有:OnChange、OnKeyPress、OnEnter事件。,Edit组件的常用事件,3.2.3 Memo组件,Memo组件在Standard标签页中,Memo组件为用户提供了一种处理多行文本的方法,还可用它快速地阅读文件中的数据,而且读取和保存

12、文本的最大长度可达255KB。 Memo组件的属性 Memo组件的属性、方法和事件与Edit组件大致相同。其特有的几个属性有: 1. Lines属性 按行处理文本。 2. ScrollBars属性 该属性用来设置备注框是否出现滚动条以及滚动条的种类。 3. WordWrap属性 该属性用来决定当输入的文本到达右边界时是否插入软回车,以便换到下一行再输入。,3.2.3 Memo组件,Memo组件的方法 使用剪贴板(Clipboard) Memo组件同Edit组件一样,也可使用CutToClipboard、CopyToClipboard和PastFromClipboar这三种方法,实现将Memo组

13、件中被选择文本剪切或复制到剪贴板上,以及将剪切板上的内容粘贴到Memo组件中。 将Memo中的选中文本剪切到剪贴板的语句如下: if Memo1.SelLength0 then Memo1.CutToClipboard;,2.文本的添加(Add方法) 利用Lines属性,可以增加、删除一行文本,也可以移动一行文本。下面的代码将文本添加到Memo中的最后一行: Memo1.Lines.Add(在Memo1的最后添加一行文本); 3. 文件的保存和装载(LoadFile方法、 SaveToFile方法) Memo1.Lines.LoadFile(Opendialog1.FileName) 可以将M

14、emo组件中的文本保存成文本文件,也可以将文本文件装载到Memo中。这需要配合使用SaveDialog组件和OpenDialog组件。将Memo中的文本保存为文本文件的语句为: if SaveDialog1.Execute then /打开保存 Memo1.Lines.SaveToFile(SaveDialog1.FileName); 以上语句先打开保存对话框,然后将Memo中的文本保存对话框到一个文件中,文件名为我们在SaveDialog中输入的文本。 在Memo中装载文本文件的语句为: if Opendialog1.Execute then Memol.Lines.LoadFile(Ope

15、ndialogl.FileName);,3.2.4 MaskEdit组件,MaskEdit组件在Additional标签页中,MaskEdit组件(也称掩码编辑框)是一种特殊的编辑框,它的主要属性是EditMask。使用它可以设计出许多复杂的输入格式。在选用MaskEdit之后,需要为它设计一个输入格式。 其格式输入符参见P99页表36。,MaskEdit组件输入格式符,3.2.5 RichEdit组件,RichEdit组件在Win32标签页中,RichEdit组件和Memo组件非常相似,但RichEdit组件功能更强大,能够对文字进行格式化,如设置字体、颜色等,可以插入OLE文档,支持鼠标拖

16、放,还可以对文本进行搜索和打印。一般用RichEdit组件制作文本编辑器。具体应用与例3-4类同请参阅例3-4的界面及代码部分。,3.2.6 ListBox组件,ListBox(列表框)组件在Standard标签页中,ListBox通常用来对一组信息进行列表。列表框和组合框(ComboBox)的功能类似,只不过组合框一次只能显示一条信息,要浏览全部信息,需要按下组合框旁边的三角按钮。在列表框中的项目列表是Items属性的值,可使用Add、Insert、Delete方法对列表框中的项目进行增加、插入和删除操作。 ListBox组件的主要属性有: 1. Canvas 该属性只有在列表框风格为自绘时

17、才有用,用于在列表框项目上绘制图形。 2. Colums 该属性用来控制列表框中的项目需显示成几列。默认是0,表示以单列显示。 3. Height 该属性决定列表框在垂直方向的高度。,3.2.6 ListBox组件,4. ItemIndex属性 该属性指出在列表框中被选中的哪个项目的索引号。 5. Items属性 该属性用来存放列表框中的列表项。 6. MultiSelect属性 该属性用来设置能否在列表框中选择多个列表项,即是否允许多选。 7. Selected属性 该属性用来测试某个列表项是否被选中 。 8. Stored属性 该属性决定是否自动地为用户进行排序。,3.2.6 ListBo

18、x组件,ListBox组件的常用方法 Clear方法:该方法清除在列表框中的所有项目。 Add方法:可在运行时使用该方法为列表框添加新项目。 Delete方法:可在运行时使用该方法删除列表框中的项目。 Insert方法:可在运行时使用该方法为列表框插入新项目。 ScreenToClient方法:该方法返回列表框在屏幕上的当前位置。 ClearSelection方法:该方法的作用是清除列表框中所有被选中的选项。 CopySelection方法:该方法用来把列表框中的所有选中的列表项复制到另一个列表框中。,ListBox组件的事件 OnDrawItem事件:当列表框中的内容重新显示时,该事件发生。

19、比如,当用户选择了列表框中的项目,系统需对选择的项目反白显示,此时就触发OnDrawItem事件。但是该事件仅当Style属性值为IbOwnerDrawFixed或者LbOwnerVariable时才会发生。 OnEnter事件:当ListBox组件成为当前列表框时,该事件发生。 OnMeasureItem事件:不管何时应用程序需重新显示在列表中的项目时,该事件发生。在事件发生后,它将测出需重画区域的大小参数传给OnDrawItem事件,该事件重新显示给定的区域。,3.2.7 ComboBox组件,ComboBox组件在Standard标签页中,称为组合框。它是设计Windows应用程序时使用

20、较多的组件。它汇集了列表框和编辑框的功能,使用户可从下拉列表中选择数据或者直接向组合框中输入数据。,ComboBox组件的属性 1. Style属性 该属性用来设置或返回组合框的风格。 2. Text属性 该属性用于设置或返回组合框中当前显示出来的文本值。 3. ItemIndex属性 该属性指定组合框中被选择的项目。 4. SelStart属性 该属性确定组合框中所选文本的开始位置。 5. DropDownCount属性 该属性控制组合框被下拉时弹出的项目条数。超出该属性规定的项目数时,自动出现垂直滚动条。 ComboBox组件的常用方法 ComboBox组件的常用方法与ListBox组件的

21、相同,其列表项也是由Items属性来控制。在程序中可以使用Add、Delete、Insert方法进行项目的添加、删除和插入操作等管理。,3.2.8 GroupBox组件,GroupBox组件又称为分组框组件,它在组件面板的Standard标签页中。在该组件里可以放置如RadioButton、CheckBox等组件。放进去的组件将会自动成为一组。通过它的Caption属性可以修改该组件的标题。,3.2.9 RadioGroup组件,在对象查看器中单击Items属性旁边的省略号,然后在弹出的【String List Editor】对话框中添加项,每添加一行就会在RadioGroup组件中产生一个标

22、题为添加项文本内容的RadioButton组件,添加完单击OK按钮。 RadioGroup组件的属性 1. Items属性 Items属性用于生成个单选按钮。 2.ItemIndex属性 ItemIndex属性用于表明单选按钮组中哪一项被选中了。若为(缺省值),表示没有被选中的项;若为0,表示第一项被选中;若为,表示第二项被选中;其他依次类推。,3.2.10 Button组件与BitBtn组件,Button组件(按钮)是Windows应用程序界面中最常用、最简单的组件之一。除此之外,Delphi还提供了一种位图按钮(BitBtn)。这种按钮的不同之处在于按钮上可以显示位图。 Button组件的

23、主要属性 1. Caption属性:标题属性。 2.Cancel属性 决定该按钮是否为取消按钮,默认值为False。 3.Default属性 决定该按钮是否为默认按钮,缺省值为False。 Button组件的常用事件 OnClick事件:单击事件,是TButton组件的最常用事件。,3.2.10 Button组件与BitBtn组件,BitBtn组件的主要属性 1. Glyph属性 为按钮指定一个位图文件,显示在按钮的表面。 2. Kind属性 决定位图按钮的种类。位图按钮使用最多的属性就是Kind。 BitBtn组件的常用事件 OnClick事件:单击事件,是TButton组件的最常用事件。,

24、3.2.11 SpeedButton组件,SpeedButton组件通常称为快捷按钮,在Additional标签页中。此组件与位图按钮非常相似,同样可以显示图像,它们的主要区别是:SpeedButton按钮一般只显示图像不显示文字,另外SpeedButton可以保持在单击时被选中的状态,该组件在设计工具栏时使用。,SpeedButton组件的特殊属性,1. AllowAllUp属性 该属性为True,则表示允许一组中的所有快捷按钮均为弹起状态。如果设置为False,则表示某组快捷按钮中至少有一个不能弹起。 2. Down属性 该属性用于设置按钮的状态,其值为True,表示按钮处于选中状态。默认

25、值为False。 3. Flat属性 该属性判断按钮是否被选中。其值为True则表示按钮在非选定状态下没有边框,只有在选中的状态下才有边框。 4. GroupIndex属性 当需要将几个快捷按钮合成一组时,需要用GroupIndex属性设置。 5. Cursor属性 该属性用于设置鼠标的形状,可供选择的形状很多,不同的形状可增添程序的趣味性。,3.2.12 CheckBox组件,CheckBox组件通常称为复选框,复选框往往是多个构成一组,在应用程序运行时,可以选中其中的一个或多个,也可以一个都不选。 CheckBox组件的主要属性 1. Caption属性 该属性表示复选框所提示的内容 。

26、2. Checked属性 该属性表示复选框是否被选中,有两个可选值:True表示复选框被选择,False 表示未选中。 3. State属性 该属性表示复选框当前的复选状态,其值有三种:cbUnChecked(未选中)、cbChecked(选中)、cbGrayed ( 变灰选中)。,3.2.13 RadioButton组件,RadioButton组件通常称为单选按钮,在Standard标签页中,单选按钮提供了一个选项集,只能在这些选项中排他性地选择其中一个,所以叫单选按钮。 该组件的主要属性就是:Checked属性,该属性表明单选按钮是否被选中。如果选中,则该属性值为True,默认值为Fals

27、e,表示未选中。,3.2.14 Image组件,图像组件Image在Additional标签页上,用来在窗口中显示一幅图片,可以在picture属性中调入图像文件。Delphi支持位图(.BMP)、图标(.ICO)、图元(.WFM)三种文件格式。 比较重要的属性: Autosize属性和Stretch属性。 它们决定了图像在窗口中的显示尺寸。Autosize属性为True表示按原尺寸显示,Stretch属性为True表示图像按对象图框的大小显示,这时图像的大小可以人为改变。,3.2.15 Shape组件,图形组件Shape可以处理多种几何形状,如线形、矩形、圆形等。通过设置Shape属性设置几

28、何图形的类型,通过设置Pen和Brush的嵌套属性,可以设置图形边框颜色、线型及图形的风格、填充方式等。 Shape属性可选值为stCircle、stEllipse、stRectangle、stRoundRect及stRoundSquare。,3.2.16 TreeView组件,TreeView(树状视图)组件,在Win32标签页中。可以利用该组件描述一个树状结构,如Windows资源管理器左窗格显示的树形结构目录,就可以利用TreeView组件实现。 在TreeView中,每个节点都是TtreeNode类型的对象,而它和所属的节点又组成了一个TtreeNodes对象。在图3-14中,Wind

29、ows是一个TtreeNode对象,而Windows和其下的子目录又构成了一个TtreeNodes对象,访问TtreeNode和TtreeNodes对象的方法有所不同。,图3-2 TreeView示例,3.2.17 ListView 组件,ListView(列表视图)组件,在组件面板的Win32标签页。Windows资源管理器的右半部分是典型的列表视图。它有四种方式,即大图标、小图标、简单列表和详细列表。ListView组件本身比较复杂,主要有两类对象来控制,那就是纵向的列对象TlistColumn和横向的TlistItem对象。,TlistColumn 每个列都有标题、对齐方式及宽度等属性。

30、在TlistView中,所有的列集中起来,由Columns管理的,它是一个TlistColumns对象,有属性Items和Count,通过这个对象的数组属性Itemsn来访问每个列。使用Columns的Add方法可以增加列。 TlistItem 这是描述列表项目的对象。每个项目都应有标题Caption,复选状态Checked。属性ImageIndex,OverLayIndex,StateIndex分别表示项目的图标序号,用于透明覆盖的图标序号,用于表明状态的图标序号。属性Selected,Cut,Focused分别表示项目是否被选中,是否被剪贴,是否具有输入焦点。所有的项目集中由TlistVi

31、ew的属性Items管理,它是TlistItems对象,有属性Items和Count,通过这个对象的数组属性Itemsn来访问每个项目,使用方法Add增加列表项目。,TlistView组件的示例操作 (1)赋值 with ListView1.Items.Add do begin Caption:=caption; /添加第一项 SubItems.add(aaaaa); /添加后面数据 SubItems.add(1234); end; /一定要使用WITH结构. (2)取值 listview1.Items.Itemi.Caption; /取得某条数据标题 listview1.Items.Itemi.SubItems.Stringsj; /取得某条数据内容 listview1.Items.Itemi.SubItems.CommaText; /一条记录的全部内容,格式: “标题”,“内容1”,“内容2”,. listview1.Items.Itemi.SubItems.Text /一条记录的全部内容 (3)删除 listview1.I

温馨提示

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

评论

0/150

提交评论