菜单栏、工具栏和状态栏_第1页
菜单栏、工具栏和状态栏_第2页
菜单栏、工具栏和状态栏_第3页
菜单栏、工具栏和状态栏_第4页
菜单栏、工具栏和状态栏_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、第第4章章 菜单栏、工具栏和状态栏菜单栏、工具栏和状态栏4.1 菜单栏菜单栏4.2 工具栏工具栏4.3 tstatusbar状态栏组件状态栏组件4.4 小结小结习题四习题四4.1 菜 单 栏菜单可分为两种,即主菜单和弹出式菜单。delphi提供了主菜单和弹出式菜单的组件,使用该组件可以非常简单地设计所需要的菜单。4.1.1 tmainmenu主菜单主菜单选择主菜单,弹出其下拉菜单选项,即二级菜单,也可以有三级菜单和多级菜单。tmainmenu主菜单位于standard下面,如图4.1.1所示。图4.1.1 tmainmenu主菜单所在位置1创建tmainmenu主菜单选择工具面板中standa

2、rd下面的“tmainmenu”选项,然后在窗体适当的位置单击,则图标显示在窗体的单击位置。单击“属性”选项卡中“items”右侧的按钮,即可打开“form1.mainmenu1”窗口,此窗口称为菜单设计器,如图4.1.2所示;也可以用鼠标右键单击图标,在弹出的快捷菜单中选择“menu designer”命令,打开该窗口;还可以双击图标打开该窗口。图4.1.2 “form1.mainmenu1”窗口(1)添加菜单。当“form1.mainmenu1”窗口处于当前状态时,在“属性”选项卡中的“name”选项中输入菜单的名称,并在“属性”选项卡中的“caption”选项中输入菜单所要显示的文字,即

3、可完成一级菜单的设计。如果在“属性”选项卡中的“name”选项没有输入菜单名,可直接在“caption”选项中输入。如果“caption”选项输入的是中文,则菜单项name的名称自动生成n1,第二个生成n2,依此类推;如果“caption”选项输入的是英文,则name的名称为“caption”选项中所输入的文字加1。一级菜单创建完成后,按照类似的方法创建二级菜单,如图4.1.3所示。图4.1.3 创建菜单创建三级菜单可以用鼠标右键单击二级菜单,在弹出的快捷菜单中选择“create submenu”命令,来创建三级菜单。这时二级菜单的右侧出现黑三角,用同样的方法可以创建多级菜单。(2)删除菜单。

4、如果创建了错误菜单,可以用鼠标右键单击所要删除的菜单,在弹出的快捷菜单中选择“delete”命令,即可删除该菜单。(3)插入菜单。如果在某一菜单前插入一个菜单,可以用鼠标右键单击此菜单,在弹出的快捷菜单中选择“insert”命令,即可在此菜单前插入菜单。(4)重新调整菜单。在设计菜单时,可以通过鼠标拖动的方法来调整菜单的位置,可以将二级菜单拖到三级菜单中,也可以拖到一级菜单中,但是不可以把菜单拖到它自身的子菜单中。2设计tmainmenu主菜单菜单创建后,要合理地设计菜单,便于使用。(1)菜单分组:可以将多个菜单按一定的功能合理地分组,其优点是便于查找菜单,菜单分组的效果如图4.1.4所示。分

5、组的方法是用分隔符把两类菜单分开,分隔符的设计是在“属性”选项卡中的“caption”选项中输入连字符“-”,即可显示分隔符(见图4.1.4)。注意:输入连字符时,只能输入一个连字符,如果输入两个或两个以上的连字符,显示的将不是分隔符,而是连字符。图4.1.4 菜单分组(2)快捷键和热键:快捷键和热键是有区别的。快捷键是指用户可以通过组合键打开菜单,而不用鼠标操作菜单。例如:通常用快捷键“alt+f”打开“文件”菜单。热键是指用户直接按组合键即可完成特定的功能,而不必打开菜单。例如:热键“ctrl+c”完成复制功能。 1)快捷键设置:在“属性”选项卡中的“caption”选项中,输入菜单标签名

6、,后跟括号中的“&”和一个字符,格式如下:标签名+(&+字符)例如:“文件(&f)”显示为“文件”,而“&”不显示,“&”后的字符以下划线的形式显示。按快捷键“alt+f”,即可弹出“文件”下拉菜单,同样也可以在下拉菜单中设置快捷键。注意:“&”符号后常跟英文字母,也可以跟汉字,但是没有任何意义。 2)热键设置:热键的设置可以通过“属性”选项卡中的“shortcut”选项设置,单击“shortcut”选项右侧的按钮,从其下拉列表中选择合适的热键即可。热键的取值范围:ctrl+actrl+z,ctrl+alt+actrl+alt+z,f1f12,c

7、trl+f1ctrl+f12,shift+f1shift+f12,shift+ctrl+f1shift+ctrl+f12,还包括ins,ctrl+ins,shift+ins等。注意:设置热键时,要尽量设置常用的热键,如复制热键设置成“ctrl+c”,而不要设置成其他的热键。主要是为了用户在使用应用程序时,可以快速地熟悉应用程序环境。(3)菜单的单选标记:和单选按钮组相似。当选择某些菜单时,菜单的左侧显示为,在这组菜单中,只能有一个菜单左侧显示为,如图4.1.5所示。图4.1.5 菜单的单选标记设计菜单的单选标记时,用到的3个菜单属性是autocheck,groupindex,radioitem

8、。首先将设计单选标记的一组菜单选中,将autocheck属性值设置为true,radioitem属性值也设置为true,groupindex属性值设置相同即可。如果菜单初始带有单选标记,可以设置checked属性值为true。(4)菜单的复选标记:和菜单的单选标记相似,设置复选标记更简单,直接设置autocheck属性值为true即可。也可以不设置此属性而编写以下程序代码:n1.checked:=not n1.checked;其中,n1是菜单名。(5)菜单的可用和不可用:在使用菜单时,常遇到有些菜单变成灰色,处于不可用状态,如图4.1.6所示。图4.1.6 菜单的可用和不可用控制菜单的可用和不

9、可用,用属性enabled设置,当属性值为true时为可用菜单;当属性值为false时为不可用菜单,即变成灰色。3tmainmenu主菜单事件单击事件是主菜单最常用的事件,选中菜单双击“属性”选项卡中的onclick事件或者双击菜单,即可完成菜单事件的创建。4.1.2 timagelist组件和菜单组件和菜单timagelist组件常和菜单配合使用,其主要作用是控制组件上图标的显示。它是图标的一个容器,支持的图片格式有*.bmp和*.ico。此组件位于win32下面,如图4.1.7所示。1timagelist组件的设计(1)双击工具面板win32中的timagelist组件,在窗体中出现图标,

10、用鼠标右键单击图标,在弹出的快捷菜单中选择“imageust editor”命令,弹出“form1.imagelist1 imagelist”对话框,如图4.1.8所示。(2)单击“add”按钮,添加所需要的图标。添加的图标信息在images列表框中显示,并有编号显示在图标的下部,可以添加多个图标,添加图标后的“form1.imagelist1 imagelist”对话框如图4.1.9所示。添加完毕,单击“ok”按钮,即可完成timagelist组件设计。图4.1.8 “form1.imagelist1 imagelist”图4.1.9 添加图标后的“form1.imagelist1 对话框i

11、magelist”对话框图4.1.7 timagelist组件所在位置2图像菜单的设计(1)选中窗体上的菜单图标,单击“属性”选项卡中的“images”选项右侧按钮,从下拉列表中选择“imagelist1”选项,完成图像菜单设计的第一步。(2)选中已设计好的菜单,单击“属性”选项卡中“imageindex”选项右侧的按钮,可以显示下拉列表中的图标,如图4.1.10所示。可以在其下拉列表中选择需要的图标,也可以在“imageindex”选项中直接输入0,1等数值即可。此时编译运行应用程序可以看到图像菜单。图4.1.10 imageindex选项右侧的下拉列表4.1.3 tactionlist行为

12、组件和菜单行为组件和菜单tactionlist行为组件集成了许多系统菜单,如打开、打印、复制、剪切、粘贴、全选和删除等。此组件可以直接和菜单相关联,不用编写程序代码就可以直接设计需要的菜单。此组件位于standard下面,如图4.1.11所示。图4.1.11 tactionlist行为组件所在位置1tactionlist行为组件的简介双击窗体上的tactionlist行为组件图标,弹出“editing form1.actionlist1”对话框,如图4.1.12所示。图4.1.12 “editing form1.actionlist1”对话框“editing form1.actionlist1

13、”对话框包括2个列表框和1个工具栏。“categories”列表框显示分类列表;“actions”列表框显示行为列表。工具栏上有4个工具按钮,从左到右分别是新建、删除、上移和下移。单击“新建”按钮右侧的按钮,弹出其下拉列表,如图4.1.13所示。图4.1.13 新建下拉列表其中,“new action”选项用于新建行为;选择“new standard action”选项,弹出“standard action classes”对话框,如图4.1.14所示。从该对话框中选取需要的系统菜单选项,双击需要的选项即可显示在“editing form1.actionlist1”对话框中的“categori

14、es”和“actions”列表框中。图4.1.14 “standard action classes”对话框“standard action classes”对话框列表中的行为组件很多,如编辑、格式、窗口、文件、对话框、网络、数据库和查询等。2tactionlist行为组件和菜单关联tactionlist行为组件设计完毕,然后将tactionlist行为组件和菜单关联。选中所要关联的菜单,单击“属性”选项卡中“action”选项右侧的按钮,则显示“editing form1.actionlist1”对话框中“actions”行为列表中的所有选项,选择所要关联的选项即可完成tactionlist

15、行为组件和菜单关联。注意:当tactionlist行为组件和菜单关联后,caption的属性值发生了改变,变成tactionlist行为组件的选项名称,如cut,copy和paste等。在设计菜单时,一般是先关联tactionlist行为组件,再设置菜单的caption属性。4.1.4 tpopupmenu弹出式菜单弹出式菜单弹出式菜单又称为快捷菜单,它是应用程序中操作最方便的一种菜单。当用户在不同的位置单击鼠标右键,即可弹出不同的弹出式菜单,此组件位于standard下面,如图4.1.15所示。tpopupmenu弹出式菜单的设计和tmainmenu主菜单的设计类似。设置窗体或组件的属性,设

16、置窗体的popupmenu属性即可完成弹出式菜单和组件之间的关联。弹出式菜单的事件和主菜单的事件相同,创建事件也相同,不再赘述。图4.1.15 tpopupmenu弹出式菜单所在位置4.2 工 具 栏常用的工具栏可分为3种,即ttoolbar工具栏、tcoolbar工具栏和tcontrolbar工具栏,设计工具栏时通常不使用一个工具栏组件来设计工具栏,而是多个工具栏组件配合使用。4.2.1 ttoolbar工具栏工具栏ttoolbar工具栏是一个相当完善的工具栏,它自带按钮,并可以将按钮设置成各种风格。此组件位于win32下面,如图4.2.1所示。1在ttoolbar工具栏上创建按钮双击工具面

17、板上的ttoolbar工具栏,在窗体的顶部出现一个工具栏,默认无工具按钮。用鼠标右键单击ttoolbar工具栏,在弹出的快捷菜单中选择“new button”命令,即可创建“toolbutton”按钮,默认名为toolbutton1。可以选择“new separator”命令创建分隔符,一般用于按钮组的分割。图4.2.1 ttoolbar工具栏所在位置2ttoolbar工具栏常用属性(1)align属性:用于控制工具栏的位置,默认为窗体顶部。(2)autosize属性:如果属性值为true,工具栏的尺寸随着工具栏上按钮尺寸的大小而变化,否则不变化。默认值为false。(3)flat属性:其属性

18、值有两个,即true和false。当为true时,显示为平坦风格;当鼠标移到按钮上面时,按钮显示为凸起状态。默认值为false。(4)images属性:一般用于关联timagelist组件。(5)list属性:只有在showcaption属性值为true时,才用于设置按钮的图标和文字的位置。当属性值为false时,图标显示在按钮的上部,文字显示在按钮的下部;当属性值为true时,图标显示在按钮的左侧,文字显示在按钮的右侧。默认值为false。(6)showcaption属性:在默认的情况下,按钮只显示图标,不显示文字。当属性值为true时,既显示图标又显示文字。3ttoolbar工具栏按钮的常

19、用属性(1)down属性:用于设置按钮处于按下还是弹起状态,当属性值为true时,处于按下状态,默认值为false。(2)grouped属性:其属性值有两个,即true和false。如果相邻的几个按钮设置成true时,表示这几个按钮为一组,每次只能有一个按钮处于按下状态。默认值为false。(3)imageindex属性:设置按钮的图标,从下拉按钮中选择即可。(4)menuitem属性:用于设置按钮和菜单命令的对应,单击此按钮,即可执行对应的菜单命令,也可以在此按钮单击事件中编写程序代码。程序代码如下:n1.click;其中,n1为菜单选项名,此程序代码和从menuitem属性中选择n1作用相

20、同。(5)style属性:用来设置按钮显示的风格,其属性值有5个,如表4.1所示。表4.1 style属性值4单选按钮工具栏设计在某一组按钮中,只能有一个按钮处于按下状态;当另一个按钮被按下,一定有一个按钮被弹起。常见的对齐按钮有左对齐、右对齐和居中对齐等。设计单选按钮需要设置的属性有两个,即grouped属性和style属性。全选需要设置的一组单选按钮,设置这组按钮的grouped属性值为true,style属性值为tbscheck。5复选按钮工具栏设计复选按钮工具是指多个按钮可以同时处于按下状态,常见的按钮有加粗、倾斜和下画线。复选按钮工具栏设计比单选按钮工具栏设计要简单。它只需要设置这组

21、按钮的“style”属性值为tbscheck即可。6下拉菜单式按钮设计有些按钮具有下拉菜单,如图4.2.2所示。可以从下拉菜单中选择相应的菜单命令。图4.2.2 下拉菜单式按钮在设计下拉菜单式按钮时,需要设置按钮和弹出式菜单两个方面。弹出式菜单设计前面已讲述,下面讲述按钮的设置及按钮和弹出式菜单的关联。首先设置按钮的style属性值为tbsdropdown,然后设置dropmenu属性值为已经设计的弹出式菜单,即可完成下拉式按钮和菜单的关联。运行时单击此按钮的向下箭头,即可弹出对应的菜单。7浮动工具栏设计浮动工具栏设计主要是设置工具栏属性和窗体属性。(1)工具栏属性:设置docksite属性值

22、为false(默认值);设置dragkind属性值为addock;设置dragmode属性值为amautomatic。(2)窗体属性:只需要设置docksite属性值为true,即可完成浮动工具栏的设置。运行程序可以将窗体上的工具栏拖到窗体的任意位置,甚至窗体外,如图4.2.3所示。图4.2.3 浮动工具栏应用程序4.2.2 tcoolbar工具栏工具栏tcoolbar工具栏和ttoolbar工具栏略有不同,用tcoolbar工具栏设计的工具栏可以拖动。此组件无自带按钮,只是一个容器,必须把其他组件添加到此容器中,才可以设计工具栏。它可以与tpanel组件关联或ttoolbar工具栏关联,使用

23、此组件设计的工具栏,在工具栏的左侧有一个竖线,即把手。此组件位于win32下面,如图4.2.4所示。图4.2.4 tcoolbar工具栏的所在位置1设计简单的tcoolbar工具栏一般设计此工具栏时,先向tcoolbar工具栏中添加tpanel组件,再向tpanel组件中添加其他组件,如speedbutton组件。2添加tcoolband对象tcoolbar工具栏可以设计成多个子工具栏,运行时可以拖动任何一个子工具栏上的把手,移动其位置。默认情况下只能在tcoolbar工具栏范围内移动。每个子工具栏中只能添加一个组件,但是tcoolbar工具栏可以添加多个组件。添加tcoolband对象的步骤

24、如下:(1)单击tcoolbar工具栏bands属性右侧的按钮,弹出“editing coolbar1.bands”对话框,也可以双击该工具栏或用鼠标右键单击tcoolbar工具栏组件,在弹出的快捷菜单中选择“bands editor”命令,弹出“editing coolbar1.bands”对话框,如图4.2.5所示。图4.2.5 “editing coolbar1.bands”对话框(2)单击“editing coolbar1.bands”对话框的“新建”按钮,即可完成一个tcoolband对象的添加。如果要添加多个tcoolband对象,同样多次单击 “新建”按钮即可。也可以直接把tpa

25、nel组件添加到tcoolbar工具栏中,即可创建一个tcoolband对象。如果添加多个tpanel组件,同时需要创建多个tcoolband对象。3tcoolband和ttoolbar工具栏关联tcoolband和ttoolbar工具栏关联是指把设计的ttoolbar工具栏添加到tcoolbar工具栏中。首先完成ttoolbar工具栏的设计,然后再选中tcoolband工具栏,单击“属性”选项卡中“control”选项右侧的按钮,在其下拉列表中选择“toolbar1”选项即可完成两者的关联。4tcoolband和主菜单关联tcoolband和主菜单关联,首先设置主菜单和ttoolbar工具栏

26、关联,然后设置tcoolband和ttoolbar工具栏关联,即可完成tcoolband和主菜单的关联。tcoolband和主菜单关联的步骤如下:(1)主菜单和ttoolbar工具栏关联。首先完成主菜单的设计,添加一个ttoolbar工具栏,选中ttoolbar工具栏,设置“属性”选项卡中“menu”选项的属性值为主菜单名mainmenu1,即可完成两者之间的关联。但是在运行时出现两个菜单,一个是原主菜单,另一个是ttoolbar工具栏菜单。可以通过设置主菜单中automerge属性值为true,则运行时将不出现两个菜单。通常还要设置ttoolbar工具栏中flat属性值为true,显示为平坦

27、风格,即菜单的风格,而不是按钮的风格。(2)tcoolband和ttoolbar工具栏关联。前面已介绍了tcoolband和ttoolbar工具栏关联,不再赘述。完成tcoolband和ttoolbar工具栏关联后,即可完成tcoolband和主菜单关联。(3)tcoolband和主菜单关联应用程序界面如图4.2.6所示。图4.2.6 tcoolband和主菜单关联应用程序界面注意:一般设计工具栏时,不是只使用一个tcoolbar工具栏或者使用一个ttoolbar工具栏,而是多个工具栏配合使用。4.2.3 tcontrolbar工具栏工具栏tcontrolbar工具栏和tcoolbar工具栏相

28、似,不同的是tcontrolbar工具栏中的子工具栏排列自由,可以任意地拖放;tcoolbar工具栏中的子工具栏排列总是紧密的,此组件不太常用。它位于additional下面,如图4.2.7所示。将tcontrolbar工具栏组件添加到窗体中时,其位置默认为在鼠标单击位置,而不是在窗体的顶部。必须设置属性align为altop时,才可以位于顶部。图4.2.7 tcontrolbar工具栏所在位置常用属性如下:(1)align属性:用于确定工具栏的位置。默认值为alnone。(2)autosize属性:其属性值有两个,即true和false。当属性值为true时,自动调节组件的尺寸。默认值为fa

29、lse。(3)picture属性:设置工具栏的背景图片。4.3 tstatusbar状态栏组件状态栏用于显示程序的信息,它处于窗体的底部。tstatusbar状态栏组件位于win32下面,如图4.3.1所示。图4.3.1 tstatusbar状态栏组件所在位置1编辑状态栏添加到窗口的状态栏是一段细长的状态栏,可以把它拆分成多个不同的区域。编辑状态栏的步骤如下:(1)窗体添加状态栏后,双击“tstatusbar”状态栏,弹出“editing statusbar1.panels”对话框,如图4.3.2所示。图4.3.2 “editing statusbar1.panels”对话框(2)单击“新建”

30、按钮,可以创建区域。如果想创建多个不同的区域只需要多次单击即可,默认宽度为50,如果要调节其宽度可以设置属性width。2常用属性(1)align属性:用于设置状态栏的位置,默认值为albottom,即窗体的底部。(2)autohint属性:其属性值有两个,即true和false。当属性值为true时,表示当鼠标移到其菜单时,状态栏显示菜单的hint提示。默认值为false。(3)panels属性:打开“editing statusbar1.panels”对话框和双击状态栏的作用相同。(4)simplepanel属性:其属性值有两个,即true和false。当属性值为true时,表示状态栏为简

31、单结构,只显示一个区域。默认值为false,可以显示多个区域。3常用方法有的应用软件在状态栏上显示系统的日期时间,通常在ttimer组件的ontimer事件中,编写程序代码如下:statusbar.panels0.text:=datetimetostr(now);其中,statusbar.panels0.text是指在状态栏的第一个区域显示系统日期时间。如果在状态栏的第二个区域显示系统日期时间,则编写如下程序代码:statusbar.panels1.text:=datetimetostr(now);状态栏区域的使用以此类推,状态栏常用于显示当鼠标指向某个组件时,返回用户的信息显示在状态栏上。一般用于窗体上其他组件的onmousemove事件,当鼠标指向此组件或者在此组件上移动时,即可返回到状态栏。例4.1 设计一个记事本应用程序,设计界面如图4.3.3所示。图4.3.3 记事本设计界面(1)创建一个项目,此窗体界面上有9个组件,即1个mainmenu主菜单、2个ttoolbar工具栏组件、1个tcoolbar工具栏、1个tmemo编辑组件、1个ttimer组件、1个statusbar状态栏组件、1个popupmenu弹出式菜单和1个actionlist行为组件(见图4.3.3)。(2)添加主菜单,并设计菜单。(3)

温馨提示

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

评论

0/150

提交评论