Microsoft Word - 03.doc

Size: px
Start display at page:

Download "Microsoft Word - 03.doc"

Transcription

1 第 3 章常见组件编程 从本章开始, 将为读者介绍 Delphi 编程的一些基本方法 通过这一部分的学习, 读者可以了解开发 Windows 环境下应用程序的一些关键技术, 并可以方便 快捷地开发一般的应用程序 为了简化编程工作,Delphi 提供了许多功能强大的函数和类 其中很重要的一部分就是组件类 本章将重点介绍常见组件及其编程应用 3.1 窗体和组件 概述现在深入普及的 Windows 操作系统中, 方便快捷的人机交互界面主要是通过窗体和对话框实现的 在 Delphi 中, 这些窗体和对话框就是程序设计阶段的窗体,Delphi 的可视化设计工作就是在窗体中进行的 组件所对应的类为 TComponent, 所有的组件都是由这个类派生来的 通常, 窗体中会有文字输入 滚动条 复选框 单选框 按钮等一系列组件, 通过这些直观易懂的组件, 可以方便的实现多种多样的功能 在 Delphi 中, 这些运行期间出现在窗体和对话框中的组件称为可视组件, 对应 TControl 子类 在窗体中, 不仅可以放置组件, 还可以放置一些运行期间非可视的组件, 对应其它的 TComponent 子类 这些不可视组件集中地实现了一些特殊的功能 比如, 时钟控制等功能 组件 ( 可视组件 ) 可分为两类 : 窗体组件和图形组件 窗体组件对应 TWinControl 子类, 是基于系统窗体的可视组件, 具有窗体句柄, 可作为输入焦点并含有其它组件, 例如 TEdit 组件 ; 图形组件对应 TGraphicControl 子类, 没有窗体句柄, 不可作为输入焦点, 也不能含有其它组件, 例如 Label 组件 图形组件比窗体组件使用的资源少, 尤其在组件数量比较多的情况下最好使用图形组件 组件组的关系如图 3-1 所示 窗体和组件的关系非常密切 从直观的角度来讲, 窗体就像一个容器, 其中包容了可视组件和非可视组件 从程序代码的角度来看, 一个窗体对应一个源程序文件, 其中定义了窗体中所有组件的对象 窗体和组件之间除了具有上述的不同点之外, 还具有一些相同点 例如, 从面向对象编程的角度来看, 所有组件都是 TComponent 类派生类的一个对象 窗体类 (TForm) 也是从 TComponent 类派生的, 所以可以将窗体看成一个特殊的组件 有些组件也具有窗体的 容器 属性, 也就是在这些组件中可以放置其它组件, 通常这些组件称为容器组件 例如在 TLabel 组件中可以放置 TEdit 组件,TLabel 组件就是一个容器组件 Delphi 中的所有组件是在可视组件库 (Visual Component Library, 缩写为 VCL) 中封装的 可视组件库是 Delphi 中非常重要的一部分, 不仅封装了所有组件对应的类, 还封装了一

2 第 3 章常见组件编程 71 些通用的类 所有的这些类都是由一个基类派生出来的, 也就是 TObject 类 了解可视组件库对于学习组件 使用 Delphi 很有帮助 图 3-1 组件组的图示说明 窗体 (Form) 下面将介绍一些窗体的主要属性 方法和事件 根据下面对相关属性的简要介绍, 读者可以结合对象编辑器中的相关选项加深对窗体的认识 1.BorderIcons 属性属性 BorderIcons 用来指定窗体标题栏上的图标, 可以设置为下列数值 : bisystemmenu 可以通过点击标题栏左边的图标或在标题栏上单击鼠标右键来显示控制菜单 控制菜单有时也称为系统菜单 biminimize 在标题栏右边显示最小化按钮 bimaximize 在标题栏右边显示最大化按钮 bihelp 在标题栏右边显示帮助按钮 只有窗体的 BorderStyle 属性设置为 bsdialog 或者窗体属性 BorderIcons 中不包括 biminimize 和 bimaximize 时,biHelp 设置才有效 4.BorderStyle 属性属性 BorderStyle 用来设置窗体的外观和边框, 可以指定为下面的数值 : bsdialog 窗体为标准的对话框, 边框大小不可以改变 bsnone 窗体没有边框, 也没有标题栏, 边界的大小不可以改变 bssingle 窗体具有单线边框, 大小不可以改变 bssizeable 边框大小可变的标准窗体 bssizetoolwin 风格与 bssizeable 相同, 只是标题栏比较小 对于这种风格的窗体, 属性 BorderIcons 中设置的 biminimize 和 bimaximze 也不起作用 bstoolwindow 风格与 bssingle 相同, 只是标题栏比较小 另外, 对于这种风格的窗体, 属性 BorderIcons 中设置的 biminimize 和 bimaximize 并不起作用 注意 : 窗体属性 BorderIcons 的设置与属性 BorderStyle 的设置可能会发生互斥, 例如属性 BorderIcons 的 biminimize 和 bimaximize 会与属性 BorderStyle 的 bsdialog 冲突, 属性 BorderIcons

3 72 第 3 章常见组件编程 的 bihelp 会与属性 BorderStyle 的 bssizeable 冲突 3.Caption 属性属性 Caption 用来指定窗体标题栏中的说明文字 通常, 对于多文档界面 (MDI) 应用程序, 当主框架窗体中的子窗体最大化显示的时候, 应用程序的标题栏中显示的内容为 < 应用程序名 >-< 打开的文档名 > ; 当子窗体非最大化窗体显示的时候, 主框架窗体中只显示应用程序的名称, 子窗体有自己的标题栏, 其中显示该窗体打开的文件名 所以, 当窗体的显示方式发生了改变后, 应该立即改变标题栏中的内容 4.Font 属性属性 Font 用来设置窗体中文字的字体 颜色和字号等 如果将窗体中组件的属性 ParentFont 设置为 True, 那么该组件的字体设置就与其父级窗体的字体设置完全一样了 所以在程序设计的时候, 为了保持整个系统风格的统一, 应该使工程中的窗体风格尽量一致, 可以先设置窗体的 Font 属性, 然后将窗体中所有组件的 ParentFont 属性设置为 True 就可以了 一般不要单个地对窗体中的组件进行 Font 属性的设置 5.FormStyle 属性属性 FormStyle 用来指定窗体的类型 根据不同的窗体类型,Windows 环境中的应用程序可以分为下面的三类 : 单文档界面 (SDI) 应用程序这种应用程序同时只能打开一个文档 例如 Windows 系统附件中的 画图 程序, 只能同时编辑一个图像文件 多文档界面 (MDI) 应用程序一般这种应用程序具有一个父窗体和多个子窗体, 可以同时打开多个文档, 分别在多个子窗体中显示 例如常用的图像处理软件 PhotoShop 等, 可以同时编辑多个图像 对话框应用程序这种应用程序的主界面基于一个对话框类型的窗体 例如 Windows 系统附件中的 磁盘扫描 程序 此外, 有些应用程序在运行期间可以总是显示在桌面的最前端, 例如在 Windows 98 中按下系统热键 Ctrl+Alt+Del, 激活的关闭程序窗体会一直显示在其它应用程序的窗体之上, 除非退出该程序 属性 FormStyle 可以分别实现上面所说的各种类型的应用程序, 取值如下 : fsnormal 普通类型的窗体 既不为 MDI 应用程序的父级窗体, 也不为 MDI 应用程序的子窗体 fsmdichild MDI 应用程序中的子窗体 fsmdiform MDI 应用程序中的父窗体 fsstayontop 在桌面最前端显示的窗体 6.Icon 属性属性 Icon 用来指定标题栏中显示的图标 单击对象编辑器 Icon 属性右边的省略号按钮, 在弹出的 Picture Editor 对话框中点击

4 第 3 章常见组件编程 73 Load... 按钮, 就可以装入一个制作好的图标 使用 Delphi 自带的工具 Image Editor 可以方便地制作图标 通过菜单 Tools/ Image Editor 可运行 Image Editor 编辑制作图标 如图 3-2 所示 如果需要动态地改变窗体 Form1 中的图标, 可以调用下面的过程 : Form1.Icon.LoadFromFile('Icon1.ICO'); 其中 Icon1.ICO 是要在窗体 Form1 标题栏中显示的图标文件名 7.Name 属性属性 Name 用来标志工程中的窗体 通常, 应该在系统开发的设计阶段就将整个工程中所有窗体的名称确定, 然后在编程阶段根据设计文档修改窗体的 Name 属性 一般情况下, 不要在程序运行期间通过代码修改 Name 属性 图 3-2 使用 Image Editor 编辑制作图标 8.Position 属性属性 Position 用来描述窗体的大小和显示的位置 可以是下列数值之一 : podesigned 窗体显示的位置和大小与设计期间的一致 podefault 窗体每次显示时, 与上次比较, 往右下角移动了一些位置 ; 窗体的高度和宽度由 Windows 决定 podefaultposonly 窗体以设计期间的大小显示, 窗体显示的位置较上次向右下角移动了一些 如果窗体以设计时的大小不可以在屏幕上完全显示, 就移动到屏幕的左上角显示 podefaultsizeonly 窗体以设计期间的位置显示, 窗体的大小由 Windows 决定 poscreencenter 窗体以设计期间的大小显示, 窗体显示的位置总在屏幕的中间 考虑多个监示器时位置的调整

5 74 第 3 章常见组件编程 podesktopcenter 窗体以设计期间的大小显示 ; 窗体显示的位置总在屏幕的中间 不考虑多个监示器时的调整 9.WindowsState 属性属性 WindowsState 用来描述窗体显示的状态, 可以取下面的三个数值之一 : wsnormal 窗体以普通状态显示 ( 既不是最大化状态, 也不是最小化状态 ) wsminimized 窗体以最小化状态显示 wsmaximized 窗体以最大化状态显示 组件 (Component) 在 Delphi 编程的过程中, 要经常使用到组件 通过可视组件, 可以在窗体中方便地构建与用户交互的界面 另外一些不可视的组件可以为程序增加许多强大的功能 在 Delphi 集成开发环境的组件栏中, 按照功能分类罗列了大量的组件, 熟悉它们可以提高开发程序的进度 此外, 还可以根据需要, 调整组件栏中组件的位置, 或者在组件栏中添加 删除组件, 还可以为了满足一些特殊需求而创建新的组件, 并把它们添加到组件栏中 表 3-1 所示是 Delphi 6.0 中常用的组件栏 表 3-1 Delphi6 中的主要组件栏作用组件夹功能 Standard 标准 Windows 组件 框架 菜单等 Additional 一些专用的 Windows 组件 Win32 32 位 Windows 系统中的公用组件 System 进行系统操作的组件 ( 包括定时器 多媒体和 DDE 等 ) Data Access 操作数据库的组件, 如访问数据库 表格 查询和报表等 Data Controls 进行数据库控制的组件 ADO 通过 ActiveX Data Objects 访问数据库的组件 InterBase 提供与 InterBase 直接联接的组件 MIDAS 开发多层数据库应用程序的组件 InternetExpress 开发 InternetExpress 应用程序 (Web 服务器应用程序和客户端多层数据库应用程序 ) 的组件 Internet 开发 Web 服务的应用程序 FastNet 提供 Internet 操作的一些组件 Decision Cube 为应用程序提供多维数据分析的组件 QReport 快速报表组件 Dialogs Windows 通用对话框组件 Win 3.1 提供与 Windows 3.1 兼容的一些组件 Samples 一些定制组件的例子 Servers 通用 COM 服务器组件下面是 Delphi 中常用的几类可视组件 :

6 第 3 章常见组件编程 75 文本组件 特殊输入组件 按钮及其分类组件 列表组件 分组组件 信息反馈组件 表格显示组件 图形显示组件各种可视组件的详细内容将在本章后面的几节中进行介绍, 并用相应的例程加以说明 组件的使用在窗体中使用组件主要包括 : 1. 添加组件向窗体中添加组件的方法很多, 可以根据习惯和编程的方便精心选择, 主要的添加方法有 : 在组件栏中需要添加的组件上单击一下鼠标左键, 鼠标形状发生改变 然后在窗体中某个位置按下鼠标左键并拖动, 松开鼠标左键后, 组件就以刚才拖动的大小出现在窗体中, 接着也可以对组件的大小进行调整 在组件栏中需要添加的组件上单击一下鼠标左键, 鼠标形状发生改变 然后在窗体中再单击一下鼠标左键, 就将组件添加到窗体中了 这时添加的组件以固定的大小出现在窗体中, 接着可以对组件的大小进行调整 在组件栏中双击组件, 则被双击的组件会自动添加到当前默认的窗体或容器组件中 在窗体中选择一个组件或多个, 通过菜单命令 Edit/Copy 复制到剪贴板中, 然后通过菜单命令 Edit/Paste 将剪贴板中的组件粘贴到窗体中 粘贴出来的组件与原组件具有基本一致的属性, 如大小 字体等 也可以通过快捷键 Ctrl+C 将选中的组件复制到剪贴板中, 通过快捷键 Ctrl+V 将剪贴板中的组件粘贴出来 如果在工具栏中添加了剪切 (Cut) 复制(Copy) 和粘贴 (Paste) 按钮, 可以更快地进行操作 2. 删除组件如果要删除窗体中的某个组件, 可以先选中该组件, 然后单击键盘上的 Delete 键就可以了 也可以通过主菜单中的 Edit/Cut 命令实现 可以一次选中多个组件按 Delete 键进行删除操作 一次选定多个组件的方法有 : 按下 Shift 键的同时, 利用鼠标左键单击各个组件 同时被选中的组件四周将会出现 8 个灰色的正方形黑点 在窗体上没有组件的地方按下鼠标左键并拖动, 将会出现一个虚框 松开鼠标左键后, 该虚框 触及 到的组件就被选中了

7 76 第 3 章常见组件编程 3. 调整组件改变组件在窗体中的大小和位置可以采用下面的方法 : (1) 鼠标操作利用鼠标左键单击组件, 则将组件选中, 这时被选中的组件四周出现 8 个正方形黑点 在组件上按下鼠标左键并拖动, 可以方便地改变组件的位置 如果将鼠标移动到某个黑点上, 鼠标形状将变成上下拖动的形状, 此时可以按下鼠标左键进行拖动, 改变组件的大小 (2) 键盘操作利用键盘的上 ( ) 下( ) 左( ) 右( ) 移动键可以在窗体中选择组件 选中某个组件后, 通过 Ctrl+ Ctrl+ Ctrl + Ctrl + 可以改变组件的位置, 通过 Shift+ Shift+ Shift+ Shift+ 可以改变组件的大小 一般利用鼠标进行粗略地定位或大小设置, 利用键盘进行精细地定位或大小设置 也可以利用剪贴板对同一类型的组件进行复制, 获取相同的大小 (3) 统一操作先选中几个组件, 然后通过主菜单 Edit/Size... 命令将打开 Size 对话框, 如图 3-3 所示 在 Size 对话框中选择宽度和高度的有关设置 例如, 分别选中 Size 对话框中的 Width/Width 和 Hight/Hight, 在框中填入相应数值 按下 OK 按钮后, 选中的组件的大小就等于所填入数值了 图 3-3 Size 对话框 图 3-4 Alignment 对话框 将多个组件选中后, 也可以同时对它们进行移动和对齐等操作 如果需要对多个组件进行对齐, 可以通过主菜单的 Edit/Align... 命令弹出 Alignment 对话框, 如图 3-4 所示 在 Alignment 对话框中, 对选中的组件进行水平和垂直两个方向的对齐操作 例如在 Alignment 对话框中选中 Horizontal/Center in window 项和 Vertical/Center in window 项, 按下 OK 按钮后, 选中的单个组件就位于窗体的中央 如果选中的是多个组件, 则将多个组件作为一个整体进行操作 此外, 也可以通过 Align 工具栏 ( 如图 3-5 所示 ) 对多个选中的组件进行排列 通过菜单命令 View/Alignment Palltte 可以显示 Align 工具栏 图 3-5 Align 工具栏

8 第 3 章常见组件编程 组件属性在窗体中选中单个组件后, 在对象编辑器中就可以对其属性进行设置了 如果单个组件在窗体中不好选中, 则可以在对象编辑器中的对象列表组合框中选择 在对象编辑器中单击鼠标右键, 通过弹出菜单的 Arrange/Category 或 Arrange/Name 可以对属性的排列方式进行设置 如果选中了多个组件, 则可以统一地进行属性设置 这时对象编辑器中出现的属性为选中组件的共同属性 5. 设置可视组件的 Table Order 图 3-6 Edit Tab Order 对话框在对话框中, 可以通过按下 Tab 键, 依次定位到各个具有输入焦点的可视组件 可以通过设置组件的 TabOrder 属性来确定这种定位的顺序 通过主菜单的 Edit/Table Order... 命令弹出 Edit Tab Order 对话框 ( 如图 3-4 所示 ), 在其中的 Controls listed in tab order 项中选中某个组件后, 点击对话框右部的上 下箭头就可以方便地改变该组件的 TabOrder 属性 此外, 也可以在对象编辑器中直接设置组件的 TabOrder 属性 对于一些容器组件, 要对其中的各个组件单独设置 TabOrder 属性 6. 锁定组件一般在窗体中将组件的大小和位置安排好后, 可以将组件锁定, 这样就不会因为误操作而改变已经设置好的大小和位置 可以通过菜单命令 Edit/Lock Controls 将窗体中的组件 锁定 和 解除锁定 7. 组件的事件处理过程在窗体中选中某个组件后, 在对象编辑器的 Events 属性页中就可以创建相应的事件处理过程 双击某个事件右边的下拉式组合框, 则自动创建该组件的事件处理过程, 并将光标定位到代码编辑器中 如果在窗体中双击某个组件, 则会自动生成其默认的事件处理过程 例如, 对于 TEdit 组件来说, 默认的事件就是 OnChange 事件 此外, 在窗体中对组件还可以进行 栅格对齐 左右翻转 和 改变比例 等操作,

9 78 第 3 章常见组件编程 对应的菜单命令分别是 Edit/Align to Grid Edit/Flip Children 和 Edit/Scale... 等 3.2 文本输入类组件 在应用程序的界面上, 往往需要用户输入一些文字, 或者以一定的格式将文本显示给用户, 这时可通过文本组件来实现 TEdit 组件 TEdit 组件可以显示 编辑单独的一行文本, 是常用组件之一, 它的相关类为 TEdit 在使用 TEdit 组件的时候应注意 : AutoSelect 属性可以设置当 Edit 组件获得输入焦点时, 是否自动选中所有的文本 在 Edit 组件中可以输入文字来替换以前的文字, 也可以在以前的文字后面添加新的内容 当用户将输入焦点移动到某个 Edit 组件上时 ( 如通过按下 Tab 键 ), 替换的机会远远大于新添加的机会时, 就可以将 AutoSelect 属性设置为 True, 这样可以方便用户的使用 PasswordChar 属性可以将用户输入的所有字符以同一个字符显示 通常情况下, 用户在 Edit 组件中输入口令的时候, 将输入的字符使用星号 (*) 显示 另外, 还需要提供给用户一个重新输入对口令加以确认的过程 Edit 组件最常用的事件 ( 也是默认事件 ) 为 OnChange, 也就是当 Edit 组件中的文本发生改变的时候, 该事件的处理过程执行 在一些对话框中可以见到这种情况 : 在一个编辑框中输入字符的时候, 另一个编辑框中的内容自动发生改变 只要在第一个编辑框的 OnChange 事件的处理过程中改变第二个编辑框的 Text 属性就可以实现上述过程 TMemo 组件 TMemo 组件可以显示 编辑多行文本 对一些比较长的文本内容可以利用 TMemo 组件来显示 编辑 在使用 TMemo 组件的过程中应注意 : 可以通过 Text 属性来存取文本内容 可以通过 Modified 属性来确定文本内容是否发生了改变 Memo 组件没有从 TCustomEdit 类继承 AutoSelect 属性, 所以不可以使用该属性 TMaskEdit 组件 TMaskEdit 组件可以显示 编辑具有指定格式的文本, 如 6 位数字的邮政编码 固定格式的电话号码等 可以通过 EditMask 属性来设置输入的格式 单击 EditMask 属性右面的省略号按钮, 将弹出 Input Mask Editor 对话框, 在其中可以方便地设置需要的输入要求和格式 通常可以先在右面的 Samples Masks 中选择一项, 然后在 Input Mask 中进行修改

10 第 3 章常见组件编程 79 图 3-7 Input Mask Editor TRichEdit TRichEdit 组件可以显示 编辑具有丰富文本格式 (Rich Text Format) 的文件, 如.rtf 文件 在使用 TRichEdit 组件的时候, 有下面的注意点 : 如果 PlainText 属性设置为 True, 则在 TRichEdit 组件中显示 RTF 文件的时候, 将格式标记以普通文本的方式显示出来 如果 PlainText 属性设置为 False, 则根据 RT F 文件中的格式设置来显示 通常将 PlainText 属性设置为 False 通过方法 Lines.LoadFromFile 和 Lines.SaveToFile 可以方便地存取 RTF 文件 TLabel 组件 TLabel 组件上可以显示一个只读的字符串 通常利用标签组件在窗体上显示静态文本 此外, 将标签组件与其它没有标题的组件相关联后, 可以通过键盘上的 Tab 键使这些组件获得输入焦点 在使用 TLabel 组件的时候应注意 : 通过设置 Caption 属性, 可以改变 TLabel 组件显示的内容 TLabel 组件的 Transparent 属性比较有用 如果将 Transparent 属性设置为 True, 则显示的字符串不会完全挡住下面的组件 例如 TLabel 组件下面有一个 Image 组件, 显示了一个位图, 那么 TLabel 组件的 Transparent 属性设置为 True 后, 在字符的笔划之间将显示下面位图的内容 TStaticText TStaticText 组件上可以显示只读文本, 该组件具有一个 Windows 句柄 TStaticText 组件的用法比较简单, 类似于 TLabel 组件

11 80 第 3 章常见组件编程 图 3-8 文本组件相关类的层次结构图 几点说明在使用文本组件的时候有下面的几点需要说明 : CharCase 属性可以强迫组件中的文本全部为大写字母 全部为小写字母或不强迫改变大小写 CharCase 最初是作为 TCustomEdit 类的属性出现的,TEdit 类将其作为公共属性继承了下来, 所以 Edit 组件具有 CharCase 属性 然而 TCustomMemo 类并没有从 TCustomEdit 类处继承 CharCase 属性, 所以 TMemo 类与 TRichEdit 类就没有 CharCase 属性 后面有一些属性也存在同样的情况 Text( 或 Lines) 属性可以在设计阶段就赋予组件显示的内容 对于 TEdit 组件和 MaskEdit 组件, 在对象编辑器中列举了 Text 属性, 对于 Memo 组件和 TRichEdit 组件却没有列举, 而改成了 Lines 属性 实际上 Memo 组件和 TRichEdit 组件同样具有 Text 属性, 可以通过代码改变 Text 属性的值 ReadOnly 属性指定用户是否可以修改组件中的内容 默认值为 False, 即用户可以修改组件中的内容 MaxLength 属性限制每一行最多可包含的字符数 默认值为零, 表示不由应用程序来限制每行的字符数, 而是由操作系统来确定的 HideSelection 属性可以设置当组件失去焦点时是否高亮度显示选中的文本 3.3 按钮类组件 同菜单命令一样, 按钮组件也可以让用户主动产生一个命令 下面是一些与按钮有关的组件 :

12 第 3 章常见组件编程 TButton 组件 TButton 组件为普通的按钮组件 在使用普通按钮组件的时候应注意 : 如果某个按钮的 Default 属性设置为 True, 则在该视图中按下回车键 (Enter) 后, 将执行该按钮的 OnClick 事件的处理过程 对于有些组件, 如 RichEdit 等, 将不会产生默认按钮的 OnClick 事件 通常在一个窗体中只设置一个默认按钮 TBitBtn 组件 TBitBtn 组件为图形按钮组件 在使用 TBitBtn 组件的时候应注意 : 可以自己制做位图按钮上的图形, 也可以采用 Delphi 指定的一组默认图形 如果自己制作图形, 可以将位图保存在.bmp 文件中, 在设计阶段就可以通过 Glyph 属性将图形显示在位图按钮上 采用 Delphi 指定的一组默认图形, 可以通过 Kind 属性来设置 具体取值可以为 bkcustom bkok bkcancel bkhelp bkyes bkno bkclose bkabort bkretry bkignor e 和 bkall 等, 它们分别具有明显的意义 对于自己制做图形的位图按钮, Kind 属性要设置为 bkcustom NumGlyphs 属性指明该位图按钮使用图形的个数, 可以设置为 1~4 之间的一个整数 如果 Kind 属性不为 bkcustom, 也就是使用 Delphi 指定的一组默认图形时,NumGlyphs 自动设置为 2 对于自己制作图形的位图按钮, 如果只有一个位图, 就将 NumGlyphs 的值设置为 1, 如果设置为 2, 在按钮上只能显示一半的图形 在位图按钮具有多个图形的时候, 位图按钮通常显示的是第 1 个图形 ; 当按钮被按下后, 显示第 3 个图形 ; 当按钮失效后 (Enabled 属性为 False), 显示第 2 个图形 位图按钮包含有几个图形, 可以自己设定, 然后 Delphi 自动将指定的图形在水平方向上进行等分, 并在不同的情况下显示不同的图形 所以在自己制作图形时, 可以将同一个位图按钮的几个图形并排放在一起 TSpeedButton 组件 TSpeedButton 组件为加速按钮组件, 可以组成工具栏 在加速按钮上可以同时显示图形和文字, 用法与位图按钮很相似 TCheckBox 组件组件 TCheckBox 组件为复选按钮组件, 可以组成多项选择 在使用复选按钮的时候应注意 : 可以通过 Alignment 属性设置复选按钮上文字的位置 如果复选按钮为三态的, 也就是可以表达 选中 未选中 和 部分选中 ( 灰色 ) 的概念时, 可以将 AllowGrayed 属性设置为 True 可以在设计阶段就设置好复选按钮的状态 通过 Checked 属性可以将复选按钮设置为 选中 和 未选中 状态, 通过 State 属性可以将复选按钮设置为 选中 未选中 或 部分选中 在同一个窗体中, 尽量将不同的复选按钮分组使用, 将具有相同性质的复选按钮放在一起

13 82 第 3 章常见组件编程 TRadioButton 组件 图 3-9 按钮组件相关类的层次结构图 TRadioButton 组件为单选按钮组件, 可以在多个条件中选择唯一的一个 通常在使用单选按钮时, 总是将其进行分组 在同一组中, 只能同时选中一个按钮, 其余按钮自动取消选中 在实现单选按钮的分组时, 可以有两种方法 : 利用分组框组件 (TGroupBox) 和单选按钮组件 (TRadioButton) 实现 首先向窗体中添加分组框, 然后向分组框中添加单选按钮 这样, 同一个分组框中的单选按钮就自动成为一组 可以通过 TRadioButton 组件的 Checked 属性来确定哪一个单选按钮被选中 利用单选按钮分组框 (TRadioGroup) 实现 可以通过 ItemIndex 属性来确定选中哪一个单选按钮 与上面这些按钮及其分类组件有关的类的层次结构如图 3-9 所示 3.4 列表类组件 TListBox 组件 TListBox 组件可以显示一系列字符串, 用户可以选中其中的一个或多个 在使用列表框的时候应注意 : 可以在设计阶段改变 Items 属性来预先设置列表框的内容, 同时也可以在运行期间通过代码改变列表框的内容 例如向列表框中增加条目 :ListBox1.Items.Add(' 增加的新条目 '), 删除当前选中的一个条目 :ListBox1.Items.Delete(ListBox1.ItemIndex), 清除所有的条目 : ListBox1.Clear 等. 如果将 TListBox 组件的 MultiSelect 属性设置为 True, 就可以一次选中多个条目 如果将 TListBox 组件的 Sorted 属性设置为 True, 可以自动将列表框中的字符串排序

14 第 3 章常见组件编程 TComboBox 组件 TComboBox 组件为组合框组件 组合框由一个编辑框和一个下拉式列表框组成, 可以从多个列表条目中选择一个 在使用组合框的时候应注意 : 组合框有五种类型, 可以通过 Style 属性来设置, 如表 3-2 所示 表 3-2 ComboBox 组件的 Style 属性可取的数值 Style 属性值 CsDropDown CsDropDownList CsSimple CsOwnerDrawFixed CsOwnerDrawVariable 说明在在组合框的编辑框中可以输入, 同时下拉式列表框是一组具有等高度的字符串在组合框的编辑框为只读的, 而且编辑框中的内容只能在从列表框中选择在只有一个编辑框显示, 可以在编辑框中输入字符串, 也可以通过上 下箭头键改变编辑框中的内容在组合框由一个只读编辑框和条目高度相等的列表框组成, 条目的高度由属性 ItemHeight 确定在组合框由一个只读编辑框和列表框组成, 条目的高度可以不同 通过属性 DropDownCount 可以改变列表框显示条目的个数, 默认值为 8 当列表框中的条目大于 DropDownCount 时, 将会在列表框右面自动出现一个滚动条 TTreeView 组件 TTreeView 组件可以显示具有树型层次的数据 TTreeView 在表示树型的数据结构时非常优越 Windows 的资源管理器就是将磁盘或光盘上的目录结构以树的形式表现的 在使用 TTreeView 组件的时候应注意 : 树的生成可以在设计阶段进行, 也就是改变 Items 属性 单击 Items 属性右面的省略号按钮, 在弹出的 TTreeView Items Editor 对话框中可以方便地生成一个树 另外在 TTreeView 组件上单击鼠标右键, 通过菜单 Items Editor 也可以打开 Tree View Items Editor 对话框 在程序运行期间, 可以动态地改变树的内容 可以通过 TTreeView 组件 Items 属性的 Add AddChild Delete 函数等实现 图 3-10 TreeView Items Editor 对话框

15 84 第 3 章常见组件编程 一般在树上的每个条目前会有一个小图标 有时当该条目被选中时, 会显示另一个小图标 在 Delphi 中, 这些小图标由 ImageList 组件 ( Win 32 组件夹的第 3 个组件 ) 进行统一管理, 然后在 TTreeView 组件的 Images 属性中选择一个 ImageList 组件, 接着具体设置每个条目的 ImageIndex 属性就可以选择 ImageList 组件中相应的图标了 如果将 RightClick 属性设置为 True, 则在树的某个条目上单击鼠标右键, 也可以将该条目选中 通常要编写 TTreeView 组件的 OnChange 事件的处理过程, 也就是在树上选择了不同的条目后, 执行该事件的处理过程 TListView 组件 TListView 组件可以显示一些列表的条目, 可以按大图标 小图标 列表或详细资料等四种方式显示 在 Windows 的资源管理器中, 采用了 TListView 组件显示一定目录下的文件信息, 这些文件信息是按大图标 小图标 列表或详细资料等四种方式显示的, 可以通过点击工具栏上的 查看 按钮在四种显示方式之间切换 在使用 TListView 组件的时候应注意 : 在 TListView 中也有一些图标, 添加图标的方法与 TTreeView 组件一样, 也是先定义一个 ImageList 组件, 再将 TListView 组件的 LargeImages SmallImages 和 StateImages 等属性与对应的 ImageList 组件关联 通过对 TListView 组件的 Columns 属性进行设置, 可以确定将要显示的列数, 并且可以为每一列指定文字的对齐方式 显示的宽度 图标索引号等 另外, 对 TListView 组件的 Items 属性进行设置, 可以向组件中预先增加一些记录 在 TListView 组件上单击鼠标右键, 通过菜单 Columns Editor... 和 Items Editor... 也可以分别对上面的两项内容进行设置 在 TListView Items Editor 对话框中, 单击 New Item 按钮将生成每个记录的第 1 列内容, 单击 New SubItem 按钮将生成记录的第 2 列 第 3 列等的内容 图 3-11 列表组件相关类的层次结构图

16 第 3 章常见组件编程 TImageList 组件 TImageList 组件是对位图进行管理的不可视组件 TImageList 组件主要用来对窗体中的图标进行管理, 统一分配索引号, 然后提供给 TTreeView 组件 TListView 组件等 通常应将 Masked 属性设置为 True, 这样, 图标中的背景框就不显示出来, 只显示图标中的必要部分 ; 否则, 显示的图标将是一个矩形图形, 背景色 ( 比如青色 ) 也将显示出来 TCheckListBox 组件 TCheckListBox 为复选按钮列表框组件, 在列表框中可以有一列或多列复选按钮 可以通过 TCheckListBox 组件的 Items 属性, 在设计阶段添加 修改列表内容 在运行期间, 可以通过下面的代码对列表内容进行修改 : (1) 增加一个新的复选列表条目 : CheckListBox1.Items.Add(' 新的复选列表条目 '); (2) 在索引号为 0 的复选列表条目前的方框中显示一个勾号 : CheckListBox1.Checked[0]:=True; (3) 判断索引号为 1 的复选列表条目是否被选中, 也就是该条目被高亮度显示 : if (CheckListBox1.Selected[1]) then ShowMessage(' 条目 1 被选中 ') ; TDateTimePicker 组件 TDateTimePicker 组件可以实现日期或者事件的快速输入 在使用 TDateTimePicker 组件的时候应注意 : 如果 Kind 属性设置为 dtkdate, 则输入的是日期 ; 如果 Kind 属性设置为 dtktime, 则输入的是时间 在输入的是日期的情况下, 修改 DateFormat 属性可以设置日期的格式, 有两种格式 : dtlong ( 长日期型 ) 和 dtshort( 短日期型 ) 3.5 表格类组件 表格显示组件可以用来显示表格化的数据, 在下面我们逐一进行介绍 TDrawGrid 组件 TDrawGrid 组件可以在表格中显示已知结构的数据 通过 FixCols 属性的设置, 可以确定有几列的内容不随水平方向的滚动条移动位置 通常, 将 FixCols 属性设置为 1, 左边第 1 列就不受水平方向的滚动条控制而一直显示, 这 1 列就可以作为关键的说明而存在 同样, FixRows 属性也具有类似的功能 在 Options 属性左边有一个加号, 双击 Options 属性将其展开, 在下拉的属性中可以对许多方面进行设置, 例如是否可以编辑单元格 是否可以改变一列的宽度 是否可以选定一行或者是否可以利用鼠标移动一行等

17 86 第 3 章常见组件编程 图 3-12 表格组件相关类的层次结构图 TStringGrid 组件 TStringGrid 组件可以以表格的形式显示一系列字符串 TStringGrid 组件比 TDrawGrid 组件更常使用 在使用 TStringGrid 组件的时候应注意 : 可以通过改变 TStringGrid 组件的 ColCount RowCount 属性来获得行数和列数 当然, 在运行期间也可以动态地改变这两个属性值 通过 TStringGrid 组件的 Cells[Column,Row] 属性可以获得行数为 Column, 列数为 Row 的单元的内容, 也可以为其赋值 TDBGrid 组件 TDBGrid 组件可以显示数据库中的数据集合 TDBGrid 组件的用法将在数据库部分进行介绍 3.6 刻度和进度类组件 刻度和进度相关类的结构如图 3-13 所示 图 3-13 刻度和进度组件相关类的层次结构图

18 第 3 章常见组件编程 TProgressBar 组件 TProgressBar 组件为进度条组件, 可以动态地显示一个过程的进度 如果一项工作进行的时间超过了几秒钟, 就需要以一定的方式告诉用户 : 程序正在运行, 系统没有死机, 请等待, 并通过图形直观的显示进程的速度 进度条组件 (TProgressBar) 可以实现上述功能 通常, 我们必须知道整个工作的量, 然后在对话框中或者状态条中显示 TProgressBar 组件, 根据工作的进度, 动态地改变 TProgressBar 组件的 Position 属性 另外,TProgressBar 具有 Max 和 Min 属性, 用来表示进度条所表示的最大值和最小值 通常, Max 设置为 100, Min 设置为 0,Position 属性的初始值设置为 0 这样, 就将整个工作分成了 100 份, 每完成 1 份, 就将 Position 属性的数值加 TStatusBar TStatusBar 组件为状态条组件, 在其中可以显示一些说明信息 状态条通常放置在窗体的底部, 在上面动态地显示一些信息 例如, 可以显示一些指导用户进行操作的信息 选中状态条组件后, 在上面单击鼠标右键, 通过菜单命令 Panels Editor..., 将弹出一个状态条的编辑窗体, 例如 Editing TStatusBar1.Panels 窗体 窗体具有一个工具栏, 第一个按钮为 Add New, 可将状态条分成一些不同的区域 还可以改变不同区域的宽度 显示的文字或者风格 3.7 分组组件 在窗体中将交互信息分成不同的组, 可以便于用户进行操作 Delphi 中提供了下面的一些分组组件 TGroupBox 组件 GroupBox 组件为标准的分组框组件 如果要将几个组件放在一个 TGroupBox 组件中, 必须先在窗体中放置这个 TGroupBox 组件, 然后选中该 TGroupBox 组件, 再添加其它组件 TRadioGroup 组件 TRadioGroup 组件为单选按钮分组框组件 通过 TRadioGroup 组件可以快速生成一组单选按钮 通过 Items 属性, 可以预先设定单选按钮 Columns 属性可以设置分组框中的列数, 各个按钮之间的距离会自动设置成等间距的 TPanel 组件 TPanel 组件是一个可视化及灵活性都比较好的分组框组件 在窗体中显示图形的时候, 一般先添加一个 TPanel 组件, 然后在上面再添加 Image 组件 这样在图形显示的时候, 可以以 Panel 组件的边框做边界 另外, 可通过设置 BevelInner 属性和 BevelOuter 属性来改变 TPanel 组件的边框样式 TScrollBox 组件 TScrollBox 组件为带有滚动条的分组框组件 如果 TScrollBox 组件中的其它组件放置的位置超出了 TScrollBox 组件的边界, 则会自动出现水平方向的或垂直方向的滚动条, 通过滚动

19 88 第 3 章常见组件编程 条, 可以看到其它组件超出边界的地方 TTabControl 组件 TTabControl 组件为标签组件, 类似于分页组件, 但一般多个标签只对应于一个页 从表面上看,TTabControl 组件与 PageControl 组件非常相似, 但在使用的时候, 它们之间的差别非常明显 : 一个 TTabControl 组件只能对应一个页, 而 PageControl 组件一个标签就对应一个页 在使用 TTabControl 组件的时候应注意 : 通过修改 Tabs 属性, 可以手工地添加标签的个数 在 Images 属性中与 ImageList 组件关联, 可以为每个标签设置一个图标 改变 Styles 属性, 可以将标签的显示方式设置为标签方式 按钮方式 平板按钮方式 一般在 TTabControl 组件的唯一的一个页中放置一些组件, 当选择了不同的标签后, 只修改这些组件的数值 TPageControl 组件 TPageControl 组件为分页组件, 可以在多个页中显示不同的组件 在使用 TPageControl 组件的时候应注意 : 在 TPageControl 组件上单击鼠标右键, 在弹出式菜单中选中 New Page 命令, 将会增加一个新的页面 对于 TPageControl 组件, 利用鼠标左键单击标签与单击页面位置选中的对象是不同的 如果单击标签, 则选中了整个组件, 同时设置当前激活页, 这时按下 Delete 键, 会把整个组件删除 如果单击页面位置, 则选中了当前激活页的页面, 这时按下 Delete 键, 只删除当前选中的页面 在 TPageControl 组件的不同页面中, 可以加入不同的组件 在选中整个组件的情况下, 改变 ActivePage 属性, 可以改变当前的激活页 另外还可以改变 Images 属性, 使之与某个 ImageList 组件相关联, 为每个页指定一个图标 在选中具体页面的情况下, 可以改变 TPageIndex 属性, 也就是标签排列的顺序会发生改变 另外可以改变 ImageIndex 属性, 指定相关 ImageList 组件中的图标索引值 THeaderControl 组件 THeaderControl 组件在数据分列的时候可以提供一个标题 在使用 THeaderControl 组件的时候应注意 : 改变 Align 属性, 可以指定 THeaderControl 组件放置的位置 默认值为 altop, 组件停靠在窗体的上部, 宽度充满整个窗体 将 Align 属性设置为 alnone, 就可以只有改变 THeaderControl 组件的位置与大小了 选中 THeaderControl 组件并单击鼠标右键, 在弹出式菜单中选择 Sections Editor... 命令, 可以对 THeaderControl 组件的列进行编辑, 指定每列的文字 宽度等

20 第 3 章常见组件编程 容器组件组件在 TGroupBox TPanel TScrollBox TTabControl 和 TPageControl 等组件中都可以放置其它组件, 所以是容器组件 在使用容器组件的时候应注意 : 应先添加容器组件, 然后在选中该容器组件的情况下, 再向其中添加其它组件 如果将容器组件移动 删除, 则其中的组件一起被移动 删除 容器组件中的其它组件只能在该容器组件中显示, 超过容器组件边框的部分将不显示出来 在窗体上设置 Tab 键顺序的时候, 容器组件和它包含的组件是作为一个组件来参加排序的 容器组件中的组件可以独立于容器外的组件进行 Tab 键顺序排列 图 3-14 分组组件相关类的层次结构图 3.8 特殊输入组件 TScrollBar 组件 TScrollBar 组件为滚动条组件 如果一个窗体中的内容一次显示不完, 可以通过滚动条浏览不同的内容 在使用 TScrollBar 组件的时候应注意 : Kind 属性可以设置滚动条是水平的还是垂直的 取值可以是 : sbhorizontal 滚动条是水平方向的 sbvertical 滚动条是垂直方向的 Max Min 属性用来确定滚动条表示数值的范围, 数据类型为 32 位有符号整数类型 (Integer) LargeChange SmallChange 可以设置滚动条数值改变的大小 利用鼠标在滚动条上 ( 但不是在滚动条的滑动按钮上 ) 单击左键, 滚动条上滑动按钮的位置将发生比较大的变化

21 90 第 3 章常见组件编程 而如果只在滚动条两端的上下按钮上单击左键, 则滑动按钮的位置将发生比较小的改变 LargeChange 表示滑动按钮在滚动条上的位置发生比较大的变化时的数值, SmallChange 则表示滑动按钮在滚动条上的位置发生比较小的变化时的数值 LargeChange 和 SmallChange 为 1~32767 之间的整数 此外, 当焦点定位在滚动条上时, 还可以使用 PageUp(PgUp) PageDown(PgDn) Home 和 End 等键快速地改变当前位置 通常, 滚动条的位置发生 LargeChange 改变时, 对应窗体中的内容正好翻过一页 ( 或一屏 ) 而滚动条的位置发生 SmallChange 改变时, 对应窗体中的内容正好翻过一行 Position 属性表示了滚动条当前的位置 TTrackBar 组件 TTrackBar 组件可以从一个连续的范围内选择一个数值 TTrackBar 组件与 TScrollBar 组件有许多相似之处, 也有许多不同之处 在使用 TTrackBar 组件的时候应注意 : Frequency 属性表示每隔几个数值显示一个刻度 LineSize 属性与 PageSiz 属性对应, 表示比较小的变化时位置的改变 如通过按下 或 等键后位置的改变 PageSize 属性表示比较大的变化时位置的改变 如通过按下 PageUp(PgUp) 或 PageDown (PgDn) 等键后位置的改变 SliderVisible 属性用来设置是否显示滑动按钮 ThumbLength 属性表示滑动按钮的宽度 ( 或高度 ) TickMask 属性用来指定标尺显示的位置 可以为下面的三个数值 : tmbottomright 标尺的位置的右面 ( 或下面 ) tmtopleft 标尺的位置的左面 ( 或上面 ) tmboth 在 TTrackBar 组件两边都显示标尺 图 3-15 特殊输入组件相关类的层次结构图

22 第 3 章常见组件编程 TUpDown 组件在 TUpDown 组件中通过鼠标点击上下箭头可以改变相关联的组件 ( 如 Edit 组件 ) 中的数值 在使用 TUpDown 组件的时候应注意 : Assosiate 属性指定与 TUpDown 组件关联的组件, 可以通过下拉的组合框进行选择 Increment 属性指定通过 TUpDown 组件而每次增加或减少的步长 Orientation 属性确定组件的方向, 可以取下面的两个值之一 : udhorizontal 水平方向, 箭头左右指向 udvertical 垂直方向, 箭头上下指向 Thousand 属性可以设置当数值超过 999 时, 是否在千位后显示一个逗号 Wrap 属性可以设置相关联的组件中的数值是否循环变化 如在最大值的时候, 再按上箭头, 则相关联的组件中数值变为最小值 THotKey 组件 THotKey 组件可以输入 Ctrl/Shift/Alt 与其它键的组合键, 可用来定义热键 THotKey 组件可以在设计阶段指定热键, 也可以在运行期间改变 3.9 菜单的使用 菜单是 Windows 应用程序和用户之间统一的交互方式, 操作方便 简单直观 菜单有多种样式, 如固定式 下拉式和弹出式等 Windows 中的菜单通常由顶层的水平列表项以及分别与各项相连的下拉式菜单所组成, 当用户选择了顶层某个列表项时, 就会弹出其相连的菜单 子菜单 下拉式的子菜单由多个菜单项组成, 可以将多个菜单项进行分组, 把相关的菜单项作为一组, 组与组之间以分隔线隔开 菜单项一般可以分成三种情况 : 一种只是菜单项名称, 这种菜单项直接导致完成某种操作 ; 另一种是菜单项名称后还有省略号, 表示选择它将要弹出一个对话框, 用户需要在对话框中做进一步的工作 ; 还有一种就是菜单项名称后有一个右箭头, 表示选中它后又会弹出一个菜单, 这样就可以形成多级菜单 一般的菜单项具有下面的一些特征 : 在菜单项中定义一个快捷键, 也就是在菜单的说明文字中有一个带有下划线的字符, 这样用户可以用键盘来选择菜单, 大大方便用户的使用 对于顶层的菜单, 只要同时按下 Alt 键和带有下划线的字符键, 就会激活该菜单, 并弹出其子菜单 ; 当子菜单弹出后, 只要按下其中的某个带下划线的字符键, 即可选择该菜单项 对于英文菜单, 可以选择某个具有代表性的字符定义为快捷键, 一般是第一个字母 ; 对于中文菜单, 可在说明文字之后增加一个括号, 括号中添加一个具有代表性的字符定义为快捷键, 一般是该中文对应英文单词中的重要字母 如果要使某个字符带有下划线, 也就是将相应的字母作为快捷键, 可以在该字母前加一个 & 符号, 如 &E, 在菜单中将显示为 E 在同一个子菜单中, 每个菜单项的快捷键不能一样 如果有些菜单项对应的命令是常用命令, 可以考虑在工具栏上创建相应的加速按钮,

23 92 第 3 章常见组件编程 同时在该菜单项前添加一个图标, 图标应该与相应的加速按钮具有相同的图形标志 对于有些菜单项, 还可以定义热键, 也就是定义由 Ctrl Alt 或 Shift 键与某个字符键或功能键的组合, 如 Ctrl+s 组合键通常用来保存文件 ;Ctrl+Z 可以取消上一步操作 定义菜单项时, 可以将功能相近的一些菜单项放在一起作为一组, 同一个子菜单的不同组以分隔条隔开 同组的菜单项可以作为复选菜单存在 ( 可以同时将多个菜单项设置为选中方式 ), 也可以作为单选菜单存在 ( 同时只有一个菜单项可被选中 ) 只要将菜单项的 Caption 属性设置为减号 -, 该菜单项就会以分隔条形式出现 将菜单项分组的另一种方法就是制作多级菜单 在菜单编辑器中选中某个菜单项, 按下 Ctrl + 组合键, 就可以方便地添加多级菜单 可以在设计阶段或运行阶段将某个菜单项的 Checked 属性设置为 True, 即在该菜单项的前面添加了一个勾号或点号 ; 将 Checked 属性设置为 False, 则取消勾号或点号 通常, 这样的菜单项会和工具栏中的某个弹起 / 按下类型的按钮相关联 主菜单在应用程序的标题栏下就是主菜单栏 在主菜单栏中基本上要包括该应用程序中的所有操作 比如说, 在窗体中可以通过右键弹出式菜单实现的操作, 一般在主菜单中也要有相应的菜单项 在窗体中添加主菜单也就是添加 TMainMenu 组件, 该组件在 Standard 组件夹中 在窗体中添加了 TMainMenu 组件后, 双击该组件或在其上单击鼠标右键, 在弹出式菜单中选择 Menu Designer... 命令, 将打开菜单编辑器 可以在对象编辑器中设置每一项的属性, 如 Caption 属性 设置了一个菜单项的属性后, 在其下面或右面会出现一些新的菜单项, 选中这些新的菜单项后可以继续设置属性, 这样就可以创建一个完整的菜单体系了 图 3-16 Menu Designer 应该注意以下几个问题 : 可以在窗体中添加一个 ImageList 组件, 实现对一些图标的管理 然后在窗体 ( 不是菜单编辑器窗体 ) 中选中 MainMenu 组件, 在对象编辑器中设置该菜单的 Image 属性, 与 ImageList 组件关联 最后在菜单编辑器中选中具体的菜单项后, 在对象编辑器中修改 ImageIndex 属性, 就可以在该菜单项前显示 ImageList 组件中具有相应索引值的图标 另外, 在菜单编辑器窗体中选中某个菜单项, 设置对象编辑器中的 Bitmap 属性, 也可以为该菜单项

24 第 3 章常见组件编程 93 指定一个图形 要进行菜单项属性的设置和事件处理过程的生成, 可以双击菜单组件或通过右键菜单命令打开菜单编辑器, 然后选中具体的菜单项, 在对象编辑器中进行修改 在菜单设计窗体中, 可以设置菜单的 ShortCut 属性, 为菜单项设置一个热键 鼠标右键弹出式菜单 应用程序中的鼠标右键弹出式菜单可以方便用户的操作, 灵活性也很好 可以给窗体添加弹出式菜单, 也可以给具体的某个组件添加弹出式菜单 另外, 窗体中的某几个组件可以共用一个弹出式菜单, 只要将这几个组件的 TPopupMenu 属性设置成同一个弹出式菜单的名称就可以了 弹出式菜单可以通过 TPopupMenu 组件实现, 该组件位于 Standard 组件夹中 同 TMainMenu 组件的设计方法一样, 双击 TPopupMenu 组件或在其上单击鼠标右键, 在弹出式菜单中选择 Menu Designer... 命令, 打开菜单编辑器 如果要在某个窗体上实现单击鼠标右键弹出菜单, 可以在该窗体上添加弹出式菜单, 设计完毕后, 还要在窗体的 TPopupMenu 属性中选中该弹出式菜单 对于组件来说, 也要设置 TPopupMenu 属性 使用菜单模板 Delphi 中定义了一些菜单模板, 在设计阶段可以方便地利用这些菜单模板向菜单中添加菜单项, 而且添加的菜单项具有统一的风格 1. 使用菜单模板 在设计菜单时, 要向菜单中添加菜单模板中定义的菜单项时, 可以在菜单编辑器中进行 双击窗体中的菜单组件或通过右键弹出的菜单命令 Menu Designer..., 打开菜单编辑器 单击鼠标右键, 在弹出式菜单中选择 Insert From Template..., 在接着出现的 Insert Template 对话框中, 可以选择需要添加的模板菜单 单击 O K 按钮, 将定义好的菜单添加到正在设计的菜单中 注意 : 默认方式下的菜单模板是英文方式, 不符合中文风格, 还要做进一步的修改 定义 了中文菜单模板后, 使用起来非常方便 2. 定制菜单模板 在菜单编辑器中先设计好一个或多个子菜单, 单击鼠标右键, 选中 Save As Template..., 将弹出 Save Template 对话框 在 Template Description 项中输入菜单模板的名称, 可以使用中文 单击 OK 按钮, 则当前菜单编辑器中的菜单就作为一个菜单模板而被保存起来, 下次设计菜单的时候可以重复使用 3. 删除菜单模板 在菜单编辑器中单击鼠标右键, 选中 Delete Templates... 命令, 将弹出 Delete Templates 对话框, 在其中选中将要删除的菜单模板, 可以在按下 Shift 键或 Ctrl 键的同时利用鼠标或上

25 94 第 3 章常见组件编程 下箭头键选中多个菜单模板, 按下 OK 按钮, 则选中的菜单模板就被删除了 3.10 工具栏和状态栏 在工具栏中, 通常可以添加按钮 (TButton ) 图形按钮(TBitBtn ) 加速按钮 (TSpeedButton) 组合框(TComboBox) 和编辑框 (TEdit) 等, 通过这些组件可以实现快捷操作 一般来说, 在工具栏中可以实现的快捷操作, 在菜单中都应该有对应的命令 工具栏可以通过 TToolBar TCoolBar 或 TControlBar 组件与其它组件的组合来实现 ToolBar 组件 TToolBar 组件在 Win32 组件夹中 在窗体中添加了 TToolBar 组件后, Align 属性默认设置为 altop, 所以 TToolBar 组件默认停靠在窗体的最上边, 并且宽度会自动适应窗体宽度的改变 选中 TToolBar 组件后, 可以直接向其中添加其它组件 添加的组件会自动从左向右依次排列, 利用鼠标拖动某个组件可以改变组件排列的位置 注意, 往 TToolBar 组件中添加其它组件的时候, 最好先在组件栏中相应的组件上点击一下鼠标左键, 然后松开并将鼠标移动到组件栏上, 再点击一下鼠标左键 这时新添加的组件的高度可以适合 TToolBar 组件的高度 另外, 选中 TToolBar 组件后, 单击鼠标右键, 可以通过菜单命令 New Button 在组件栏上添加一个按钮, 也可以通过菜单命令 New Separator 在组件栏上添加一个间隔 TCoolBar 组件 TCoolBar 组件在 Win32 组件夹中 在窗体中添加了 TCoolBar 组件后,Align 属性默认设置为 altop, 所以 TCoolBar 组件默认停靠在窗体的最上边, 并且宽度会自动适应窗体宽度的改变 在默认状态下, TCoolBar 的高度大于单个工具栏的高度 在一个 TCoolBar 组件中可以有多个工具栏, 并且可以将一个工具栏拖动到另一个工具栏的后面 选中 TCoolBar 组件后, 可以直接向其中添加其它组件 添加的组件会自动形成一个相对独立的工具栏 例如, 向 TCoolBar 组件中添加一个 Button 按钮, 则该按钮的宽度会自动适应一个新添加工具栏的宽度, 也就是充满这个新添加的工具栏 但在一般情况下, 在一个工具栏中要添加多个组件, 这时可以利用容器组件实现上述功能 : 先向 TCoolBar 组件中添加一个 Panel 组件, 则会自动创建一个新的工具栏 ; 然后选中 Panel 组件, 再向其中添加其它组件, 并调整组件的位置和大小 工具栏添加好之后, 可以对其边框的形状进行设置 对于 TCoolBar 组件, 可以设置 BandBordStyle BordWidth EdgeBorders EdgeInner 和 EdgeOuter 等 ; 对于 Panel 组件, 可以设置 BevelInner BevelOuter BordStyle 和 BordWidth 等 另外, 选中 TCoolBar 组件, 单击鼠标右键, 可以通过菜单命令 Bands Editor... 打开 TCoolBar 编辑框, 并在其中添加 修改工具栏 注意 : 如果要精确设置组件的大小, 可以在按下 Shift 键的同时按上 下 左 右箭头键 如果要精确调整组件的位置, 可以在按下 Ctrl 键的同时按上 下 左 右箭头键

26 第 3 章常见组件编程 TControlBar 组件 TControlBar 组件在 Additional 组件夹中 在窗体中添加了 TControlBar 组件后, 将其 Align 属性设置为 alnone, 这样 TControlBar 组件就不会总停靠在窗体的最上边 当然, 可以将其 Align 属性设置为 altop alleft alright 或 albottom 等, 这样 TControl 组件就会自动适应窗体尺度的改变, 并停靠在某个边界旁边 选中 TControlBar 组件后, 可以直接向其中添加其它组件 添加的组件会自动形成一个相对独立的工具栏 同 TCoolBar 组件一样, 可以先向 TControlBar 组件中添加一个 Panel 组件, 则会自动创建一个新的工具栏 ; 然后选中 Panel 组件, 再向其中添加其它组件, 并调整组件的位置 大小 同样, 工具栏添加好之后, 可以对其边框的形状 位置特性等进行设置以满足需要 对于 TControlBar 组件, 可以设置 Align AutoSize BevelEdge BevelInner BevelKind BevelOuter 和 BevelWidth 等属性 ; 对于 Panel 组件, 可以设置 Align AutoSize BevelInner BevelOuter BevelWidth BordStyle 和 BordWidth 等属性 TStatusBar 组件 TStatusBar 组件在 Win32 组件页中 在窗体中添加了 TStatusBar 组件后,Align 属性默认设置为 albottom, 所以 TStatusBar 组件默认停靠在窗体的最下边, 并且宽度会自动适应窗体宽度的改变 在一个 TStatusBar 组件中可以有多个面板 选中 TStatusBar 组件后, 单击鼠标右键, 可以通过菜单命令 Panels Edit... 打开状态栏编辑器, 并可以添加 修改状态栏中的面板 在状态栏编辑器中, 可以设置状态栏中各个面板的显示内容, 面板的宽度等 当然, 在程序运行期间, 也可以通过代码动态改变各个面板中的内容 3.11 编程实例 在这一节里, 我们通过两个简单的实例来为读者介绍 Delphi 常用组件的使用方法 小型计算器 图 3-17 计算器程序界面

27 96 第 3 章常见组件编程 下面我们来看一个小型计算器的设计实例, 通过这个程序介绍创建基于对话框的程序技术 激活菜单项 File/New Application 创建一个新的工程 仿照图 3-17, 在窗体中添加相应的组件 窗体类定义的代码如下所示 : TForm1 = class(tform) B_Dot: TButton; B_Zero: TButton; B_One: TButton; B_Two: TButton; B_Three: TButton; B_Four: TButton; B_Five: TButton; B_Six: TButton; B_Seven: TButton; B_Eight: TButton; B_Nine: TButton; B_Equal: TButton; B_C: TButton; D_CE: TButton; B_Div: TButton; B_Mul: TButton; B_Add: TButton; B_Sub: TButton; procedure ClearEntry(); procedure FormCreate(Sender: TObject); procedure B_OneClick(Sender: TObject); procedure B_TwoClick(Sender: TObject); procedure B_ThreeClick(Sender: TObject); procedure B_FourClick(Sender: TObject); procedure B_FiveClick(Sender: TObject); procedure B_SixClick(Sender: TObject); procedure B_SevenClick(Sender: TObject); procedure B_EightClick(Sender: TObject); procedure B_NineClick(Sender: TObject); procedure B_ZeroClick(Sender: TObject); procedure B_AddClick(Sender: TObject); procedure B_SubClick(Sender: TObject); procedure B_DotClick(Sender: TObject); procedure B_CClick(Sender: TObject); procedure D_CEClick(Sender: TObject); 为程序添加一些常量和变量, 相应代码如下所示 :

28 第 3 章常见组件编程 97 const OperatorNone = WM_USER+100; OperatorAdd = WM_USER+101; OperatorSub = WM_USER+102; OperatorMul =WM_USER+103; OperatorDiv =WM_USER+104; // 定义无任何操作 // 定义加法操作 // 定义减法操作 // 定义乘法操作 // 定义除法操作 为窗体添加私有变量如下所示 : public { Public declarations } maccumulator:double; // 暂时累加器 naccumulator:double; // 当前累加器 ndecimal:integer; // 当前的小数点位置 npreviousoperation:integer; //if true, 清累加器 nclear:boolean; 为窗体的 OnCreate 事件过程添加如下代码 : procedure TForm1.FormCreate(Sender: TObject); maccumulator:=0; naccumulator:=0; ndecimal:=0; npreviousoperation:=operatornone; nclear:=false; 清空当前累加器的代码如下所示 : procedure TForm1.ClearEntry(); naccumulator:=0; ndecimal:=0; nclear:=false; 下面我们设置各数字按钮事件响应过程, 相应代码如下 : // 按钮 1 procedure TForm1.B_OneClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数

29 98 第 3 章常见组件编程 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+1.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+1; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 2 procedure TForm1.B_TwoClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+2.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+2.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 3 procedure TForm1.B_ThreeClick(Sender: TObject);

30 第 3 章常见组件编程 99 if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+3.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+3.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 4 procedure TForm1.B_FourClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+4.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+4.0;

31 100 第 3 章常见组件编程 // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 5 procedure TForm1.B_FiveClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+5.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+5.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 6 procedure TForm1.B_SixClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+6.0/ndecimal; ndecimal:=ndecimal*10; end

32 第 3 章常见组件编程 101 else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+6.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 7 procedure TForm1.B_SevenClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+7.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+7.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 8 procedure TForm1.B_EightClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数

33 102 第 3 章常见组件编程 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+8.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+8.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 9 procedure TForm1.B_NineClick(Sender: TObject); if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+9.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+9.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 按钮 0 procedure TForm1.B_ZeroClick(Sender: TObject);

34 第 3 章常见组件编程 103 if nclear=true then ClearEntry(); // 清空当前累加器 // 判断是否为实数 if ndecimal>0 then // 为实数 // 加上当前按钮代表的值 naccumulator:=naccumulator+0.0/ndecimal; ndecimal:=ndecimal*10; end else // 为整数 // 加上当前按钮代表的值 naccumulator:=naccumulator*10; ndecimal:=ndecimal+0.0; // 向 TEdit 窗体输出结果 Screen.Text:=CurrToStr(nAccumulator); // 其它运算按钮相应函数 //+ 运算符 procedure TForm1.B_AddClick(Sender: TObject); // 判断前一次按下的运算符 case npreviousoperation of OperatorAdd: // 前一次为 + // 当前累加器和暂时累加器相加 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator+naccumulator; OperatorSub: // 当前累加器和暂时累加器相减 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator-naccumulator; OperatorMul: // 当前累加器和暂时累加器相乘

35 104 第 3 章常见组件编程 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator*naccumulator; OperatorDiv: // 当前累加器和暂时累加器相除 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator/naccumulator; OperatorNone: // 不做任何操作 naccumulator:=strtocurr(screen.text); // 记录这次按下的运算符 npreviosoperation:=operatoradd; nclear:=true; maccumulator:=naccumulator; Screen.Text:=CurrToStr(mAccumulator); //- 运算符 procedure TForm1.B_SubClick(Sender: TObject); // 判断前一次按下的运算符 case npreviousoperation of OperatorAdd: // 前一次为 + // 当前累加器和暂时累加器相加 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator+naccumulator; OperatorSub: // 当前累加器和暂时累加器相减 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator-naccumulator; OperatorMul: // 当前累加器和暂时累加器相乘 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator*naccumulator;

36 第 3 章常见组件编程 105 OperatorDiv: // 当前累加器和暂时累加器相除 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator/naccumulator; OperatorNone: // 不做任何操作 naccumulator:=strtocurr(screen.text); // 记录这次按下的运算符 npreviosoperation:=operatorsub; nclear:=true; maccumulator:=naccumulator; Screen.Text:=CurrToStr(mAccumulator); // 乘运算符 procedure TForm1.B_MulClick(Sender: TObject); // 判断前一次按下的运算符 case npreviousoperation of OperatorAdd: // 前一次为 + // 当前累加器和暂时累加器相加 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator+naccumulator; OperatorSub: // 当前累加器和暂时累加器相减 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator-naccumulator; OperatorMul: // 当前累加器和暂时累加器相乘 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator*naccumulator; OperatorDiv: // 当前累加器和暂时累加器相除

37 106 第 3 章常见组件编程 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator/naccumulator; OperatorNone: // 不做任何操作 naccumulator:=strtocurr(screen.text); // 记录这次按下的运算符 npreviosoperation:=operatormul; nclear:=true; maccumulator:=naccumulator; Screen.Text:=CurrToStr(mAccumulator); // 除运算符 procedure TForm1.B_DivClick(Sender: TObject); // 判断前一次按下的运算符 case npreviousoperation of OperatorAdd: // 前一次为 + // 当前累加器和暂时累加器相加 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator+naccumulator; OperatorSub: // 当前累加器和暂时累加器相减 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator-naccumulator; OperatorMul: // 当前累加器和暂时累加器相乘 naccumulator:=strtocurr(screen.text); naccumulator:=maccumulator*naccumulator; OperatorDiv: // 当前累加器和暂时累加器相除 naccumulator:=strtocurr(screen.text);

38 第 3 章常见组件编程 107 naccumulator:=maccumulator/naccumulator; OperatorNone: // 不做任何操作 naccumulator:=strtocurr(screen.text); // 记录这次按下的运算符 npreviosoperation:=operatordiv; nclear:=true; maccumulator:=naccumulator; Screen.Text:=CurrToStr(mAccumulator); // 小数点 procedure TForm1.B_DotClick(Sender: TObject); if nclear=true then clearentry; if ndecimal=0 then ndecimal:=10; // 清除符号 C procedure TForm1.B_CClick(Sender: TObject); // 清除当前累加器 ClearEntry(); Screen.Text:=CurrToStr(nAccumulator); // 全部清除符号 CE procedure TForm1.D_CEClick(Sender: TObject); // 清除当前累加器和暂时累加器 ClearEntry(); Screen.Text:=CurrToStr(nAccumulator); maccumulator:=0.0;

39 108 第 3 章常见组件编程 文本编辑器的实现在这一小节里, 我们为读者介绍多文本界面 (MDI) 和多页面界面 (MPI) 技术 ; 以及 VCL 库中 TMemo,TEdit 组件和有关文本编辑的常用对话框的使用 我们开发的一个文本编辑器的实用程序, 可实现如下功能 : MDI 的编辑环境 创建打开 编辑 保存文件 查找 替换文件中指定的字符串 复制 粘贴 剪切字符串 设置文件字体大小 打印文件文本编辑器是一种常用的应用程序 用户在编辑器中编辑多种文件, 在多个文件之间进行数据交换, 对文件进行各种属性设置, 并按自己要求打印文件 激活菜单 File/New Application 创建一个新的工程 设置主窗体 FormStyle 属性为 fsmdiform 图 3-18 Project Options 对话框

40 第 3 章常见组件编程 109 图 3-19 主窗体界面 图 3-20 子窗体界面新建窗体, 设置其 FormStyle 属性为 fsmdiform 因为子窗体是缺省可见的, 所以如果要在应用程序运行时创建子窗体, 而不要 Delphi 自动的创建, 则可以采取以下步骤 : (1) 激活 Project/Options 菜单, 系统弹出自动创建列表对话框, 如图 3-20 所示 ; (2) 在自动创建列表中选中子窗体 ; (3) 单击右尖角符号 > 按钮将子窗体移至 Available 窗体列表中 ;

41 110 第 3 章常见组件编程 (4) 单击 OK 按钮退出 为父窗体和子窗体设置相应的菜单项 在父窗体中添加 TOpenDialog 组件, 如图 3-19 所示 为子窗体添加一个 TRichEdit 组件, 设置其 Align 属性为 alclient; 添加字体对话框组件 (TFontDialog Componement), 查找对话框 (TFindDialog Componement) 组件, 替换对话框组件 (TReplaceDialog Componement), 文件打开对话框组件 (TOpenDialog Componement) 和打印对话框组件 (TPrintDialog Componement) 设计好的子窗体界面如图 3-20 所示 字体对话框组件在应用程序中调用 Windows 字体对话框, 用户可以在对话框中进行字体选择和属性设置 用户选择字体并按下 OK 按钮之后, 有关信息便存储在组件的 Font 属性中 应用程序可通过调用字体对话框的 Execute 方法来显示对话框, 如图所示, 当用户选择 OK 按钮后,Execute 方法返回 True 值 ; 否则返回 False 打开对话框包含一个 Filters 属性, 它可确定文件类型和在文件类型下拉框中的顺序 调用 Execute 方法可显示打开对话框, 如图 3-22 所示 TPrintDialog 组件显示一打印对话框 用户在此对话框中可选择打印机 打印页数 打印份数等 当用户点击对话框中的 Setup 按钮时, 便会出现打印设置对话框 使用 Option 属性可以设置打印对话框的形式 图 3-21 字体对话框

42 第 3 章常见组件编程 111 图 3-22 打开对话框下面我们添加父窗体的各事件处理过程, 相应代码如下 : // 关闭父窗体 procedure TFrameForm.Exit1Click(Sender:TObject); Close; // 动态新建一个子窗体 procedure TFrameForm.New1Click(Sender:TObject); TEditForm.Create(Self); // 定义子窗体状态 procedure TFrameForm.Tile1Click(Sender:TObject); Tile; procedure TFrameForm.Cascade1Click(Sender:TObject); Cascade; procedure TFrameForm.Arrangeicons1Click(Sender:TObject); ArrangeIcons;

43 112 第 3 章常见组件编程 // 打开一个文件 procedure TFrameForm.Open1Click(Sender:TObject); if OpenFileDialog.Execute then with TEditForm.Create(Self) do Open(OpenFileDialog.FileName); // 在子窗体中添加代码 private { Private declarations } PathName:String; public { Public declarations } procedure Open(const AFileName:string); var EditForm: TEditForm; const DefaultFileName = 'Untiled'; implementation uses Clipbrd,Printers,MDIFrame; {$R *.dfm} // 子窗体退出 procedure TEditForm.Exit1Click(Sender:TObject); FrameForm.Exit1Click(Sender); // 新建一个子窗体 procedure TEditForm.New1Click(Sender:TObject); FrameForm.New1Click(Sender); // 打开一个文件 procedure TEditForm.Open1Click(Sender:TObject); FrameForm.Open1Click(Sender); // 字符对齐操作 procedure TEditForm.Align1Click(Sender:TObject);

44 第 3 章常见组件编程 113 Left1.Checked := False; Right1.Checked := False; Center1.Checked := False; with Sender as TMenuItem do Checked :=True; with Editor.Paragraph do if Left1.Checked then // 左对齐 Alignment:=taLeftJustify else if Right1.Checked then Alignment:=taRightJustify else if Center1.Checked then Alignment:=taCenter; // 剪切操作 procedure TEditForm.Cut1Click(Sender:TObject); Editor.CutToClipboard; // 拷贝到剪切板 procedure TEditForm.Copy1Click(Sender:TObject); Editor.CopyToClipboard; // 把剪切版的内容粘贴到文件中 procedure TEditForm.Paste1Click(Sender:TObject); Editor.PasteFormClipboard; // 全选全部文本 procedure TEditForm.SelectAllClick(Sender:TObject); Editor.SelectAll; // 删除所选文本操作 procedure TEditForm.Delete1Click(Sender:TObject); Editor.ClearSelection; procedure TEditForm.Edit1Click(Sender:TObject);

45 114 第 3 章常见组件编程 Paste1.Enabled:=Clipboard.HasFormat(CF_TEXT); Paste2.Enabled:=Paste1.Enabled; HasSelection:=Editor.SleLength>0; Cut1.Enabled:=HasSelection; Cut2.Enabled:=HasSelection; Copy1.Enabled:=HasSelection; Copy2.Enabled:=HasSelection; Delete1.Enabled:=HasSelection; // 打开一个文件 procedure TEditForm.Open(const AFileName:string); PathName:=AFileName; Caption:=ExtractFileName(AFileName); with Editor do Lines.LoadFromFile(PathName); SelStart:=0; Modified:=false; // 存储文件 procedure TEditForm.Saveas1Click(Sender:TObject); SaveFileDialog.FileName:=PathName; if SaveFileDialog.Execute then PathName:=SaveFileDialog.FileName; Caption:=ExtractFileName(PathName); Save1Click(Sender); procedure TEditForm.Save1Click(Sender:TObject); if PathName = DefaultFileName then SaveAsClick(Sender) else Editor.Lines.SaveToFile(PathName); Editor.Modified:=False;

46 第 3 章常见组件编程 115 // 选择字体的属性 procedure TEditForm.Font1Click(Sender:TObject); FontDialog1.Font:=Editor.Font; if FontDialog1.Execute then Editor.SelAttributes.Assign(FontDialog1.Font); // 关闭文件 procedure TEditForm.Close1Click(Sender:TObject); Close; // 关闭子窗体 procedure TEditForm.FormClose(Sender:TObject;var Action:TCloseAction); Action :=cafree; procedure TEditForm.FormCloseQuery(Sender:TObject;var CanClose:Boolean); const SWarningText='Save changes to%s?'; if Editor.Moditied then case MessageDlg(Format(SWarningText,[PathName]), mtconfirmation, [mbyes,mbno,mbcancel],0) of idyes:save1click(self); idcancel:canclose:=false; procedure TEditForm.FormCreate(Sender:TObject); PathName:=DefaultFileName; // 用打印对话框设置打印属性 procedure TEditForm.PrintersetupClick(Sender:TObject); PrinterSetUpDialog1.Execute;

47 116 第 3 章常见组件编程 // 打印文件 procedure TEditForm.Print1Click(Sender:TObject); if PrinterDialog1.Execute then Editor.Print(PathName); 由于程序的算法比较简单, 故在此不再做详细解释, 读者可参照注释进行理解 3.12 本章小结 本章介绍了 Delphi 常用的组件和一些基本的编程技术 主要包括各组件类的使用和基本的相互继承关系以及菜单和工具栏的基本概念, 并通过两个实例使读者对本章所讲述内容进一步加深理解 通过这一部分的学习, 读者可以了解开发 Windows 环境下应用程序的一些关键技术, 并可以方便 快捷地开发一般的应用程序, 希望读者好好体会

48 第 3 章常见组件编程 117 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 83

49 118 第 3 章常见组件编程 84 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 95

50 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程

51 120 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程

52 第 3 章常见组件编程 121 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程 第 3 章常见组件编程

PowerPoint 演示文稿

PowerPoint 演示文稿 按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

User’s Manual

User’s Manual V7 用 户 手 册 亿 图 为 您 专 业 图 表 设 计 提 供 最 佳 解 决 方 案 2004-2014 EdrawSoft. All right reserved. Edraw and Edraw logo are registered trademarks of EdrawSoft. 目 录 亿 图 怎 样 优 越 于 其 他 软 件... 5 亿 图 7 个 新 功 能... 6 为

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法 ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 0 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : 0 /// 测试方法 : 测试将 DataTable 导出到 EXCEL, 无模板 public void TestExportToExcelByDataTable() string excelpath

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

Microsoft Word - AccessPortal使用手册v3.1.doc

Microsoft Word - AccessPortal使用手册v3.1.doc HighGuard Access Portal 使用手册 地址 : 上海市张江高科技园区松涛路 563 号海外创新园 B 座 301-302 室 电话 : 021-50806229 传真 : 021-50808180 电子邮件 : marketing@highguard.com.cn 第 1 页共 24 页 目录 1. ACCESSPORTAL 概述...4 1.1. AccessPortal 主页面

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

大漠 伪前端, 就职于淘宝

大漠 伪前端, 就职于淘宝 CSS Grid Layout 2016-12-17 @ 大漠. #CSSConf https://www.flickr.com/photos/19139526@n00/8331063530/ 大漠 伪前端, 就职于淘宝 古老的 table 布局 现代 Web 布局 Float inline-block display: table position (absolute 或 relative)

More information

ebook111-4

ebook111-4 Flash 4 Flash 4 F l a s h 5 Flash 4 Flash Flash 4 Flash 4 Flash 4 4.1 Flash 4 Flash 4 Flash 4 Flash Flash 4 Flash 4 4.2 Flash 4 Flash 4 A Flash 4 S h i f t F i l e P r e f e r e n c e s > > Flash 4 Flash

More information

Microsoft Word - CB6CXfm.DOC

Microsoft Word - CB6CXfm.DOC C++ Builder 6 程序设计教程 陆卫忠刘文亮等编著 北京 内容简介 本书系统地介绍了在 Windows 环境下利用 C++ Builder 进行应用程序开发的方法, 主要内容包括 C++ Builder 常用组件的使用 MDI 多文档应用程序设计 文件操作与文件管理 数据库应用程序设计 多线程应用程序设计 Internet 应用程序设计 动态链接库 DLL 以及多媒体与图形应用程序设计 全书内容翔实

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

Business Objects 5.1 Windows BusinessObjects 1

Business Objects 5.1 Windows BusinessObjects 1 Business Objects 5.1 Windows BusinessObjects 1 BusinessObjects 2 BusinessObjects BusinessObjects BusinessObjects Windows95/98/NT BusinessObjects Windows BusinessObjects BusinessObjects BusinessObjects

More information

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

60 新编计算机应用基础实训指导 (2) 单元格显示格式设置 选中 (A1:I1) 单元格区域, 在 格式 工具栏中选择 加粗 按钮, 将字体设置为 加粗 显示 ; 选择 居中显示 按钮, 将字体设置为居中显示 ; 选择 底纹设置 按钮, 将单元格底纹设置为黄色, 显示结果如图 3 3 所示 图 3

60 新编计算机应用基础实训指导 (2) 单元格显示格式设置 选中 (A1:I1) 单元格区域, 在 格式 工具栏中选择 加粗 按钮, 将字体设置为 加粗 显示 ; 选择 居中显示 按钮, 将字体设置为居中显示 ; 选择 底纹设置 按钮, 将单元格底纹设置为黄色, 显示结果如图 3 3 所示 图 3 模块三电子表格软件 Excel 训练项目 1 教师人事档案管理表的录入与编辑 训练目标 掌握 Excel 2003 工作簿的建立 保存与打开方法 掌握工作表中各种不同类型数据的输入方法 掌握单元格格式的设置方法 掌握表格边框和底纹的设置方法 掌握特殊符号的输入方法 训练内容 制作 教师人事档案管理表, 最终显示效果如图 3 1 所示 图 3 1 教师人事档案管理表 样本 实训步骤 (1) 启动 Excel

More information

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1 Chapter 01 Photoshop CS6 的基本操作 本章内容 1.1 Photoshop 的应用领域 1.6 控制面板的显示与隐藏 1.2 位图和矢量图的特性 1.7 新建 打开与保存文件 1.3 像素和分辨率的关系 1.8 图像的缩放 1.4 色彩模式 1.9 屏幕显示模式 1.5 Photoshop CS6 界面 1.10 计算机图形图像常用的色彩模式 Photoshop CS6 艺术设计案例教程

More information

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc 实验 3 顺序和分支结构程序设计 实验目的 1. 掌握顺序结构的程序设计思想 2. 掌握命令按钮 (CommandButton) 标签 (Label) 文本框 (TextBox) 编辑框 (EditBox) 等常用控件的使用方法 3. 了解并掌握对话框函数 MessageBox() 的含义与用法 4. 了解和熟悉线条控件 形状控件的画法以及主要属性的用法 实验内容 1. 顺序结构 实训 3-1 编写一应用程序,

More information

Microsoft Word - Data IO CS Calculate Method AppNote.doc

Microsoft Word - Data IO CS Calculate Method AppNote.doc Data I/O Checksum Calculation Methods Application Note (Chinese translation follows this English text.) General Description and Scope This document describes common checksum calculation methods for devices

More information

WinMDI 28

WinMDI 28 WinMDI WinMDI 2 Region Gate Marker Quadrant Excel FACScan IBM-PC MO WinMDI WinMDI IBM-PC Dr. Joseph Trotter the Scripps Research Institute WinMDI HP PC WinMDI WinMDI PC MS WORD, PowerPoint, Excel, LOTUS

More information

言1.PDF

言1.PDF MSP430 WINDOWS WORKBENCH MSP430 Flash Green MCU Flash Flash MCU MSP430 16 RISC 27 125ns 1.8V~3.6V A/D 6 s MSP430 10 ESD MSP430 MSP430 10 MSP430 2001 MSP430 Windows Workbench Interface Guide Windows Workbench

More information

使用 Eclipse 开发 Java EE 应用 (Web 应用 ) 这里以开发一个简单的 Web 应用为例, 介绍使用 Eclipse 开发 Java EE 应用的一般步 骤 此处使用的 Eclipse 是 Eclipse IDE for Java EE Developers; 如果是使用的其他

使用 Eclipse 开发 Java EE 应用 (Web 应用 ) 这里以开发一个简单的 Web 应用为例, 介绍使用 Eclipse 开发 Java EE 应用的一般步 骤 此处使用的 Eclipse 是 Eclipse IDE for Java EE Developers; 如果是使用的其他 使用 Eclipse 开发 Java EE 应用 (Web 应用 ) 这里以开发一个简单的 Web 应用为例, 介绍使用 Eclipse 开发 Java EE 应用的一般步 骤 此处使用的 Eclipse 是 Eclipse IDE for Java EE Developers; 如果是使用的其他 Eclipse 插件 ( 比如 MyEclipse 插件 ), 其开发方式和步骤可能略有差异和不同 在该例中,

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

5. 利用对象监视器可以设置窗体或组件的 ( ) A. 方法 B. 属性 c. 外观 D. 执行代码 6. 编辑框 (Edi t) 中的文本发生改变时引发的事件是 ( ) A. AutoSize C. SetFocus B. OnChange D. SetText 7. 现建立一个简单报表, 要求其

5. 利用对象监视器可以设置窗体或组件的 ( ) A. 方法 B. 属性 c. 外观 D. 执行代码 6. 编辑框 (Edi t) 中的文本发生改变时引发的事件是 ( ) A. AutoSize C. SetFocus B. OnChange D. SetText 7. 现建立一个简单报表, 要求其 试卷代号 : 2 2 3 5 座位号仁口 国家开放大学 ( 中央广播电视大学 ) 2 0 1 4 年春季学期 " 开放专科 " 期末考试 Delphi 程序设计 试题 题号 一! 二 三 四! 五 总分 分数 I I I I I I I l 得分! 评卷人 I I I- 单项选择题 ( 3 0 分, 每题 3 分 ) 2014 年 7 月 1. 下面哪句话对 De l p hi 的描述是正确的 (

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

图形图像处理 (Photoshop CS6) [ pixel ] % % % % dpi/inch dpi 150dpi 300dpi 002

图形图像处理 (Photoshop CS6) [ pixel ] % % % % dpi/inch dpi 150dpi 300dpi 002 第 1 章 初识 Photoshop CS6 本章学习要点 点阵图像的基本概念 常用图像格式的特性 Photoshop CS6 界面基本操作 图像的分辨率和像素 Photoshop 的应用领域 Photoshop 文件的管理 重点和难点 图像的像素和分辨率 Photoshop CS6 界面的基本操作 达成目标 理解像素和分辨率的关系 了解图像的常用格式及特点 掌握 Photoshop CS6 界面基本操作及对图像进行不同格式的保存管理

More information

12 计算机应用基础实训与习题指导 (Windows 7+Office 2010) 在任务栏对应的 计算机 窗口按钮上右击, 在弹出的快捷菜单中单击 关闭窗口 选项 在窗口标题栏上右击, 在弹出的快捷菜单中单击 关闭 命令 或鼠标双击窗口标题栏最左边的控制图标 在打开的窗口中, 按 Alt+F4 组

12 计算机应用基础实训与习题指导 (Windows 7+Office 2010) 在任务栏对应的 计算机 窗口按钮上右击, 在弹出的快捷菜单中单击 关闭窗口 选项 在窗口标题栏上右击, 在弹出的快捷菜单中单击 关闭 命令 或鼠标双击窗口标题栏最左边的控制图标 在打开的窗口中, 按 Alt+F4 组 第 2 章 Windows 7 操作系统实训 实训二 Windows 7 基本操作 实训目标 (1) 会进行 Windows 7 的窗口操作 (2) 会进行 Windows 7 应用程序的启动和退出 (3) 会进行桌面背景和屏幕保护程序个性化设置 (4) 通过控制面板的使用, 认识其功能和作用 实训内容 1. 窗口操作 (1) 打开和关闭 计算机 窗口 (2) 调整窗口大小和移动窗口 (3) 切换和排列窗口

More information

专注于做最好的嵌入式计算机系统供应商

专注于做最好的嵌入式计算机系统供应商 专注于做最好的嵌入式计算机系统供应商 基于 ARMSYS2440/2410 开发应用程序 (EVC&VS2005) Rev 1.0 2008 年 3 月 24 日 杭州立宇泰电子有限公司 HangZhou LiYuTai Elec.Co.,Ltd 开发应用程序的过程一般分两步, 第一步在 PC 机开发环境下设计和编译应用程序, 第二步将它下载到 目标系统, 也就是我们的 ARMSYS2440 平台上运行

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

的 汉 字, 再 选 择 格 式 中 文 版 式 拼 音 指 南 选 项, 在 拼 音 指 南 对 话 框 中 单 击 组 合 按 钮, 如 图 1-1 所 示, 则 将 拼 音 文 字 复 制 粘 贴 到 正 文 中, 同 时 还 可 删 除 不 需 要 的 基 准 文 字 图 1-1 拼 音 指

的 汉 字, 再 选 择 格 式 中 文 版 式 拼 音 指 南 选 项, 在 拼 音 指 南 对 话 框 中 单 击 组 合 按 钮, 如 图 1-1 所 示, 则 将 拼 音 文 字 复 制 粘 贴 到 正 文 中, 同 时 还 可 删 除 不 需 要 的 基 准 文 字 图 1-1 拼 音 指 文字处理实战正文 第 1 章 Word 篇 1.1 文字录入技巧 1.1.1 叠字轻松输入 在汉字中经常遇到重叠字 比如 爸爸 妈妈 欢欢喜喜 等 在 Word 中输 入时除了利用输入法自带的功能快速输入外 还有没有其他办法轻松进行输入呢 答 在 Word 中提供了一个这样的功能 只需通过组合键 Alt+Enter 便可轻松输 入 如在输入 爸 字后 按组合键 Alt+Enter 便可再输入一个 爸

More information

FA-3000_Ver1.00

FA-3000_Ver1.00 FA-3000 1.00 TW Windows FA-3000 FA-3000 CASIO COMPUTER CO., LTD. Microsoft Windows Windows Vista Excel Aero Microsoft Corporation CASIO COMPUTER CO., LTD. CASIO COMPUTER CO., LTD. TM 2015 CASIO COMPUTER

More information

X713_CS_Book.book

X713_CS_Book.book / / /USB ) ; ; C D ; ; B B 1 >> 2 3 B 1 ( > > ) 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 GSM GPS ( ) 手机已连接到 GSM 网络 指示条越多, 接收质量越好 GPS 2 ...........................4.............................. 4 Micro SD (

More information

17 Image Composer WWW Internet?..., WWW,,,,? FrontPage Editor,, ; Front Page Editor, : ;, :..., Image Composer Front Page 98,,! Image Composer,! Image

17 Image Composer WWW Internet?..., WWW,,,,? FrontPage Editor,, ; Front Page Editor, : ;, :..., Image Composer Front Page 98,,! Image Composer,! Image 17 Image Composer WWW Internet?..., WWW,,,,? FrontPage Editor,, ; Front Page Editor, : ;, :..., Image Composer Front Page 98,,! Image Composer,! Image Composer,, Image Composer , Image Composer A Image

More information

Microsoft Word - word2007排版

Microsoft Word - word2007排版 目 录 目 录 第 一 章 排 版 前 准 备 工 作... 1 1.1 排 版 基 本 术 语... 1 1.1.1 开 本... 1 1.1.2 扉 页... 1 1.1.3 版 心... 1 1.1.4 版 面... 1 1.1.5 页 眉 和 页 脚... 1 1.2 导 入 文 本... 2 1.3 基 本 编 辑 操 作... 2 1.3.1 选 定 文 本 内 容... 2 1.3.2

More information

Microsoft Word - CB6CXfm.DOC

Microsoft Word - CB6CXfm.DOC C++ Builder 6 程序设计教程 陆卫忠刘文亮等编著 北京 内容简介 本书系统地介绍了在 Windows 环境下利用 C++ Builder 进行应用程序开发的方法, 主要内容包括 C++ Builder 常用组件的使用 MDI 多文档应用程序设计 文件操作与文件管理 数据库应用程序设计 多线程应用程序设计 Internet 应用程序设计 动态链接库 DLL 以及多媒体与图形应用程序设计 全书内容翔实

More information

目 录(目录名)

目  录(目录名) 目录 目录...1-1 1.1 域名解析配置命令... 1-1 1.1.1 display dns domain... 1-1 1.1.2 display dns dynamic-host... 1-1 1.1.3 display dns server... 1-2 1.1.4 display ip host... 1-3 1.1.5 dns domain... 1-4 1.1.6 dns resolve...

More information

第四章 102 图 4唱16 基于图像渲染的理论基础 三张拍摄图像以及它们投影到球面上生成的球面图像 拼图的圆心是相同的 而拼图是由球面图像上的弧线图像组成的 因此我 们称之为同心球拼图 如图 4唱18 所示 这些拼图中半径最大的是圆 Ck 最小的是圆 C0 设圆 Ck 的半径为 r 虚拟相机水平视域为 θ 有 r R sin θ 2 4畅11 由此可见 构造同心球拼图的过程实际上就是对投影图像中的弧线图像

More information

01

01 ZEBRA 技术白皮书 条码编码 101 相关知识介绍 引言 20 70 数据 80 20 90 (JIT) AIAG EIA HIBCC HAZMAT 条码的优势提高数据准确性 99% 85% / / 提升效率 / 2 Zebra Technologies 保持一致性 ID 改进库存和资产管理 成本 / 效益分析 ID ID ID (ERP) RFID Zebra Technologies 3 ID

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

More information

jsj0.nps

jsj0.nps 第 3 章 Word 基 础 应 用 制 作 求 职 简 历 3 畅 1 求 职 简 历 案 例 分 析 本 章 以 制 作 求 职 简 历 为 例, 介 绍 Word 强 有 力 的 文 字 处 理 功 能, 包 括 Word 的 字 符 格 式 的 设 置 段 落 格 式 的 设 置 表 格 的 制 作 图 片 的 插 入 制 表 位 的 使 用 页 面 边 框 的 设 置 打 印 输 出 等

More information

2008上程序设计(Delphi)试题.doc

2008上程序设计(Delphi)试题.doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 计算机程序设计 (Delphi) 全真试题 ( 闭卷 90 分钟 ) 题号一二三四五六总分 题分 20 16 10 14 24 16 得分 试题一单项选择题 ( 每题 2 分, 共 20 分 ) 1. 一般程序设计都采用高级语言, 很少使用汇编语言, 因为 (1) 汇编语言的每一条语句与 (2) 条机器指令对应, 通过助记符和符号地址书写程序

More information

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探 付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探索建设中 成时间 : 2017-07-20 12:13:21 Since 8.6 定义键盘 定义键盘使

More information

Hyz_avr C++ Builder 程序设计实用教程 张晋 编著 五洋工作室供稿

Hyz_avr C++ Builder 程序设计实用教程 张晋 编著 五洋工作室供稿 C++ Builder 程序设计实用教程 张晋 编著 五洋工作室供稿 前 言 C++ Builder( 以下简称 CBuilder) 是由著名的 Borland 公司开发的开始化程序开发工具, 它的基础语言为面向对象的 C++ 语言, 同时它继承了 C++ 语言的优点, 如代码结构清晰 可读性好和代码执行效率高等, 所以 CBuilder 一经推出, 迅速得到用户的好评 总之,CBuilder 是开发

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

穨ac3-3.PDF

穨ac3-3.PDF 3-1 Access 3-1-1 Event Click OnClick Click OnClick AfterUpdate BeforeUpdate On After Before > VBA( ) 3-1 3-1 Access Open Load Sub Funtion 3-1-2 Sub Funtion Private Me Me Forms Reports Form Report VisualBasic

More information

PowerPoint Presentation

PowerPoint Presentation Windows 操作系统 孙栩信息科学技术学院 xusun@pku.edu.cn http://xusun.org 1 回顾 : 操作系统的主要功能 内存的分配与管理 外部设备的分配与管理 CPU 的控制与管理 操作系统 文件的控制与管理 用户接口 2 本节课的主要内容 Windows 操作系统概述 Windows 计算机管理 基本操作与应用程序 3 一 Windows 操作系统概述 1.1 Windows

More information

FPGAs in Next Generation Wireless Networks WPChinese

FPGAs in Next Generation Wireless Networks WPChinese FPGA 2010 3 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 FPGAs in Next Generation Wireless Networks GSM GSM-EDGE 384kbps CDMA2000

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

一 页 眉 页 脚 的 制 作 首 先 介 绍 一 个 概 念 : 节 这 里 的 节 不 同 于 论 文 里 的 章 节, 但 概 念 上 是 相 似 的 节 是 一 段 连 续 的 文 档 块, 同 节 的 页 面 拥 有 同 样 的 边 距 纸 型 或 方 向 打 印 机 纸 张 来 源 页

一 页 眉 页 脚 的 制 作 首 先 介 绍 一 个 概 念 : 节 这 里 的 节 不 同 于 论 文 里 的 章 节, 但 概 念 上 是 相 似 的 节 是 一 段 连 续 的 文 档 块, 同 节 的 页 面 拥 有 同 样 的 边 距 纸 型 或 方 向 打 印 机 纸 张 来 源 页 一 页 眉 页 脚 的 制 作 二 图 表 自 动 编 号 三 公 式 自 动 编 号 四 目 录 的 制 作 五 参 考 文 献 的 编 号 和 引 用 六 其 他 技 巧 七 基 本 软 件 WORD 各 种 编 辑 排 版 的 高 级 技 巧 一 页 眉 页 脚 的 制 作 首 先 介 绍 一 个 概 念 : 节 这 里 的 节 不 同 于 论 文 里 的 章 节, 但 概 念 上 是 相 似

More information

PowerPoint Presentation

PowerPoint Presentation Visual Basic 2005 學 習 範 本 第 7 章 陣 列 的 活 用 7-1 陣 列 當 我 們 需 要 處 理 資 料 時, 都 使 用 變 數 來 存 放 資 料 因 為 一 個 變 數 只 能 代 表 一 個 資 料, 若 需 要 處 理 100 位 同 學 的 成 績 時, 便 要 使 用 100 個 不 同 的 變 數 名 稱, 這 不 但 會 增 加 變 數 名 稱 命 名

More information

答案 :C 7 桌面是 Windows 启动后的初始画面, 下面哪些一定是桌面的组成部分 A. 滚动条 B. 任务栏 C. 对话框 D. 控制面板 图标答案 :B 8 在 Windows 操作系统中描述窗口的错误说法是 A. 窗口是 Windows 应用程序的用户界面 B. 桌面也是 Windows

答案 :C 7 桌面是 Windows 启动后的初始画面, 下面哪些一定是桌面的组成部分 A. 滚动条 B. 任务栏 C. 对话框 D. 控制面板 图标答案 :B 8 在 Windows 操作系统中描述窗口的错误说法是 A. 窗口是 Windows 应用程序的用户界面 B. 桌面也是 Windows 单选题 : 1 在 Windows 窗口中, 单击鼠标右键出现 A. 对话框 B. 快捷菜单 C. 文档窗口 D. 应用程序窗口答案 :B 2 下列关于 Windows 应用程序窗口的叙述中, 错误的是 A. 窗口是应用程序运行后的工作区 B. 同时打开的多个窗口可以重叠排列 C. 窗口的位置和大小都可以改变 D. 窗口的位置可以移动, 但大小不能改变答案 :D 3 把 Windows 的应用程序窗口和对话框窗口比较,

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

第1章 计算机基础知识

第1章  计算机基础知识 会计电算化 小蕾老师 微信 :huluo-xiaolei 贴吧 : 教导主任小蕾 EM:liuguolei@suanlands.com 有讲解 - 旧大纲 题海 模拟 题库中 1.1.1 初识 Word 2003 Word 2003 的启动和退出 Word 2003 窗口的组成 Word 2003 的视图方式 启动 Word 2003 的方法 : 1. 从开始菜单启动 Word 2003 的启动与退出

More information

PowerPoint Template

PowerPoint Template 窗体 P15 常用控件 菜单设计 多窗体界面设计 P19 P30 P32 属性 方法 事件 属性名 Name( 名称 ) Caption Height Width Left Top BackColor ForeColor Enabled Visible Font Moveable Picture 描述所创建窗体的名称窗体的标题, 即窗体标题栏上显示的内容窗体的高度窗体的宽度窗体的左边界距容器坐标系纵轴的距离窗体上边界距容器坐标系横轴的距离返回或设置窗体中文本和图形的背景色返回或设置窗体中文本和图形的前景色决定窗体是否活动决定窗体在程序运行时是否可见用于设置窗体中文本的外观,

More information

Windows XP

Windows XP Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs

More information

Photoshop CS6 Windows 10 Esc Alt F10 3 Photoshop CS 工具箱 选项栏 面板和和面板组 1. 工具箱 Tab 工具组中工具的切换 : 工具箱中一些工具图标的右下角有小黑三角, 表示这是一个按钮组, 存在

Photoshop CS6 Windows 10 Esc Alt F10 3 Photoshop CS 工具箱 选项栏 面板和和面板组 1. 工具箱 Tab 工具组中工具的切换 : 工具箱中一些工具图标的右下角有小黑三角, 表示这是一个按钮组, 存在 第 1 章 第 1 章 CS6 工作区和基本操作中文 Photoshop CS6 工作区和基本操作 本章提要 : 本章介绍中文 Photoshop CS6 工作区的组成, 图像文件的基本知识和基本操作, 图像的 基本操作, 以及图像裁剪方法等内容 1.1 Photoshop CS6 工作区简介 Windows Photoshop CS6 Adobe Photoshop CS6 Photoshop CS6

More information

4.1.1 常用的电子表格软件 ( ) Office2003 家族成员之 电子报表软件此处会显示工作簿单元格地址 名称框名称框 工具按钮工具按钮 公式编辑栏 列标 行号 当前单元格 工作表标签 状态栏

4.1.1 常用的电子表格软件 ( ) Office2003 家族成员之 电子报表软件此处会显示工作簿单元格地址 名称框名称框 工具按钮工具按钮 公式编辑栏 列标 行号 当前单元格 工作表标签 状态栏 第四章电子表格软件在会计中的应用 ( 分值 :10 20 分授课时长 :150min) 4.1.1 常用的电子表格软件 ( ) Office2003 家族成员之 电子报表软件此处会显示工作簿单元格地址 名称框名称框 工具按钮工具按钮 公式编辑栏 列标 行号 当前单元格 工作表标签 状态栏 4.1.2 电子表格软件的主要功能 ( ) Office 家族成员之 电子报表软件 电子表格软件的主要功能有 :(1)

More information

ebook70-19

ebook70-19 1 9 S t a r O ff i c e Star Division S t a r O ff i c e h t t p / / w w w. s t a r d i v i s i o n. c o m S t a r O ff i c e O p e n L i n u x O p e n L i n u x StarOffice S t a r O ff i c e S t a r O

More information

Microsoft Word - 改版式网页全文.doc

Microsoft Word - 改版式网页全文.doc 第 4 章 Dreamweaver CS3 高 级 篇 4.1 表 单 概 述 表 单 是 用 来 收 集 浏 览 者 的 用 户 名 密 码 E-mail 地 址 个 人 爱 好 和 联 系 地 址 等 用 户 信 息 的 输 入 区 域 集 合 浏 览 者 填 写 表 单 的 方 式 一 般 是 输 入 文 本 选 择 单 选 按 钮 或 复 选 框 以 及 从 下 拉 列 表 框 中 选 择

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品 Autodesk Product Design Suite Standard 20122 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品设计 Autodesk Product Design Suite Standard 版本包包括以下软件产产品

More information

IsPostBack 2

IsPostBack 2 5 IsPostBack 2 TextBox 3 TextBox TextBox 4 TextBox TextBox 1 2 5 TextBox Columns MaxLength ReadOnly Rows Text TextMode TextMode MultiLine TextMode MultiLine True False TextMode MultiLine Password MulitLine

More information

三维设计软件应用 (3ds Max) 1.1 任务 1: 制作一个简单的三维动画 体验 3ds Max 2012 中文版 预备知识 1: 三维动画制作基本流程 3ds Max 1. 编制脚本 2. 创建模型 3ds Max 3ds Max Maya 3. 使用材质及贴图 3ds Max

三维设计软件应用 (3ds Max) 1.1 任务 1: 制作一个简单的三维动画 体验 3ds Max 2012 中文版 预备知识 1: 三维动画制作基本流程 3ds Max 1. 编制脚本 2. 创建模型 3ds Max 3ds Max Maya 3. 使用材质及贴图 3ds Max 第 1 章 3ds Max 2012 中文版快速入门 内容导读 Autodesk 公司推出的 3ds Max 是一个优秀并享有盛誉的三维设计软件, 也是目前全球用户数量最多的三维设计软件, 其功能集建模 材质和贴图 光效设计 动画制作 渲染与合成于一体 3ds Max 广泛应用于影视广告设计制作 建筑装潢设计制作 工业设计 影视特效 虚拟现实场景设计等领域 3ds Max 2012 与之前的版本相比,

More information

5. 最适合于在工具栏上放置的工具按钮是 ( ) 0 A. Button B. RadioButton C. SpeedButton D. BitBtm 6. 通常控制组件在窗体中的可见属性是 ( ) A. Visible B. Name C. Showing D. Hint 7. 现建立一个简单报

5. 最适合于在工具栏上放置的工具按钮是 ( ) 0 A. Button B. RadioButton C. SpeedButton D. BitBtm 6. 通常控制组件在窗体中的可见属性是 ( ) A. Visible B. Name C. Showing D. Hint 7. 现建立一个简单报 试卷代号 :2235 座位号 OJ 国家开放大学 ( 中央广播电视大学 )2015 年春季学期 " 开放专科 " 期末考试 Delphi 程序设计试题 (A) 2015 年 7 月 国 四 五 总分 一 单项选择题 (30 分, 每题 3 分 } 1. 下面哪句话对 Delphi 的描述是正确的 ( ) A. 只能用于数据库客户端开发的工具 B. Delphi 的编程语言全部是面向过程的 C. Delphi

More information

序 软 件 工 程 思 想 林 锐 序 软 件 工 程 思 想 讲 述 软 件 开 发 和 做 程 序 员 的 道 理, 视 野 独 特, 构 思 新 颖, 内 容 风 趣, 不 落 窠 臼, 令 人 耳 目 一 新 堪 称 难 得, 以 至 回 味 无 穷 作 者 从 事 了 八 年 的 软 件 开 发 工 作, 在 他 的 博 士 学 位 论 文 完 成 之 际 写 下 了 这 本 心 之 所 感

More information

Microsoft Word - install_manual-V _CN.docx

Microsoft Word - install_manual-V _CN.docx NO TASK Q-Sign Install Manual PAGE 1/28 Q-Sign INSTALL MANUAL Version 3.0 Server Manager Client Codec NO TASK Q-Sign Install Manual PAGE 2/28 History DATE Contents Name Ver. Remark 2009-02-11 Q-Sign Ver.

More information

Basic System Administration

Basic System Administration 基 本 系 统 管 理 ESX Server 3.5 ESX Server 3i 版 本 3.5 Virtual Center 2.5 基 本 管 理 指 南 基 本 管 理 指 南 修 订 时 间 :20080410 项 目 :VI-CHS-Q208-490 我 们 的 网 站 提 供 最 新 的 技 术 文 档, 网 址 为 : http://www.vmware.com/cn/support/

More information

穨文件1

穨文件1 2-1 Access 2000 Visual Basic Access 2000 97 Office Visual Basic Visual Basic Visual Basic VBA Visual Basic Visual Basic 2-1-1 Visual Basic Access Visual Basic ( ) 2-1 2-1 Visual Basic 2-1 Microsoft Access

More information

MVB-1001.DOC

MVB-1001.DOC 20 1.5 10 15 20 25 80 100 CSF 1. 2. 0105 3. 4. 5. 30% 1.5 0.75 1. Visual Basic Visual Basic (A) Visual Basic Enterprise Edition (B) Visual Basic Script Edition (C) Visual Basic Learning Edition (D) Visual

More information

工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 A B C D E F G 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 甘特图的优点 : 直观明了 ( 图形化概要 ); 简单易懂 ( 易于理解 ); 应用广泛 ( 技术通用 ) 甘特图的缺点 : 不能清晰表示活动间的逻辑关系 WBS 责任分配矩阵 ( 负责〇审批

More information

JC2.nps

JC2.nps 第 3 章 Word 文 字 处 理 Office 办 公 软 件 中 的 Word 是 Microsoft 公 司 的 一 个 文 字 处 理 应 用 程 序, 适 合 对 书 信 公 文 报 告 论 文 商 业 合 同 等 进 行 一 些 文 字 工 作 Word 不 但 能 够 处 理 文 字, 还 能 够 插 入 及 处 理 图 形 图 像 公 式 表 格 图 表, 甚 至 可 以 播 放

More information

f2.eps

f2.eps 前 言, 目 录 产 品 概 况 1 SICAM PAS SICAM 电 力 自 动 化 系 统 配 置 和 使 用 说 明 配 置 2 操 作 3 实 时 数 据 4 人 机 界 面 5 SINAUT LSA 转 换 器 6 状 态 与 控 制 信 息 A 版 本 号 : 08.03.05 附 录, 索 引 安 全 标 识 由 于 对 设 备 的 特 殊 操 作 往 往 需 要 一 些 特 殊 的

More information

2 1999 9 21 2001 21 2001 7 20 90 2002 9 2 21 4 38 30 3 ~ 6 3 2004 12 Ⅰ 1!!!!!!!!!!!!!!!!!!! 2 1. 1 2!!!!!!!!!!!!!!! 1. 2 8!!!!!!!!!!!! 1. 3 19!!!!!!!!!!!!!!!!! 2!!!!!!!!!!!!!!!!!!! 26 2. 1 26!!!!!!!!!!!!

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

Linux服务器构建与运维管理

Linux服务器构建与运维管理 1 Linux 服务器构建与运维管理 第 2 章 :Linux 基本命令 阮晓龙 13938213680 / rxl@hactcm.edu.cn http://linux.xg.hactcm.edu.cn http://www.51xueweb.cn 河南中医药大学管理科学与工程学科 2018.3 2 提纲 目录与文件的操作 mkdir touch mv cp rm rmdir file tree

More information

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30 0 配置 Host MIB 设备 V 1.1.2 ( 简体版 ) 0 Update: 2016/1/30 前言 N-Reporter 支持 Host Resource MIB 监控主机 (Host) 状态, 本文件描述 N-Reporter 用户如何配置 Host MIB 设备 文件章节如下 : 1. 配置 Windows Server 2003... 2 1-1.Windows Server 2003

More information

第3章 3.1 选择单元格 要对单元格进行编辑操作 必须先选择单元格或单元格区域 启动 Excel 并创建新的工 作簿时 单元格 A1 处于自动选定状态 选择一个单元格 C5 按 Enter键即可选定C 列和第5 行交汇 处的单元格 如图 3-3 所示 单元格处于选定状态后 单元格边框线

第3章 3.1 选择单元格 要对单元格进行编辑操作 必须先选择单元格或单元格区域 启动 Excel 并创建新的工 作簿时 单元格 A1 处于自动选定状态 选择一个单元格 C5 按 Enter键即可选定C 列和第5 行交汇 处的单元格 如图 3-3 所示 单元格处于选定状态后 单元格边框线 3 第 章 第 3 章 本章导读单元格是工作表中行列交汇处的区域, 可以保存数值 文字和声音等数据 在 Excel 中, 单元格是编辑数据的基本元素 因此, 要学习好 Excel, 就必须掌握正确的操作单元格的方法 本章将为读者介绍工作表中单元格的基本操作, 如选择单元格 调整单元格 复制与移动单元格等 学习目标 掌握选择单元格的方法 掌握调整单元格的方法 掌握复制和移动单元格的方法 掌握插入和删除单元格的方法

More information

6. 通常控制组件在窗体中的可见属性是 ( ) A. Visible B. Name C. Showing D. Hint 7. 现建立一个简单报表, 要求其中要包含报表的汇总栏, 则在 Bands 属性的子属性中, 需要选择的是 ( ) A. ColumnHeader B. Detail C. T

6. 通常控制组件在窗体中的可见属性是 ( ) A. Visible B. Name C. Showing D. Hint 7. 现建立一个简单报表, 要求其中要包含报表的汇总栏, 则在 Bands 属性的子属性中, 需要选择的是 ( ) A. ColumnHeader B. Detail C. T 试卷代号 : 2 2 3 5 座位号 [[] 中央广播电视大学 2 0 1 2-20 1 3 学年度第二学期 " 开放专科 " 期末考试 Delphi 程序设计 试题 题号 I - I 二 三 四 五 总分 分数 I I I I I I I 2013 年 7 月 得分 评卷人 - 单项选择题 ( 3 0 分, 每题 3 分 } 1. 下面哪句话对 D el p hi 的描述是正确的 ( ) A. 只能用于数据库客户端开发的工具

More information

电脑故障诊断排除 1200 例 1 PnP/PCI Configurations PnP OS INSTALLED YES NO CMOS CMOS 2 3 Award Soft Ware, Inc System Configurations 诊断排除 : BIOS BIOS 4 5 Pentium

电脑故障诊断排除 1200 例 1 PnP/PCI Configurations PnP OS INSTALLED YES NO CMOS CMOS 2 3 Award Soft Ware, Inc System Configurations 诊断排除 : BIOS BIOS 4 5 Pentium Chapter 1 1 CPU :,,? 魔法师 : 不会吧! 让我看看, 可能是你没有正确的操作吧, 虽 然电脑会经常出现故障, 但新的电脑应该很少遇到这 种情况的! :,,! 魔法师 : 关于电脑故障的问题太多了, 我得分类为你讲解, 否 则你掌握起来会很困难的, 下面将分别为你讲解主板 和 CPU 故障的诊断与排除方法 学习要点 : 主板故障诊断与排除 CUP 故障诊断与排除 电脑故障诊断排除

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y 拼图游戏 任务说明 本实例实现了拼图游戏的开发 运行程序, 单击 开始 按钮将打乱图片的位置, 效果如图 1 所示, 然后通过鼠标单击图片进行移动, 直到将所有图片都移动到正确位置, 游戏过关, 过关后的效果如图 2 所示 图 1 打乱图片位置的效果图 2 图片移动到正确位置的效果 关键技术 本程序主要通过 Swing 与枚举类实现, 程序将一幅完整的图片平均分成 9 部分, 每一部分为一个正方形,

More information

Cadence 软件应用 : 如何在 Allegro 中执行 Skill How to Perform Skills in Allegro Tools Doc Scope : Allegro Skill Doc Number : SFTEC11005 Author : Daniel Zhong Cr

Cadence 软件应用 : 如何在 Allegro 中执行 Skill How to Perform Skills in Allegro Tools Doc Scope : Allegro Skill Doc Number : SFTEC11005 Author : Daniel Zhong Cr Cadence 软件应用 : 如何在 Allegro 中执行 Skill How to Perform Skills in Allegro Tools Doc Scope : Allegro Skill Doc Number : SFTEC11005 Author : Daniel Zhong Create Date : 2011-11-09 Rev : 1.00 目录 1 Skill 简介...

More information

图 1 门电路实现全加器仿真图 (7) 放置输入源 单击工具栏中的按钮, 在图 1 的输入端放置 DCLOCK 型激励源 然后双击打开其编辑框, 如图 2 所示, 对其数值进行修改 本实验中, 输入 A 的周期设置为 4s, 输入 B 的周期设置为 2s, 输入 CI 的周期设置为 1s 图 2 激

图 1 门电路实现全加器仿真图 (7) 放置输入源 单击工具栏中的按钮, 在图 1 的输入端放置 DCLOCK 型激励源 然后双击打开其编辑框, 如图 2 所示, 对其数值进行修改 本实验中, 输入 A 的周期设置为 4s, 输入 B 的周期设置为 2s, 输入 CI 的周期设置为 1s 图 2 激 数字全加器操作说明书 本实验将分别采用 (1) 门电路 (2) 数据选择器 (3) 二进制译码器三种不同逻辑器件实现 1 位全加器的逻辑电路功能 具体的实验步骤及操作方法分述如下 1. 使用小规模集成电路 ( 门电路 ) 实现全加器 (1) 根据 1 位全加器的逻辑功能, 写出 1 位全加器的逻辑真值表, 如表 1 所示 输入 输出 表 1. 1 位全加器的逻辑真值表 A 0 0 0 0 1 1 1

More information

Excel 2013 财务与会计应用实战从入门到精通 视频教学版 2.1 选择单元格 要对单元格进行编辑操作 必须先选择单元格或单元格区域 启动 Excel 并创建新的 工作簿时 单元格 A1 处于自动选定状态 选择一个单元格 单元格处于选定状态后 单元格边框线 会变成黑粗线 表示此单元

Excel 2013 财务与会计应用实战从入门到精通 视频教学版 2.1 选择单元格 要对单元格进行编辑操作 必须先选择单元格或单元格区域 启动 Excel 并创建新的 工作簿时 单元格 A1 处于自动选定状态 选择一个单元格 单元格处于选定状态后 单元格边框线 会变成黑粗线 表示此单元 2 第 章 编辑工作表中的单元格 本章导读学习目标 Excel 2013 财务与会计应用实战从入门到精通 视频教学版 2.1 选择单元格 要对单元格进行编辑操作 必须先选择单元格或单元格区域 启动 Excel 并创建新的 工作簿时 单元格 A1 处于自动选定状态 2.1.1 选择一个单元格 单元格处于选定状态后 单元格边框线 会变成黑粗线 表示此单元格为当前单元格 当前单元格的地址显示在名称框中 内容显

More information

你的第一本 Photoshop 书 图 1.3 图 1.4 RGB 图 1.5 图 三原色光的概念 R Red G Green B Blue RGB RGB R B 3 1 RGB RGB 256 0~ RGB

你的第一本 Photoshop 书 图 1.3 图 1.4 RGB 图 1.5 图 三原色光的概念 R Red G Green B Blue RGB RGB R B 3 1 RGB RGB 256 0~ RGB 第 1 章色彩基础知识 Photoshop Photoshop 1.1 RGB 色彩模式 1.1 1.2 图 1.1 图 1.2 Photoshop sample0101.png 1.3 > CTRL O Windows Photoshop Photoshop Photoshop F8 > 1.4 B R 你的第一本 Photoshop 书 图 1.3 图 1.4 RGB 1.5 1.6 图 1.5

More information

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su StarSuite 8 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. 819 1344 10 2005 6 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Sun Sun Berkeley BSD

More information

untitled

untitled 1 .NET 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Response 類 Write 料 Redirect URL Response.Write("!! ives!!"); Response.Redirect("WebForm2.aspx"); (1) (2) Web Form

More information

附件一:

附件一: 附件二 : GIS 系统开发基础 课程教学大纲 一 课程基本信息课程代码 :16103403 课程名称 :GIS 系统开发基础英文名称 :Basic of GIS development 课程学分 :3 课程总学时 :48 实验学时 : 48 适用专业 : 人文地理学 自然地理本科专业课程类别 : 学科选修课先修课程 : 地图学 地理信息系统 GIS 软件应用, 计算机基础 二 教学总体目的和要求

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

ebook 132-2

ebook 132-2 2 SQL Server 7.0 SQL Server SQL Server 7 SQL Server 7 5 2.1 SQL Server 7 SQL Server 7 SQL Server SQL Server SQL Server 2.1.1 SQL Server Windows NT/2000 Windows 95/98 ( r a n d o m access memory R A M )

More information

抠图密集

抠图密集 Chapter 1 第 1 章 从 零 开 始! 进 入 Photoshop 的 世 界 关 键 词 : 基 本 操 作 缩 放 抓 手 还 原 重 做 图 层 变 换 平 面 设 计 师 想 要 将 设 计 灵 感 展 现 在 画 面 中 给 客 户 看? 没 问 题!PS 无 疑 是 最 好 的 选 择 摄 影 爱 好 者 想 要 提 升 摄 影 作 品 的 等 级? 没 问 题! 用 PS 稍

More information

HP and Canon 单色通用芯片表 SCC 芯片 图片 HP 700 M712, 700 M725 CF214X (14X) 17.5 HP 5200 Q7516A U16-2CHIP SSS 846 芯片记号 (U16-2) Canon LBP-3500, LBP-3900, LBP-392

HP and Canon 单色通用芯片表 SCC 芯片 图片 HP 700 M712, 700 M725 CF214X (14X) 17.5 HP 5200 Q7516A U16-2CHIP SSS 846 芯片记号 (U16-2) Canon LBP-3500, LBP-3900, LBP-392 HP and Canon 单色通用芯片表在线访问我们的网站, 可以得到更多的信息 : www.scc-inc.com/chipcenter 全部开始都是专利通用芯片一个芯片, 多个不同型号的硒鼓 注意 : 当在这个文档上要寻找一个特殊的 或打印机的型号时, 在你的键盘上同时按 CTRL 键和 F 键就能搜索到 HP and Canon 单色通用芯片表 SCC 芯片 图片 HP 700 M712, 700

More information