delphi程序设计.ppt_第1页
delphi程序设计.ppt_第2页
delphi程序设计.ppt_第3页
delphi程序设计.ppt_第4页
delphi程序设计.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第4章 菜单 工具栏和MDI应用程序 主要内容 4 1菜单4 2工具栏 状态栏4 3消息框与信息函数4 4输入框与输入函数4 5MDI多文档界面程序设计4 6多文档学生档案管理系统 4 1菜单 Delphi提供了两种菜单组件 位于Standard选项卡上 主菜单 MainMenu 弹出式菜单 PopupMenu 一 主菜单设计 1 菜单设计器MainMenu组件举例创建一个简单的菜单 文件 打开 保存 关闭编辑一个窗体可建多个菜单 需指定其menu属性 2 菜单项的状态特征 快捷键 设置caption属性 如 打开 O 热键 设置shortcut属性菜单项分组多级菜单复选项菜单 设置checked属性单选菜单项组 设置RadioItem GroupIndex AutoCheck属性菜单无效 Enabled属性菜单项隐藏 Visible属性菜单命令 可直接写代码 一般结合ActionList组件使用 综合举例 建立 学生档案管理 窗体的主菜单 3 菜单模板 我们在菜单设计中 经常要设计同种样式和作用的菜单项 有些菜单格式都成了约定俗成的标准 所以 可以让Delphi自动创建某些格式的菜单项 这就是使用菜单模板 使用菜单模板可以给用户节省大量的时间 而且菜单命令的命名 热键的设置都非常的规范 当然 在某些场合菜单模板创建的菜单不能满足用户的要求 还需要自己修改 使用菜单模板 使用菜单模板 执行如下操作 1 在窗体中插入MainMenu组件 2 双击MainMenu组件 进入主菜单设计器窗口 3 右击要插入菜单模板的空白主菜单项或空白菜单命令 4 选择 InsertFromTemplate 命令 5 选择所需的菜单 6 单击 OK 按钮 完成插入菜单模板 创建菜单模板 如果要创建菜单模板 执行如下操作 1 在窗体中插入MainMenu组件 2 双击MainMenu组件进入主菜单设计器 3 在主菜单设计器中设计所需菜单 4 右击已经创建好的主菜单 5 选择 SaveAsTemplate 6 输入要保存的模板名称 7 单击 OK 按钮 删除菜单模板 1 打开主菜单设计器 2 右击主菜单设计器打开一快捷菜单 3 选择 DeleteTemplates 命令 4 选择要删除的菜单模板 5 单击 OK 按钮 4 菜单命令项图标 在Delphi中 向菜单命令添加图标的方法 1 添加一个图像列表 ImageList 组件 2 设置菜单的Images属性 菜单命令项的ImageIndex属性 注意 添加图标后 使用菜单命令的Checked属性时 将不会开出现 标记 而是菜单命令图标下凹 举例 5 行为列表ActionList组件 在组件面板的standard中可实现多个组件共同执行一个行为 二 弹出式菜单 又称快捷菜单 可以更方便操作和某些命令项的选取快捷菜单组件 PopupMenu 快捷菜单的设计 添加PopupMenu组件到窗体中 双击PopupMenu组件打开菜单设计器 设计的过程与主菜单设计完全相同设置使用快捷菜单的组件的PopupMenu属性 指定为要打开的快捷菜单名称 4 2工具栏与状态栏 工具栏一般位于窗口的项部 提供快捷的操作方式 状态栏一般位于窗口的底部 用于显示当前的状态及一些提示信息 一 工具栏 1 工具栏的设计方法 1 用面板Panel 快捷按钮SpeedButton构成工具栏 2 使用工具栏组件ToolBar设计工具栏 3 使用CoolBar组件设计工具栏 4 使用控件栏组件ControlBar设计工具栏 2 工具栏组件ToolBar 在win32组件面板中 步骤如下 1 往窗体中添加一个ToolBar组件 2 添加快捷按钮并设置按钮的属性 style Grouped MenuItem Hint 4 为按钮提供位图 5 往工具栏中添加其他组件 6 链接按钮的OnClick事件或编写代码 举例 3 其他组件 1 CoolBar容器组件 可以包括多个工具栏 2 控件栏组件ContrloBar特点 可以管理多个控件 允许用户在运行时拖动并重新布置工具栏 二 状态栏 在win32组件页中 1 状态栏的基本属性 Align属性 一般设为alBottom 使它靠窗体的底部对齐 SimplePanel属性 为False时 可有多个显示区域 为True时 状态栏将只有一个显示区域 显示在SimpleText中设定的文本 Panels属性 状态栏子面板的常用属性 2 动态刷新状态信息 1 显示系统时间 可在Timer1的onTimer事件中写入 StatusBar1 Panels 3 Text TimeToStr Time 2 显示当前光标的位置 3 修改当前状态 4 3消息框与信息函数 所谓消息框 指的是显示提示信息的一些简单对话框 这些对话框无须用户任何输入 只需简单地确认或取消即可 消息框的显示无须使用对话框组件 Delphi用函数和过程用来显示消息框 1 ShowMessage过程 procedureShowMessage ConstMsg String 用于显示一个带有 OK 按钮的消息框 其中Msg为显示内容 2 MessageDlg函数 functionMessageDlg ConstMsg String Dlgtype TmsgDlgType Buttons TMsgDlgButtons HelpCtx Longint Word 用于在屏幕中央显示提示信息 显示内容 消息框的类型 mtInformation mtError mtWarning mtConfirmationmtCustom 按钮类型 mbYes mbNombOk mbCancelmbHelp mbAbortmbYesNoCancel mbRetry mbIgnore等 返回值 mrYes mrNo mrOk mrCancel mrHelp mrAbort mrRetry mrIgnore mrNone 例如 窗体关闭前提示 确定要退出吗 4 4输入框与输入函数 所谓输入框 指的是带有一个编辑框 用于输入简单字符串信息的一些简单对话框 输入框的显示同样无须使用对话框组件 Delphi提供了两个函数用于显示输入框 1 InputBox函数 functionInputBox ConstACaption String Aprompt Adefault String String 参数说明 ACaption参数 对话框的标题 APrompt参数 编辑框的输入提示 ADefault参数 编辑框中的缺省字符串 用于显示带有 个编辑框的对话框 当用户按 OK 按钮返回时 返回值为编辑框中的输入内容 当用户按 Cancel 按钮返回时 返回值为缺省字符串 举例 前例中再启动主窗体前 显示输入对话框 输入用户名并在状态栏显示 2 InputQuery函数 functionInputQuery ConstACaption String APrompt String VarValue String Boolean ACaption参数和APrompt参数的含义与InputBox函数相同 不同之处是 当用户按 OK 按钮返回时 返回值为True 编辑框中的输入内容被赋给Value字符串 当用户按 Cancel 按钮返回时 返回值为False 缺省字符串被赋给Value字符串 修改前例实现相同操作 4 5MDI多文档界面程序设计 多文档界面MDI 全称MultipleDocumentInterface单文档界面SDI 全称SingleDocumentInterface 一 TForm类和MDI窗体 1 TForm类有模式的 调用ShowModal方法无模式的 调用Show方法2 MDI应用程序的结构主窗口 FormStyle属性为fsMDIForm子窗口 FormStyle属性为fsMDIChild如果FormStyle属性设为fsNormal 表示是一般Form 一个MDI程序只能有一个主窗体 FormStyle属性指定为fsMDIForm 同时把这个Form指定为程序的主Form 要创建一个 子 Form 首先要使用 File 菜单上的 NewForm 命令向项目中加入一个新的Form 把这个Form的FormStyle特性设为fsMDIChild 二 创建子窗体 1 启动时静态建立子窗体在 ProjectOptions 对话框的 Forms 页 Auto CreateForms 框中列出的是由Delphi自动创建的窗体如果希望子窗体不在启动时自动建立 而是在运行期动态创建 就应当把Form从 Auto CreateForms 列表框中移到 AvailableForms 列表框中 2 运行期动态建立子窗体如果一个 子 Form没有出现在 Auto createForms 列表框中 这意味着必须在运行期动态创建这个Form的实体 方法 先定义子窗体对象 再创建这个对象 举例 三 MDI的属性和方法 1 MDI的主要属性 1 WindowMenu属性 2 ActiveMDIChild属性 只读 获得当前活动的子窗口 3 MDIChildren和MDIChildCount属性MDIChildren属性保存了主窗口中的所有子窗口 它是一个数组 下标类型为整型 从0开始 元素类型为TForm 子窗口的顺序与其生成的顺序正好相反 MDIChildCount属性记录着子窗口的个数 如 MDIChildren MDIChildCount 1 返回第1个生成的子窗口 2 MDI的主要方法 1 Next和Previous方法Next和Previous方法用于改变当前获得焦点的子窗口 2 Cascade和Tile方法设置子窗口的层叠 分隔排列方式 3 ArrangeIcons方法排列最小化的子窗口图标 使得它们整齐排列且不互相重叠 四 MDI的菜单设计 1 合并菜单当创建子窗口之后 系统就将主窗口和子窗口的菜单合并起来显示 合并后的显示次序是按照菜单项的GroupIndex属性值自动从小到大排列的 如果有两个的GroupIndex相同 合并后 子窗口的菜单项将替换主窗口的菜单项 2 建立 窗口 菜单可以采用2种方式 1 建立菜单项并调用方法例如 层叠方式排列子窗口FormMain Cascade 2 使用ActionList组件将系统定义的Window组的WindowCascade等行为加入到ActionList组件中 相应的菜单项只要将其Action属性值选择某个行为 如WindowCascadel 即可 而不需写程序 五 Screen变量 Screen变量属于TScreen类 系统自动创建 记录和控制着整个屏幕的状态 主要属性 ActiveControlCursorCursorsFormCountFonts 六 Application变量 任何基于窗体的Delphi程序都包含一个全局变量Application 它的类型是TApplication TApplication封装了一些属性和方法 通过菜单Project Options Application页 设置一些有关TApplication的属性 1 TApplication类的主要属性 1 ExeName属性ExeName属性能够返回应用程序的全路径和文件名 这个属性在运行时是只读的 例如 MainForm Caption ExtractFileName Application ExeName 2 MainForm属性MainForm是一个只读的属性 只能在设计时通过Project Options对话框上的Forms页把一个窗体指定为主窗体 3 Icon属性Icon属性用于设置当应用程序最小化时代表应用程序的图标 可以修改Icon属性来改变应用程序的图标 4 Title属性 5 HelpFile属性用于指定帮助文件的文件名 6 ShowMainForm属性这是一个布尔类型的属性 它控制并指示在启动程序时是否显示主窗体 如在 dpr文件中将主程序改为如下代码 beginApplication Initialize Application ShowMainForm false Application CreateForm TForm1 form1 Ap

温馨提示

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

评论

0/150

提交评论