第9章-菜单、工具栏和状态栏ppt课件(全).ppt
《第9章-菜单、工具栏和状态栏ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第9章-菜单、工具栏和状态栏ppt课件(全).ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章章 菜单、工具栏和状态栏菜单、工具栏和状态栏目录9.1 菜单菜单9.1.1 下拉式菜单组件下拉式菜单组件MainMenu9.1.2 弹出式菜单组件弹出式菜单组件PopupMenu9.1.3 在菜单中添加小图标在菜单中添加小图标9.2 工具栏组件工具栏组件ToolBar9.3 状态栏组件状态栏组件StatusBar9.4 小结小结在Windows程序设计中,菜单、工具栏和状态栏是应用程序重要的界面元素。菜单、工具栏和状态栏可以使得程序操作更加方便,界面更加美观、友好。9.1 菜单在Delphi中菜单分为下拉式菜单和弹出式菜单,使用MainMenu组件很方便制作出下拉式菜单,使用PopUp
2、Menu组件也可以方便地制作出弹出式菜单。通过单击主菜单即可显示出下拉式菜单,而弹出式菜单则可以通过鼠标右键单击某个组件或者区域显示出来。如图9-1左边是下拉式菜单、右边为弹出是菜单。图9-1 下拉式菜单和弹出式菜单9.1.1 下拉式菜单组件MainMenuMainMenu下拉式菜单的菜单项保存在Items属性中,Items属性是MainMenu的内部对象。通过菜单设计器可以设计菜单的Items属性,添加菜单项。MainMenu组件在Standard组件面板中。1菜单设计器在窗体上添加MainMenu组件后,双击MainMenu组件,显示菜单设计器。或者鼠标右键单击MainMenu组件,选择“
3、Menu Designer”也可以进入菜单设计器。如图9-2右边所示即为菜单设计器。图9-2“Object Inspector”对话框与菜单设计器在菜单设计过程中,选择某个菜单项,则在“Object Inspector”对话框中显示的就是该菜单项所 对应的的属性。如图9-2所示,在右边菜单设计器中选择“打开”菜单项,则“Object Inspector”对话框中显示的就是该菜单项的属性,如“打开”菜单项的Name属性是N3,Caption属性是“打开”。菜单设计器有如下一些操作:(1)添加菜单项:一个菜单项设计完之后,自动在其后出现一个虚线框(如图9-2“粘贴”菜单的下面就是这种虚框),表示新
4、添加的菜单项,如果用户想添加新菜单项,用户可以直接设计之。(2)移动菜单项:用鼠标将要移动的菜单项直接拖动到目的位置即可。(3)插入菜单项:用鼠标右键单击菜单项,选择“Insert”可以完成菜单项的插入操作。(4)删除当前菜单项:选中某菜单,直接按“Delete”键即可。(5)创建子菜单项:选中菜单执行弹出式菜单中的“Create SubMenu”菜单。菜单的属性:(1)Caption属性和Name属性:用于设置菜单的标题,如图9-2所示的“文件”、“新建”等。Name属性默认值一般为n1、n2、n3等等。下面示例给出了Caption的一些用法,例如:n2.Caption:=新建;/菜单标题是
5、新建,n2是新建菜单的Name属性n3.Caption:=打开&O;/设置标题和加速键,按Alt+O等价与单击“打开”n4.Caption:=-;/设置菜单的分隔,用于分隔不同性质的菜单,这样更条理(2)Visible 属性:设置菜单是否可见,可以将菜单项设置为可见和不可见,还可以将菜单的子菜单设置为可见和不可见。例如:假设n1是“文件”菜单的Name属性,n3是“打开”菜单的Name属性。n1.Visible:=False;/“文件”菜单不显示,其下的“新建”、“打开”等菜单也不显示n3.Visible:=False;/“打开”菜单不显示(3)Enabled属性:菜单是否有效。例如:假设n1
6、是“文件”菜单的Name属性,n3是“打开”菜单的Name属性。n3.Enabled:=False;/“打开”菜单无效n1.Enabled:=False;/整个“文件”菜单无效说明:无效的菜单,无法用加速键或者快捷键访问。(4)ShortCut属性:用于设置菜单的快捷键。(5)Checked属性和AutoCheck属性:Checked属性用于设置菜单复选状态,值为True时,菜单旁边显示符号“”。AutoCheck属性用于设置菜单是否自动改变Checked属性值,当AutoCheck属性值为True时,单击菜单项,该菜单项的Checked属性值自动改变,否则需要用代码来改变。例如:假设n1、n
7、2、n3、n4分别表示“字体”、“粗体”、“斜体”和“下划线”菜单的Name属性。其中n1是顶层菜单。n2的AutoCheck属性值为False,n3的AutoCheck属性值为True。n2.Checked:=not n2.Checked;/该语句用于改变n2的Checked,单击n2菜单项,它的Checked属性值不断改变。/n3菜单不需要编写代码,每次单击n3,n3的Checked属性值能自动改变。(6)RadioItem属性和GroupIndex属性:用于设置单选菜单项,值为true时表示该菜单为单选菜单项。如果多个菜单的RadioItem属性都是True,且它们的GroupIndex
8、(整型,取值范围0255)相同,则这些菜单项是一组单选菜单,任何时刻仅可以选择其中一个菜单项。2下拉菜单应用【例9-1】设置一个编辑器,该编辑器可以打开、保存、新建文件,还可以编辑文件、设计字体。分析:本章主要讲授菜单知识,因此对文件的新建、打开、保存等不做讲解。本题将讲授菜单的有效,单选菜单、复选菜单、加速键、菜单代码编写等等。步骤如下:()在窗体上添加下拉菜单组件MainMenu1、添加打开对话框OpenDialog1、添加保存对话框SaveDialog1、添加多格式编辑框RichEdit1。()设置菜单菜单项如图9-3所示。其中“文件”、“新建”、“打开”、“保存”、分隔线和“退出”分别
9、为n1、n2、n3、n4、n5和n6。“编辑”、“复制”、“剪切”、“删除”和“粘贴”的Name属性分别为n7、n8、n9、n10和n11。“字体”、“粗体”一直到“隶书”的Name属性分别为n12n20。设置各个菜单的加速键,此处省略。(3)设置RichEdit组件的Align属性为alClient,调整这些组件的大小和位置,如图9-3所示。图9-3 编辑器界面及其菜单项(4)设置“粗体”和“斜体”为复选菜单,方法是设置n13和n14的AutoCheck为False。编写粗体和斜体的代码如下:procedure TForm1.N13Click(Sender:TObject);begin n1
10、3.Checked:=not n13.Checked;/每次单击粗体均要改变粗体的Checked属性值 if n13.Checked then richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style+fsbold else richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style-fsboldend;procedure TForm1.N14Click(Sender:TObject);begin n14.Checked:=not n14.Checked;/每次单击粗体
11、均要改变斜体的Checked属性值 if n14.Checked then richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style+fsitalic elserichedit1.SelAttributes.Style:=richedit1.SelAttributes.Style-fsitalicend;分析:由于n13和n14的AutoCheck属性为False,因此单击粗体和斜体,菜单的Checked属性值不会自动改变,因此需要使用语句来改变n13和n14的Checked属性值。显然,如果将n13和n14的AutoCheck属
12、性设置为True,则上面的程序可以写成:procedure TForm1.N13Click(Sender:TObject);begin if n13.Checked then richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style+fsbold else richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style-fsboldend;procedure TForm1.N14Click(Sender:TObject);begin if n14.Checked then
13、richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style+fsitalic else richedit1.SelAttributes.Style:=richedit1.SelAttributes.Style-fsitalicend;(5)设置“10号”、“20号”、“宋体”和“隶书”为单选菜单。关于AutoCheck属性,这里不再赘述,为了使程序更加简洁将这4个菜单项的AutoCheck属性都设置为True。将这4个菜单的RaidoItem属性设置为True,表示这4个菜单是单选菜单。由于“10号”和“20号”是一组,故将“10号
14、”和“20号”的RaidoIndex设置为0(RaidoIndex相同的为一组),将另外一组菜单“宋体”和“隶书”的RaidoIndex都设置为1。编写者4个菜单的代码,如下:procedure TForm1.N16Click(Sender:TObject);begin if n16.Checked then richedit1.SelAttributes.Size:=10end;procedure TForm1.N17Click(Sender:TObject);begin if n17.Checked then richedit1.SelAttributes.Size:=20 end;pro
15、cedure TForm1.N19Click(Sender:TObject);begin if n19.Checked then richedit1.SelAttributes.Name:=宋体 end;procedure TForm1.N20Click(Sender:TObject);begin if n20.Checked then richedit1.SelAttributes.Name:=隶书end;(6)编写RichEdit1的OnSelectionChange事件过程,如下:procedure TForm1.RichEdit1SelectionChange(Sender:TObje
16、ct);begin if richedit1.SelLength0 then begin n8.Enabled:=true;/如果有选定文字,则设置“复制”、“剪切”和“删除”有效 n9.Enabled:=true;n10.Enabled:=true end else begin n8.Enabled:=false;n9.Enabled:=false;n10.Enabled:=false end;if fsbold in richedit1.SelAttributes.Style then n13.Checked:=true /选定文字是粗体,则设置n13的Checked为True else
17、n13.Checked:=false;if fsitalic in richedit1.SelAttributes.Style then n14.Checked:=true else n14.Checked:=false;if richedit1.SelAttributes.Size=10 then n16.Checked:=true;if richedit1.SelAttributes.Size=20 then n17.Checked:=true;/选定“20号”,则“10号”的Checked属性自动变为False if richedit1.SelAttributes.Name=宋体 the
18、n n19.Checked:=true;if richedit1.SelAttributes.Name=隶书 then n20.Checked:=true;end;说明:该过程的作用是根据选定文字的状态设置菜单的状态。“文件”、“编辑”类菜单的代码请读者自己完成。3菜单模板我们可以像使用模具一样使用菜单模板来设计自己的菜单,也可以把自己设计的菜单保存为菜单模板,供下次使用。(1)添加系统菜单在自己的菜单中添加系统菜单模板,使得设计菜单更加方便、快捷。鼠标右键单击菜单项选择“Insert From Template”可以将系统中的菜单添加到自己的菜单中,如“File”、“Edit”、“Windo
19、w”、“Help”等等。(2)将自己的菜单保存为菜单模板鼠标右键单击菜单,选择“Save As Template”可以将自己设计的菜单保存为模板,以供下次使用。同样可以使用“Delete Template”删除不用的菜单模板。9.1.2 弹出式菜单组件PopupMenu弹出式菜单与下拉式菜单类似。弹出式菜单是为某个组件设计的,只有在某个组件上单击鼠标右键才可以显示该菜单,因此必须将弹出式菜单与某个组件关联起来。方法是将弹出式菜单作为该组件的PopupMenu属性值。9.1.3 在菜单中添加小图标在菜单中添加图标,可以使得菜单更加美观、形象。如图9-4所示为添加了图标的菜单。在菜单中添加图标需要
20、使用到另外一个组件ImageList。图9-4 在菜单中添加图标ImageList组件ImageList组件的作用是装载图像,ImageList中的图像可以供其他组件如菜单、工具栏等使用,ImageList组件在Standard组件面板中。双击ImageList组件,激活ImageList编辑器,如图9-5所示。图9-5 ImageList编辑器使用“Add”、“Delete”、“Clear”按钮,分别向ImageList中添加图像、删除图像或者清空全部图像。2ImageList组件的使用ImageList的作用是为其他组件提供图像,我们以菜单为例讲述ImageList组件的使用方法。(1)整
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 菜单 工具栏 状态栏 ppt 课件
限制150内