上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
DELPHI语言编程基础(6)
作者:未知 申领版权
2010年12月12日 共有 1180 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    菜单设计器
    
    Delphi 提供了两种菜单设计器,分别用于设计主菜单和快捷菜单。
    1. MainMenu 设计器——主菜单设计器
    
    MainMenu 设计器用于设计下拉式主菜单,这种类型的菜单最常见,图 4.1 所示就是下 拉式主菜单。利用 MainMenu 设计器,能方便地完成设计主菜单栏、菜单命令并创建级联 菜单等一系列功能。
    
    
    
    图 4.1   主菜单结构
    
    2. PopupMenu 设计器——快捷菜单设计器
    
    PopupMenu 设计器用于设计弹出式快捷菜单。通常情况下,右击鼠标打开的就是快捷菜 单。例如,图 4.2 所示就是在 Windows 资源管理器文件窗口中右击鼠标时打开的快捷菜单。
    
    
    
    
    
    
    图 4.2   快捷菜单结构
    
    
    4.2
    
    
    4.3 菜单命令响应
    
    图 4.7   级联菜单
    
    
    
    
    主菜单对应于 TMainMenu 类,而每一项菜单和菜单命令都对应于 TMenuItem 类。这
    些 TMenuItem 类都有自己的事件,用以响应各菜单命令。 下面通过例程来说明如何对菜单命令进行响应。
    【例 4.1】 给例 3.3 添加菜单。
    1)  打开例 3.3 应用程序
    启动Delphi,从【File】菜单中选取【Reopen】命令,从中选择例 3.3 的应用文件 Project3_3。 或选取【Open Project】命令,从对话框中选择例 3.3 的应用文件 Project3_3,见图 3.7。
    2)  创建菜单
    创建如表 4-1 所示的菜单。
    
    表 4-1   菜单及菜单命令
    

    
菜  单
    
菜单命令
    
级联命令
    
属 性
    
属  性  值
    
属 性
    
属  性  值
    
【选项】
    
 
    
 
    
Caption
    
选项(&O)
    
Name
    
Option
    
 
    
【颜色】
    
 
    
Caption
    
颜色(&C)
    
Name
    
OptionColor
    
 
    
 
    
 
    
ShortCut
    
Ctrl O
    
 
    
 
    
 
    
【字体】
    
 
    
Caption
    
字体(&F)
    
Name
    
OptionFont
    
 
    
 
    
 
    
ShortCut
    
Ctrl F
    
 
    
 
    
 
    
【对齐】
    
 
    
Caption
    
对齐(&A)
    
Name
    
OptionAlign
    

 
    (续)
    

    
菜  单
    
菜单命令
    
级联命令
    
属 性
    
属  性  值
    
属 性
    
属  性  值
    
 
    
 
    
【左对齐】
    
Caption
    
左对齐(&L)
    
Name
    
OptionAlignLeft
    
 
    
 
    
 
    
ShortCut
    
Ctrl L
    
 
    
 
    
 
    
 
    
【居中】
    
Caption
    
居  中(&C)
    
Name
    
OptionAlignCenter
    
 
    
 
    
 
    
ShortCut
    
Ctrl C
    
 
    
 
    
 
    
 
    
【右对齐】
    
Caption
    
右对齐(&R)
    
Name
    
OptionAlignRight
    
 
    
 
    
 
    
ShortCut
    
Ctrl R
    
 
    
 
    
 
    
【隐藏】
    
 
    
Caption
    
隐藏
    
Name
    
OptionHide
    
【帮助】
    
 
    
 
    
Caption
    
帮助(&H)
    
Name
    
Help
    
 
    
【关于】
    
 
    
Caption
    
关于(&A)
    
Name
    
HelpAbout
    

 
    3)  添加事件
    为菜单命令添加的事件如表 4-2 所示。
    
    表 4-2   菜单命令的事件
    

    
菜 单 命 令
    
组 件
    
事 件
    
事件响应函数
    
【颜色】
    
OptionColor
    
OnClick
    
Button1Click
    
【字体】
    
OptionFont
    
OnClick
    
Button2Click
    
【左对齐】
    
OptionAlignLeft
    
OnClick
    
OptionAlignLeftClick
    
【居中】
    
OptionAlignCenter
    
OnClick
    
OptionAlignCenterClick
    
【右对齐】
    
OptionAlignRight
    
OnClick
    
OptionAlignRightClick
    

 
    4)  编写事件响应代码
    【颜色】命令用于打开【颜色】对话框:ColorDialog1,然后将从【颜色】对话框中选 定的颜色作为文本 Memo1 的背景颜色,其 OnClick 事件与【颜色】按钮相同,所以可直接 引用 Button1Click 的响应代码,方法如下:
    打开菜单设计器,选择【颜色】菜单命令,在 Object  Inspector(对象查看器)窗口中的
    Events 选项卡中,在 OnClick 旁的下拉列表中选择 Button1Click。 对于功能相同的事件,建议采用事件引用,这样做,一方面可以减小程序代码的冗余;
    另一方面,一旦需要修改程序,只要修改被引用的地方即可。
    【字体】命令用于打开【字体】对话框:FontDialog1,然后将从【字体】对话框中选 定的字体设置给文本 Memo1,其 OnClick 事件功能同【字体】按钮,可直接引用 Button2
    Click。
    【左对齐】命令用于将文本 Memo1 的文本左对齐,其 OnClick 事件的响应代码如下:
    
    procedure TForm1.OptionAlignLeftClick(Sender: TObject);
    begin Memo1.Alignment:=taLeftJustify; OptionAlignLeft.Checked:=True; OptionAlignRight.Checked:=False; OptionAlignCenter.Checked:=False;
    
    RadioGroup1.ItemIndex:=0;
    end;
    【居中】命令用于将文本 Memo1 的文本居中对齐,其 OnClick 事件的响应代码如下:
    
    procedure TForm1.OptionAlignCenterClick(Sender: TObject);
    begin Memo1.Alignment:=taCenter; OptionAlignLeft.Checked:=False; OptionAlignRight.Checked:=False; OptionAlignCenter.Checked:=True; RadioGroup1.ItemIndex:=1;
    end;
    【右对齐】命令用于将文本 Memo1 的文本右对齐,其 OnClick 事件的响应代码如下:
    
    procedure TForm1.OptionAlignRightClick(Sender: TObject);
    begin Memo1.Alignment:=taRightJustify; OptionAlignLeft.Checked:=False; OptionAlignRight.Checked:=True; OptionAlignCenter.Checked:=False; RadioGroup1.ItemIndex:=2;
    end;
    
    5)  保存程序 将单元文件另存为“Unit4_1.pas”,将项目文件另存为“Project4_1.dpr”。
    6)  编译运行程序 单击工具栏上的【Run】按钮即可运行程序。运行后,单击【选项】菜单的【颜色】
    命令,可设置文本的颜色;单击【字体】命令,可设置文本的字体;而单击【左对齐】、
    【居中】、【右对齐】命令,则可调整文本的对齐方式,如图 4.8 所示。
    图 4.9 显示了将字体设置楷体、加粗、三号,颜色为红色,对齐方式为居中时的效果。
    
    
    
    图 4.8   加入菜单后的窗口 图 4.9   响应菜单命令
    
    
    4.4 运行时设置菜单
    
    
    在应用程序运行时,可以进行一系列的操作来调整菜单结构和外观。如给菜单命令添 加单选或复选标记、将菜单命令灰显、隐藏等。
    
    通常,有 5 种属性可用于应用程序运行时设置菜单。
    (1) Checked 属性:可用于在运行时给菜单命令添加复选标记。 (2) RadioItem 属性:可用于在运行时给菜单命令添加单选标记。 (3) Enabled 属性:可用于在运行时将菜单命令灰显。
    (4) Caption 属性:可用于在运行时调整菜单命令的文本。 (5) Visible 属性:可用于在运行时隐藏菜单命令。 下面介绍如何实现上述目的。并通过例 4.2 描述实现方法。
    
    4.4.1 菜单命令灰显
    
    当我们在进行菜单操作时,有时要求某项菜单或菜单命令项不能被用户操作,就把该 菜单或菜单命令项用灰色显示,用户对它的操作不会有任何响应。
    菜单命令项灰显可以通过设置菜单命令项的 Enabled 属性来实现,当该属性为 True 时, 菜单命令项有响应;当该属性为 False 时,菜单命令项灰显,不响应鼠标和键盘操作。
    【例 4.2(1)】 沿用上一节的例程 4.1,要求单击【隐藏】命令后,【帮助】菜单灰显,不 能再使用,再次单击【隐藏】命令,【帮助】菜单又恢复。
    首先为【隐藏】命令(Name  属性为 OptionHide)添加 OnClick  事件,事件响应过程为
    OptionHideClick。然后为该过程添加如下代码。
    
    procedure TForm1.OptionHideClick(Sender: TObject);
    begin
    Help.Enabled:=Not Help.Enabled;
    end;
    这样,就可实现上述目的,其效果如图 4.10 所示。
    
    4.4.2 隐藏菜单命令
    
    
    菜单或菜单命令灰显是为了让用户不能对它操作,但是由于
    它的可见性,总会吸引用户的注意,所以有时需要将菜单或菜单 命令项隐藏起来。这可利用菜单命令的 Visible 属性来实现,当该 属性为 True 时菜单命令可见;属性为 False 时,则该菜单命令被 隐藏。
    【例 4.2(2)】将例 4.2(1)中的 OptionHideClick 过程的代码修改为
    如下形式。
    
    
    图 4.10   菜单命令灰显
    
    
    
    procedure TForm1.OptionHideClick(Sender: TObject);
    begin
    Help.Visible:=Not Help.Visible;
    end;
    这样,就可以通过单击【隐藏】命令来控制【帮助】菜单的 显示和隐藏。图 4.11 显示了【帮助】菜单被隐藏的效果。
    
    
    
    
    
    
    
    
    图 4.11   隐藏菜单命令
    
    4.4.3 改变菜单命令文本
    
    在运行程序时,可以让菜单命令根据运行的情况来调整菜单命令的文本内容,这主要 通过菜单命令的 Caption 属性来实现。
    【例 4.2(3)】 在例 4.2(1)中,希望隐藏【帮助】菜单后,将【隐藏】命令改为【显示】命 令,这时可将 OptionHideClick 过程的代码修改为如下形式。
    
    procedure TForm1.OptionHideClick(Sender: TObject);
    begin
    Help.Visible:=Not Help.Visible;
    if Help.Visible then
    OptionHide.Caption:='隐藏'
    else
    OptionHide.Caption:='显示'
    end;
    图 4.12 显示了修改菜单命令文本的效果。
    
    4.4.4 菜单命令单选标记
    
    
    所谓单选菜单命令就是一组相互排斥的菜单命令,用户只能
    在该组命令中选择一个。
    图 4.12   修改菜单命令文本
    
    设计单选菜单命令,必须保证两个条件:首先这一组菜单命令位于同一个下拉菜单或 同一个级联菜单中,而且它们的 GroupIndex 属性必须相同;其次 RadioItem 属性都是 True。 这样,唯一被选中的菜单命令前面就出现一个圆点标记,表示该菜单命令被选中。菜单命 令的 Checked 属性为 True 时,就添加单选标记;为 False 时,取消单选标记。
    【例 4.2(4)】 沿用例 4.2(1),将【左对齐】、【居中】和【右对齐】菜单命令的 GroupIndex
    属性值都设置为 2,将 RadioItem 都设置为 True,则运行时选中 3 个菜单命令中的任一个, 该命令前都会出现一个单选标记,如图 4.13 所示。
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    图 4.13   单选标记
    
    4.4.5 菜单命令复选标记
    
    复选标记是指当用户选中某个菜单命令时,系统会在该菜单命令前添加一个复选标记 “√”。复选标记常用于一些状态设置的菜单命令,如果取消选中,则“√”标记消失。
    
    设置复选标记很简单,只要把菜单命令的 Checked 属性设置为 True,该菜单项就有复 选标记,Checked 属性为 False 时,没有复选标记。
    【例 4.2(5)】 在例 4.2(1)中,希望【隐藏】命令前显示复选标记,【帮助】菜单恢复显示 时,则取消【隐藏】命令前的复选标记,可将 OptionHideClick  过程的代码修改为如下 形式。
    
    procedure TForm1.OptionHideClick(Sender: TObject);
    begin
    Help.Visible:=Not Help.Visible; OptionHide.Checked:= Not OptionHide.Checked;
    end;

    

 

相关新闻

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》