第10章 菜单和工具栏Word文档格式.docx
- 文档编号:16404800
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:13
- 大小:58.45KB
第10章 菜单和工具栏Word文档格式.docx
《第10章 菜单和工具栏Word文档格式.docx》由会员分享,可在线阅读,更多相关《第10章 菜单和工具栏Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
①设置菜单项标题
在菜单设计器中选定第一个顶层菜单,在属性窗口输入菜单项标题(Caption属性)后按回车键。
然后依次创建各菜单项。
分隔线为“-”。
②设置菜单项名称
通过设置菜单标题添加菜单项时,Delphi自动生成菜单名称(Name属性)。
如果菜单标题(Caption)为中文字符串,自动生成的菜单名称不直观(如F1、N1等),可以在属性窗口修改菜单项的Name属性,以便增强代码的可读性。
注意:
菜单名称(Name)不能使用汉字。
3.设置加速键与快捷键(补充)
快捷键及加速键都是指不用鼠标而通过键盘访问菜单命令。
(1)加速键
加速键(AcceleratorKeys)是指与ALT键同时按下的字母键,又称访问键。
在程序界面中,加速键字母带有下划线。
加速键用于打开菜单、执行命令、选择对象或移向对象。
例如,按ALT+F键可以打开“文件”菜单。
设置加速键的方法是在菜单项标题(Caption)的加速键字母前加&
。
(2)快捷键
快捷键(KeyboardShortcuts或ShortcutKeys)是指无须打开菜单,即可执行一个菜单命令的功能键或组合键。
例如,在Delphi集成开发环境中按F9键运行程序,按CTRL+C键复制对象等。
设置快捷键的方法是在属性窗口通过ShortCut属性选择。
说明:
“热键”(HotKeys)一词在程序设计领域的使用较混乱,有时指加速键,有时又指快捷键。
为了防止误解和歧义,应尽量避免使用该词作为编程术语。
4.子菜单设计
(1)创建子菜单
在菜单设计器中右击菜单项,选择“CreateSubmenu”即可创建子菜单。
(2)移动菜单项
在菜单设计器中拖动菜单项至所需位置。
5.创建带有图标的菜单(补充)
双击Win32组件面板中的ImageList图标,将组件添加到窗体上。
双击窗体中的ImageList组件,打开ImageListEditor,单击【Add...】按钮添加图片。
选择窗体中的菜单组件,在属性窗口将Images属性设置为ImageList组件(如ImageList1)。
双击菜单组件,打开菜单编辑器。
选择需要为其添加图标的菜单项,在属性窗口单击ImageIndex属性右侧的下拉按钮,选择图片。
若将该属性值设为-1,则清除本菜单项的图片。
常用位图或图标文件所在文件夹(“X”为Delphi或VB所在盘符):
Delphi:
X:
\ProgramFiles\CommonFiles\BorlandShared\Images\(Buttons或Icons)
VB:
\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\(Bitmaps或Icons)
6.处理菜单项单击事件(补充)
菜单组件中的每个菜单项都是一个TMenuItem对象,要使菜单发挥作用,必须为各菜单项(顶层菜单除外)OnClick事件编写代码。
生成菜单项单击事件框架代码的方法如下:
若菜单设计器已关闭,单击窗体上菜单中的特定菜单项;
在菜单设计器中双击特定菜单项;
在菜单设计器中选择特定菜单项,然后在事件窗口选定OnClick事件,双击右侧空白处或按Ctrl+回车键。
二、弹出式菜单组件
弹出式菜单(PopupMenu)又称快捷菜单。
弹出式菜单组件组件用于建立弹出式快捷菜单。
设计方式与MainMenu相同。
1.添加弹出式菜单组件
双击Standard组件面板中的弹出式菜单(PopupMenu)图标,将组件添加到窗体上。
2.弹出式菜单设计
弹出式菜单设计器的启动、菜单项的创建以及菜单项单击事件处理等均与主菜单相同。
大部分可视组件具有PopupMenu属性,若需在某一对象(如窗体或控件)上使用弹出式菜单,应将该对象的PopupMenu属性设置为已建立的弹出式菜单。
一个窗体中可以含有多个弹出式菜单,分别供不同对象使用。
第2节工具栏和状态栏组件
一、工具栏组件◆
1.工具栏组件
工具栏(ToolBar)组件位于组件板的Win32页。
在窗体上添加ToolBar组件后,默认停靠在窗体客户区的最上端(标题栏和菜单栏的下方),其宽度会自动适应窗体宽度的变化。
ToolBar组件的常用属性见教材219页表10.6,其中最常用的属性是Images和ShowHint。
前者用于指定为工具栏按钮提供图标的ImageList组件,后者用于指定是否显示各按钮的提示文本。
2.工具栏按钮对象
工具栏上可以放置工具栏按钮和其他组件。
在工具栏中添加的每一个按钮和分隔符都是一个TToolButton对象,可以为每一个TToolButton对象设置属性和编写相应的事件。
工具栏按钮对象的常用属性见教材220页表10.7,其中最常用的是Style(样式)和Hint(提示文本)。
3.工具栏的制作
制作工具栏的一般步骤如下。
(1)添加ImageList组件
提示:
工具栏可以与菜单组件共用一个ImageList组件。
(2)添加工具栏组件
双击Win32组件面板中的ToolBar图标,将组件添加到窗体上。
设置ShowHint属性为True,以便显示各按钮的提示文本。
(3)建立图片关联
选择窗体上的工具栏组件,在属性窗口将Images属性设置为窗体上已有的ImageList组件(如ImageList1)。
(4)添加工具栏按钮
右击工具栏组件,选择【NewButton】命令,即可添加一个按钮,若选择【NewSeparator】命令,则添加一个分隔符。
在属性窗口单击ImageIndex属性右侧的下拉按钮,为新添加的按钮选择图片;
选择Hint属性,为新按钮设置提示文本。
(5)处理工具栏按钮单击事件
双击工具栏中的特定按钮,即可生成该按钮单击事件的框架代码。
工具栏按钮可以与特定菜单项共用一个单击事件过程。
4.工具栏与菜单栏的协同(补充)
在实际应用中,工具栏中的按钮通常与菜单中最常用的的菜单项对应,可以用它们访问应用程序最常用的功能和命令。
Delphi为工具栏与菜单栏的协同工作提供了十分有效的解决方案。
在Delphi中,每个工具栏按钮都有一个特殊属性MenuItem,在属性窗口单击该属性右侧的下拉按钮▼,选择已有的菜单项,即可将该按钮与特定菜单命令建立关联。
利用这一特性可以使代码的编写大为简化,即只需编写菜单项的单击事件代码,而不必在代码中处理工具栏按钮的单击事件。
5.设置工具栏按钮的提示文本(补充)
♦将工具栏组件的ShowHint属性设置为True。
♦根据不同情况设置Hint属性:
若工具栏按钮未与菜单项建立关联,则设置工具栏按钮的Hint属性;
若工具栏按钮已经与菜单项建立关联,则设置菜单项的Hint属性。
二、状态栏组件
1.状态栏组件
状态栏(StatusBar)组件在组件面板的Win32页,双击Win32组件面板中的StatusBar图标,即可将状态栏添加到窗体上。
状态栏用于显示程序的操作提示及当前状态等信息,一般位于窗体的底部。
StatusBar组件的常用属性见教材225页表10.9,其中最常用的属性是Panels。
该属性含有状态栏中各显示窗格(Panel,面板)的信息,每个窗格都是一个TStatusPanel对象。
设计时在状态栏中添加、删除或修改窗格等操作通常借助于窗格编辑对话框进行。
单击Panels属性右侧的…按钮,即可打开该对话框。
2.状态栏的制作
制作状态栏的一般步骤如下:
●单击Panels属性右侧的…按钮,打开窗格编辑对话框。
●在窗格编辑对话框中添加、删除窗格或改变窗格的顺序。
●设置窗格的属性。
如Algnment属性用于确定窗格中字符串的对齐方式,Text属性用于设置显示在窗格中的文字。
3.示例
以下示例利用状态栏显示多行编辑组件中插入点的位置(行、列)。
(1)设计界面
在窗体上添加一个Memo组件和一个状态栏。
选定状态栏,单击Panels属性右侧的…按钮,打开窗格编辑对话框,添加一个窗格。
(2)声明私有方法
为了使代码具有较强的通用性,提高代码的复用程度,本例声明了一个私有方法MemoKeyMouse,用于获取多行编辑组件中插入点的位置。
具体操作如下:
①方法的声明
在单元接口部分的私有声明段(private)声明上述方法的首部:
{自定义私有方法,用于获取多行编辑组件中插入点的位置}
functionMemoKeyMouse(CMemo:
TCustomMemo):
string;
②方法的实现
在单元实现部分(implementation)实现上述方法:
{以下是私有方法MemoKeyMouse的实现部分,
参数CMemo是多行编辑组件对象,返回值是由插入点位置构成的字符串}
functionTForm1.MemoKeyMouse(CMemo:
varX,Y,S:
begin
{TCustomMemo是TMemo、TDBMemo、TRichEdit等多行编辑组件的基类,
在该类中定义了CaretPos属性,用于获取插入点的位置}
X:
=IntToStr(CMemo.CaretPos.X);
//列
Y:
=IntToStr(CMemo.CaretPos.Y+1);
//行
S:
=StringOfChar('
'
8);
//生成8个空格
Result:
='
位置:
'
+S+Y+'
行'
+S+X+'
列'
;
//返回值
end;
(3)方法的调用
在Memo组件的OnClick和OnKeyUp事件调用上述方法。
例如:
procedureTForm1.Memo1Click(Sender:
TObject);
{事件过程中的Sender参数代表响应当前事件的对象,在本例中为Memo1。
自定义私有方法MemoKeyMouse的参数CMemo为TCustomMemo类型;
使用类操作符as可将Sender映射为该类型。
}
StatusBar1.Panels[0].Text:
=MemoKeyMouse(SenderasTCustomMemo);
运行程序,在Memo组件中输入文本,观察状态栏中的变化。
第3节动作列表组件
一、动作列表组件简介
动作列表(ActionList)组件可以集中处理许多常用的操作,把用户界面和应用逻辑分开,减少程序代码的长度,方便程序的维护和调试。
该位于组件板Standard页,双击该组件打开动作列表编辑器后即可设计其中的动作(Action)。
设计完动作列表后,只需将用户界面元素如菜单项、工具栏按钮等与动作相关联即可。
ActionList组件提供一个可供其他组件使用的动作列表。
该组件通常与菜单栏和工具栏等组件一起使用,以减少代码重复,并对用户的各种操作进行统一管理。
在ActionList组件中可添加一系列动作(Action),用于集中响应用户的各种命令。
动作列表中的每一个动作都是TAction类的对象,分为预定义(标准)动作和自定义动作。
预定义动作由Delphi提供,使用这些动作时,无须编写代码或仅编写少量代码即可自动完成一些常用的标准操作。
Delphi将数十种预定义动作按功能分为12类,如编辑类(剪切、复制、粘贴等)、文件类(打开、保存等)、格式类(如粗体、斜体、下划线等)等等。
自定义动作由程序员定义,通常需要为其OnExecute事件编写代码以完成特定的操作。
二、示例
以下示例利用ActionList组件快速创建一个简单的文本编辑器。
1.设计界面
新建工程,在窗体上添加ActionList、ImageList、MainMenu、ToolBar、StatusBar和Memo组件各一,均采用默认名称。
2.设置组件属性
(1)设置窗体的ShowHint属性
将窗体的ShowHint属性设置为True,以便使窗体上的相关组件能够显示提示信息。
(2)设置ActionList组件属性
①与图像列表组件关联。
选定窗体上的ActionList组件,在属性窗口将Images属性设置为ImageList1。
②打开动作列表编辑器。
双击ActionList组件,打开动作列表编辑器,如图10.3.1所示。
图10.3.1动作列表编辑器
③添加新动作。
在动作列表编辑器空白处右击,选择【NewStandardAction…】
(见图10.3.2),打开【StandardActionClasses】对话框,如图10.3.3所示。
图10.3.2添加新动作
图10.3.3标准动作类对话框
④选择动作。
在对话框中按图10.3.3所示选择【Edit】和【File】类中的动作,单击OK,返回动作列表编辑器。
此时可见动作列表编辑器中的内容发生了变化,如图10.3.4所示。
其中的图标是系统自动添加的,并且已自动存放到窗体上的ImageList组件中。
图10.3.4已添加的标准动作
⑤设置文件类型过滤。
选定【Action】列表中的动作【FileOpen1】,在属性窗口展开【Dialog】属性,单击子属性【Filter】右侧的…按钮,打开【FilterEditor】对话框,设置拟打开的文件类型,如图10.3.5所示。
图10.3.5设置文件类型过滤
⑥参照步骤⑤,对【FileSaveAs1】动作的属性做同样的设置。
亦可在属性窗口将【FileOpen1】动作的【Dialog|Filter】属性值直接复制到【FileSaveAs1】动作的同名属性中。
⑦关闭动作列表编辑器。
(3)设计菜单
①选定窗体上的MainMenu组件,在属性窗口将Images属性设置为ImageList1。
②双击MainMenu组件,打开菜单编辑器。
添加两个顶层菜单,标题分别为File和Edit。
③选定File下的第一个空白菜单项,在属性窗口将其Action属性设置为FileOpen1。
这一设置的作用是将菜单项与特定动作相关联。
④按上述方法依次设置其他菜单项与特定动作的关联。
(4)设计工具栏
①选定窗体上的工具栏,在属性窗口将Images属性设置为ImageList1。
②右击工具栏,选择【NewButton】命令,添加一个按钮,在属性窗口将其Action属性设置为FileOpen1。
③按上述方法依次添加其他按钮,并设置按钮与特定动作的关联。
(5)设置状态栏AutoHint属性
将状态栏的AutoHint属性设置为True,可以在程序运行时将当前动作的提示信息(长提示)自动显示在状态栏的第一个窗格中。
Hint属性中的提示信息可以设置为两部分:
短提示(Shorthint)和长提示(Longhint),二者之间用竖线“|”隔开。
短提示用于弹出式提示信息;
长提示通常用于状态栏。
3.编写代码
在Delphi的预定义动作中,对编辑类动作(如剪切、复制、粘贴等)无须编写代码即可实现相关功能;
而文件类动作(如打开、保存等)仅显示相关对话框,文件的实际读写操作需编写代码才能实现。
双击ActionList组件,打开动作列表编辑器,选定【Action】列表中的动作【FileOpen1】,在事件窗口双击OnAccept事件右侧空白处,为该事件编写如下代码:
Memo1.Lines.LoadFromFile(FileOpen1.Dialog.FileName);
为【FileSaveAs1】动作的OnAccept事件编写如下代码:
Memo1.Lines.SaveToFile(FileSaveAs1.Dialog.FileName);
保存工程,编译运行。
上述步骤看似复杂,实际上只需数分钟即可完成。
第4节CoolBar组件和ControlBar组件
CoolBar和ControlBar组件主要用于容纳诸如ToolBar、ComboBox之类的组件,其界面效果比普通工具栏更具现代程序特征。
CoolBar位于组件板Win32页,ControlBar位于组件板Additional页,二者功能与界面效果相似。
一、CoolBar和ControlBar组件的异同
共性:
二者均可作为工具栏等组件的容器,用于制作现代样式的工具栏。
差异:
●CoolBar组件的内部分为多个区带(Band),工具栏等其他组件放置在不同区带中;
ControlBar组件没有Band属性,工具栏等其他组件直接放置在ControlBar组件上。
●CoolBar组件易受Windows操作系统版本的影响;
ControlBar组件基本上不受操作系统版本影响。
二、将主菜单放置在工具栏中
现代应用程序通常将主菜单封装在工具栏中,如Delphi集成开发环境、Word程序等。
将主菜单放置在工具栏中的方法如下:
首先设计主菜单,然后在CoolBar或ControlBar组件中添加工具栏,将工具栏组件的Menu属性设置为已有的主菜单组件,并将窗体的Menu属性清空。
工具栏不会自动跟踪菜单的变化。
将主菜单放置到工具栏中后,如果又对主菜单做了修改(如添加、删除菜单项,改变菜单项标题等),则这些改变不会反映在工具栏上的菜单中。
若需使二者同步,必须重新设置工具栏的Menu属性。
三、示例
将本教案第3节中“利用ActionList组件快速创建文本编辑器”的示例略作修改,将工具栏放置在CoolBar或ControlBar组件中。
操作步骤如下:
①在磁盘上新建两个文件夹,名称分别为【CoolBar】和【ControlBar】。
将第3节中示例工程的所有文件分别复制到这两个文件夹中。
②打开【CoolBar】文件夹中的工程,在窗体上添加一个CoolBar组件,在该组件中添加一个工具栏,按本节“二”所述方法将主菜单放置在该工具栏中。
③将窗体中原有工具栏剪切,然后粘贴到CoolBar组件中。
④打开【ControlBar】文件夹中的工程,参照上述第②、③步,将工具栏和菜单栏放置在ControlBar组件中。
第5节动态菜单项和工具栏按钮
程序运行时,可以在代码中动态添加菜单项和工具栏按钮。
基本思路如下:
●动态生成TMenuItem类和TToolButton类的实例。
●动态设置这些对象实例的相关属性。
●动态设置这些菜单项和工具栏按钮的OnClick事件过程。
●把动态生成的TMenuItem和TToolButton的实例添加到相应的菜单和工具栏。
具体应用实例参见教材232~234页【例10-8】。
练习
1.创建主菜单
练习使用菜单编辑器创建主菜单、菜单项、子菜单,为菜单项添加快捷键和加速键。
2.创建快捷菜单
练习使用菜单编辑器创建弹出式菜单。
3.创建带有图标的菜单
为前面创建的主菜单和快捷菜单中的菜单项添加图标。
4.创建工具栏
为上面创建的主菜单和快捷菜单中的常用菜单项配置工具栏,并且将工具栏按钮与特定菜单项建立关联。
5.使用动作列表组件
根据本章第3节所述,使用动作列表等组件创建简单文本编辑器。
6.使用CoolBar组件和ControlBar组件
根据本章第4节所述,练习使用CoolBar组件和ControlBar组件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 菜单和工具栏 10 菜单 工具栏