湖北理工学院计算机学院09级计科Delphi程序设教程.ppt

上传人:max****ui 文档编号:6435560 上传时间:2020-02-25 格式:PPT 页数:389 大小:1.35MB
返回 下载 相关 举报
湖北理工学院计算机学院09级计科Delphi程序设教程.ppt_第1页
第1页 / 共389页
湖北理工学院计算机学院09级计科Delphi程序设教程.ppt_第2页
第2页 / 共389页
湖北理工学院计算机学院09级计科Delphi程序设教程.ppt_第3页
第3页 / 共389页
点击查看更多>>
资源描述
Delphi教程 课程介绍 Delphi是著名的Borland公司开发的可视化软件开发环境 自1995年问世以来 带来了程序设计中的一场重大变化 Delphi作为第四代编程语言 具有简单 高效和功能强大等特点 这些特点使得它为广大程序开发者所青睐 第1章Delphi基础知识 1 1Delphi简介Delphi作为一种可视化的编程环境 经历了7代产品的发展历程 Borland公司在1995年推出了基于Windows平台的Delphi1 Delphi2新增加的主要功能是对32位编程的支持 还增加了如数据模块等多种高效的数据重用功能 Delphi3对其组件库进行增强 完全支持ActiveX组件及其创建 Delphi4提供了ObjectPascal语言的扩展 但系统稳定性较差 1999年推出Delphi5增强了数据库的功能 2001年6月推出Delphi6 增加了大量的新组件 使组件数目达350多个 以满足网络开发的需要 2002年8月推出Delphi7 在集成开发环境IDE Web 数据库 编译器 模型生成支持及组件库等很多方面进行了改进 1 2Delphi7IDE1 2 1认识集成开发环境Delphi7的IDE主要包括7个部分 主窗口 组件面板 工具栏 窗体设计器 代码编辑器 对象观察器和代码浏览器 图1 1Delphi7的IDE 1 主窗口主要包括 菜单栏 工具栏 标题栏和组件面板Delphi7的主菜单包括11个下拉菜单注意 工具栏上的按钮都提供了描述该按钮功能的tooltip 除了组件面板IDE有6个独立的工具栏IDE工具栏的定制功能并不仅限于配置需要显示的按钮 还可以调整工具栏 组件面板和菜单栏在主窗口中的位置 图1 2Delphi7的主窗图口 Delphi7组件板包含了350多个组件 是Delphi可视化编程的核心部件 它由27个选项卡组成组件面板如图1 4所示包含了IDE中安装的所有的VCL组件和ActiveX组件将组件板上的组件添加到窗体上的三种方法 单击组件板上的所需组件的按钮 然后在窗体适当位置拖动鼠标画出组件 即可将组件添加到窗体的指定位置上 图1 4Delphi7的组件面板 双击组件板上的所需组件的按钮 即可将组件添加到窗体的中心位置 按下键不放 单击组件板上的所需组件的按钮 所选组件出现蓝色边框 同时对象选择按钮将弹起组件板中的组件分为可视组件与非可视组件2 窗体设计器在创建新的项目时 窗体设计器是一个空白的窗口 可以用鼠标调整组件在窗体设计器上的位置和大小 还可以用对象观察器和代码编辑器来控制组件的外观和行为 3 对象观察器利用对象观察器 可以修改窗体或组件的属性 或者使它们能够响应不同的事件 属性 Property 是一些数据 如高度 颜色 字体等 它们决定了组件在屏幕上的外观 事件 Event 则是一种消息处理机制 它能够捕捉某种情况的发生并做出反应 像鼠标单击和窗口打开就是两种典型的事件 对象观察器类包括Properties选项卡和Events选项卡 下图两个对象观察器 左边一个按种类排序 右边一个按名字排序 注意 帮助系统是和对象观察器紧密结合在一起的 想了解某个属性或事件的帮助信息 只要在该属性或事件上按下F1键 图1 5按种类或名称查看ObjectInspector 4 代码编辑器代码编辑器是输入代码来指定应用程序行为的地方 也是Delphi根据应用程序中的组件自动生成代码的地方 当向应用程序中加入一个窗体时 Delphi会自动创建一个新的单元 并添加到代码编辑器顶部的标签中 5 代码浏览器以一种树状视图方式显示列在代码编辑器中的单元文件 通过它 可以方便地在单元文件中漫游或在单元文件中加入新的元素或者把已有的文件改名 要记住代码浏览器和代码编辑器有一对一的关系 6 源代码生成器当对窗体设计器中可视化组件进行操作时DelphiIDE自动生成ObjectPascal源代码 当用 File New Application 菜单命令创建一个新的项目时 将看到屏幕上出现一个空白的窗体设计器 同时 代码编辑器中会自动出现一些代码 如下所示 unitUnit1 interfaceusesWindows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs typeTForm1 class TForm private Privatedeclarations public Publicdeclarations end varForm1 TForm1 implementation R dfm end 从上述源代码清单中可以看出 窗体对象是从TForm继承下来的 下面这一行非常重要 R dfm Pascal语言中的 R指令用于加载一个外部资源文件 dfm文件中包含在窗体设计器中创建的表单的二进制代码 其中的 表示与当前单元文件同名的文件 项目文件的扩展名是 dpr可以选择主菜单下的 Project ViewSource 命令把项目源文件调入代码编辑器 如下用程序示例的项目文件 programProject1 usesForms Unit1in Unit1 pas Form1 R res beginApplication Initialize Application CreateForm TForm1 Form1 Application Run end 当添加表单和单元时将出现在uses子句中 1 2 2基于组件的编程思想 早期DOS操作系统和C语言主导的时代 数据结构 算法 成为构建软件惟一方式 C 语言和面向对象技术 20世纪90年代中期流行一种崭新的程序设计概念 软件可以由可互换的组件构成组件是一种通过公开的属性 方法 事件 是可以重复使用的一种经过编译的二进制文件 其文件名可以是 OCX或者是 dll 如命令按钮 复选框 单选框 滚动条等都是常见的组件 1 2 3Delphi7的特点Delphi最显著的特点就是高效性和稳定性 主要体现在以下4个方面 可视化开发环境的性能 编译器的速度和已编译代码的效率 编程语言的功能及其复杂性 丰富的VCL1 可视化开发环境可视化开发环境通常可分为3个部分 编辑器 调试窗口和窗体设计器 2 编译器的速度和已编译代码的效率Pascal编译器最著名特点就是速度快 而Delphi正是建立在这种编译器基础之上的 增加了链接和各种缓存策略 尤其是在VisualC 和C Builder中 3 编程语言的功能及其复杂性汇编是一种最有力的语言 即便是用汇编开发最简单的应用程序 难度也非常大 还可能一无所获 4 丰富的VCLVCL是Delphi7最重要的组成部分 包含不同种类的组件 1 2 4帮助的使用 1 当遇到问题时 可以尝试按下 F1 键 一般情况下Delphi都会准确地定位 2 如果需要浏览系统的一些帮助内容 比如说对象Pascal语言 可以通过菜单 Help DelphiHelp 命令打开 帮助主题 DelphiHelp 对话框 在目录标签中展开相关条目 进行系统学习 3 当使用WindowsAPI函数时 通过 Help DelphiHelp 打开的 帮助主题 DelphiHelp 对话框中 在 索引 选项卡中可能查不到有关的帮助信息 有两种解决办法 一种办法是在代码编辑器中输入WindowsAPI函数的名称 然后将光标定位到该名称中 接着按下 F1 键 另一种办法是通过 Help WindowsSDK 打开帮助文件Win32 hlp 在 索引 选项卡中查找 4 帮助文件打开时 要浏览相关内容 可以按下工具栏中的 或 按钮 通常这样是在同一个主题中浏览 通过一些SeeAlso热链接 也可以查看相关的帮助内容 5 在组件栏上右击 通过快捷菜单的Help命令 可以查看有关组件的帮助内容 6 在Delphi集成开发环境中 通过 Help Customize 命令可以打开 OpenHelp 窗口 在该窗口中可以对帮助文件进行管理 其中包括帮助内容 帮助索引 链接位置和帮助工程文件等的管理 1 3简单Delphi程序设计Delphi7编写应用程序包括新建应用程序 设置窗体属性 添加组件 设置组件属性 添加事件 编写事件响应代码 编译运行等1 新建应用程序 启动Delphi7 选择 File New Application 菜单 新建一个应用程序 2 设置窗体属性单击 ObjectInspector 在对象观察器中打开 Properties 选项卡 单击Caption属性右侧 输入窗体的新标题 窗口 3 向窗体中添加组件单击Standard选项卡上的Button组件 将鼠标指向窗体中的任意位置 标题栏除外 单击鼠标 即可把Button1组件放入窗体中 或者直接双击组件面板上的Button组件 也可以在窗体中添加一个Button1组件 4 设置组件属性选中组件 单击ObjectInspector的标题栏以激活对象观察器 并选择Properties选项卡 在对象观察器中单击要设置的属性 进行属性设置 5 添加事件选中要添加事件的组件 激活对象观察器 并选择Event选项卡 在对象观察器中单击要添加的事件 在其右侧输入事件的响应函数名称 然后回车即可 6 编写事件响应代码 选定要编写事件响应代码的组件 打开Event选项卡 双击要编写响应代码的事件右侧的空白部分 进入代码编辑窗口 procedureTForm1 Button1Click Sender TObject 单击放大按钮 窗口将放大beginform1 Height form1 Height 10 窗口高度10form1 Width form1 Width 10 窗口宽度10end procedureTForm1 Button2Click Sender TObject 单击缩小按钮 窗口将缩小Beginform1 Height form1 Height 10 窗口高度减10 form1 Width form1 Width 10 窗口宽度减10end procedureTForm1 Button3Click Sender TObject 关闭窗口beginclose 退出end 7 编译运行程序 图1 6例程运行界面 1 4Delphi上机步骤1 启动程序2 添加组件在窗体设计器中添加如图1 7所示的各组件 3 设置组件属性4 编写代码组件属性设置完成后 编写如下代码 图1 7窗体布局图 procedureTForm1 Edit1Change Sender TObject 编辑框1中的内容改变时的事件varstringlength integer 定义整型变量 记录编辑框1中字符的个数beginstringlength edit1 GetTextLen 得到编辑框1中字符个数edit2 Text inttostr stringlength 编辑框2显示编辑框1中字符个数end procedureTForm1 Button1Click Sender TObject 关闭窗口beginclose end 5 保存工程保存工程分为保存单元文件和保存项目文件两步 第一步是保存单元文件 单击工具栏上的Save按钮 将打开SaveUnit1As窗口 默认的单元文件名是 Unit1 pas 以 pas 为扩展名 单元文件名根据需要可以另取 第二步是保存项目文件 单击工具栏上SaveProject1As按钮 默认的项目文件名是 Project1 dpr 工程文件名根据需要可以另取以 dpr 为扩展名 6 运行工程保存工程结束后即可运行工程小结在本章中 主要介绍了Delphi的产生和发展 Delphi的特点 使用Delphi进行程序设计的一些基础知识 本章的重点是Delphi的开发环境和开发方法 通过实例介绍了Delphi的程序设计和上机操作的一般步骤 图1 10工程运行界面图 第2章Delphi语法基础 2 1保留字与标识符2 1 1标识符标识符是ObjectPascal语言中各种成分的名称 这些成分包括变量 Var 常量 Const 类型 Type 过程 Procedure 函数 Function 方法 Method 单元 Unit 等 标识符可以分为三类 标准标识符 自定义标识符和限定标识符 1 标准标识符 1 标准常量 如False Maxint True等 2 标准类型 如Boolean Char Real等 3 标准函数 如Sin Cos Abs Arctan等 4 标准过程 如Dispose Get New Pack Put等 5 标准文件 如Input Output等 2 自定义标识符程序员根据程序设计的需要 自己定义的常量 变量 类型 函数 过程等所取的名字 自定义标识符可以由任意长的一个不带空格的字符串组成 包括字母A Z a z 数字0 9和下划线 等 定义标识符需要遵循以下规则 1 标识符不区分大小写 2 标识符只能以字母或下划线开头 不能以数字开头 3 标识符可任意长度 但只有前225个字符有效 4 标识符中间不允许有空格 5 不允许使用ObjectPascal语言的保留字作为标识符 3 限定标识符在Delphi程序中可引用多个单元 而各个单元中全局变量 函数 过程等可能会同名 在引用时需用限定标识符来区分它们 VarY real Y System cos pi 其中System称为限定符 而System cos称为限定标识符 2 1 2保留字保留字由系统规定具有特定意义 不能被重新定义或作他用 定义了65个保留字 注意 1 单词at和on具有特殊含义 不要与它们同名 2 保留字和ObjectPascal一样不区分大小写 3 Delphi集成开发环境的代码编辑器中 黑体显示保留字和指令字 定义时不要与这些黑体字一样 ObjectPascal的保留字 2 1 3指令符指令字只在特殊的程序位置 或当上下文关联时有意义的程序区段有自己特殊的意义 而在其他场合 用户可对其重新定义 即可将其定义为标识符 ObjectPascal不会指示出错 当用户重新定义这些指令字后 在作用域内它们就失去了原来的意义了 ObjectPascal中规定的指令符有39个说明 指令符private protected public published和automated在定义对象类型时也作为保留字 而在其他场合则作为指令符 2 1 4注释注释可增加程序的可读性和可维护性 ObjectPascal语言中注释有三种形式 1 组合符号 与 的成对使用表示它们之间的内容为注释部分 2 组合符号 与 的成对使用表示它们之间的内容为注释部分 3 符号 的单个使用表示所在行的该符号之后的内容为注释 注意 1 注释符 与 与 在使用时不支持注释的嵌套 而且必须成对使用 2 对于单行和少量几行注释使用符号 对于大块注释使用 和 或 和 3 有时可利用注释在代码中形成一个醒目标志 4 在注释符 或 后紧接着是一个美元符号 时 表示该句是一个编译器指令 它与普通的注释不同 通常用来对编译过程进行设置 2 2数据类型描述客观事物的数 字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合称为数据 数据类型可以分为标准数据类型及高级数据类型等 还可以通过数据类型声明语句在预定义数据类型的基础上定义新数据类型 说明 1 标准数据类型属于ObjectPascal内部约定的数据类型 无需定义就可以直接使用 2 高级数据类型体现了特殊的数据结构 在使用之前必须由用户自己定义 3 数据类型中整型 字符型 布尔型 枚举型和子界型被称为顺序类型 其取值是一个有序集合 每一个可能取值都与顺序有关 2 2 1数值型数据数值型数据可分为整数类型和实数类型 1 整数类型整数类型是存储整数数据的类型 分为基本整形和一般整形 基本整形 短整型 小整型 长整型 64位整型 字节型 字型 长字型一般整形 整型 序数型注意 尽量使用一般整型Integer和Cardinal 可以最大限度发挥CPU和操作系统的性能 2 实数类型实数类型是存储实数数据的类型 分为基本实型和一般实型 基本实型 单精度实型 扩展型 双精度实型 货币型一般实型 实型 注意 Real类型与Double类型完全等价 Currency类型至少有4位有效的小数位 2 2 2字符型数据ObjectPascal中的字符型数据可以分为字符型和字符串型2类7种 1 字符类型ObjectPascal包括3种形式的字符型数据 说明 1 前2种为基本字符类型后一种为一般类型 2 Char与AnsiChar完全等价 但Char常用 2 字符串类型字符串类型是存储字符串数据的类型 ObjectPascal包括了4种形式的字符串型数据 说明 AnsiString类型的定义是动态分配的 内容由AnsiChar类型的字符组成 长度仅受可用内存空间的限制 以空字符Nul作为结尾 String字符串类型 既可以是ShortString类型也可以是AnsiString类型 默认定义是AnsiString类型 2 2 3布尔型数据布尔型数据用于关系运算和条件语句的逻辑运算 包括4种形式的布尔型数据 说明 1 后3种类型是为了兼容其他语言而设置的 编程时应尽量使用Boolean类型 2 Boolean取值为False和True两个符号常量 2 3常量与变量2 3 1常量常量即在程序的执行过程中其值不能改变的量 常量有两种 一种是常量值本身 也称为直接常量 另一种是要用声明定义的标识符表示的常量 也称为声明常量 声明常量又可以分为符号常量和类型常量 1 直接常量直接常量是指在程序中直接引用的常数 如整型常数 实型常数 字符型常数 字符串型常数和布尔型常数 2 声明常量 1 符号常量在程序中 某一个常数反复多次出现 可以定义一个标识符来代表该常数 这个标识符就是符号常量 其值在定义后不会改变 也称纯常量 定义符号常量使用常量说明语句 其语法格式为 Const 其中Const是保留字 表示常量定义段开始 注意 保留字Const可单独一行也可与常量一行 不能在程序中给常量另行赋值 否则将导致语法错误 Delphi由常量值判断常量名属于哪种类型 2 类型常量类型常量用于保存数组 记录 过程以及指针等类型的值 不能出现在常量表达式中 在默认的编译器状态下 类型常量的值可改变 但当在程序中加入编译命令 j 时 则类型常量的值在运行期就无法改变 声明类型常量的语法规则为 Const 其中类型是除文件型和可变型的所有类型 常量值可以是和类型相应的常量表达式 2 3 2变量1 变量的声明变量在单元 函数或过程的声明部分进行声明 声明的位置决定了变量的作用域 声明包括两部分 变量名和它所属的类型 变量声明的语法格式为 Var 当多个变量具有相同数据类型时 格式如下 Var 其中 Var是保留字 表示变量声明段的开始 同类型的可超过一个 间用 分隔 可以是基本数据类型或是由用户定义的高级数据类型 2 变量的使用一旦声明了一个变量应及时对它进行初始化 最简单方法就是给变量赋值 在表达式中使用变量 2 4运算符与表达式按照操作数数目的多少来分 运算符分为下面两类 单目运算符和双目运算符 单目运算符一般放在操作对象的前面 双目运算符都放在两个操作数之间 表达式是表示某个求值规则的运算公式 由运算符和配对的圆括号将常量 变量 函数 对象等操作数以合理的形式组合而成 2 4 1算术运算符与算术表达式1 算术运算符算术运算符对浮点数和整数进行加 减 乘 除和取模运算 取正 和取负 是单目运算符 其他均为双目运算符 说明 1 运算中 参加运算的数可以是整型和实型 结果自动向精度高的类型转化 2 参加除法运算 结果都是实型的商 3 参加整数除法 Div 和求余运算 Mod 的数必须是整型 结果也是整型数 符号与被除数的符号相同 小数部分被舍去 4 在表达式a b aDivb和aModb中 如果b的值为0 将会触发一个错误 2 算术运算符的优先级同级运算自左至右 如果含有括号 则先计算括号内表达式的值 3 算术表达式将数学式改写为算术表达式 考虑三个问题 一是语法 二是优先级 三是类型 说明 1 数学式中省略的运算符和表示函数参数的括号必须添加上去 2 必须注意优先级的处理 恰当利用标准函数 注意数据类型 2 4 2逻辑运算符与布尔表达式逻辑运算符可分为布尔运算符 位运算符和关系运算符 1 布尔运算符只能对两个布尔型操作数进行运算 结果仍为布尔型 True或False 其中 NOT是求 非 为一元运算符 AND是求 与 OR是求 或 XOR是求 异或 均为二元运算符 2 位运算符 注意 右移操作时原值的低位丢失 高位补0 左移操作时原值的高位丢失 低位补0 3 关系运算符 4 布尔表达式布尔表达式由布尔运算符和布尔类型的操作数所组成 包括关系运算表达式和运算结果为布尔类型的函数 如Odd x FileExists x 等 但位运算符的结果是整数类型 不能直接作为布尔操作数 2 4 3字符串运算符连接运算符 主要用于连接两个或更多的字符串 最简单的字符串表达式是字符常量 字符串常量 字符变量 字符串变量或字符函数的引用 字符串表达式格式为 当两个字符串用连接运算符连接起来后 第二个字符串直接添加到第一个字符串的尾部 结果是包含两个源字符串全部内容的新字符串 如果要把多个字符串连接起来 每两个字符串之间都要用 号分隔 2 4 4运算符的优先级 2 5常用系统函数与过程2 5 1数值运算函数Delphi的数值运算函数包含了常用的数学函数 如三角函数 对数函数等 和适合计算机数据处理的其他函数 如求数组中的最大值 求三角形的斜边长等 2 5 2字符处理函数对字符的处理主要包括 大小写转换 比较先后顺序 合并 查找 截取 插入 求长度以及类型转换等 2 5 3日期时间函数调用日期时间函数可对日期和时间进行处理 2 5 4顺序类型函数1 顺序类型顺序类型指整型 字符型 布尔型 枚举型 子界型5种数据类型 如下所述 1 整数的的序数是其自身 2 字符的序数是其ASCII码 3 布尔型数据 False序数为0 True为1 4 枚举型第一个数据序数为0 其余类推 5 子界型第一个数据序数为1 其余类推 除第一个序数 每一个都有一个前趋值 除最后一个序数 每一个都有一个后继值 2 顺序函数2 6语句2 6 1语句的基本概念按执行时间可分为 声明语句和可执行语句 声明语句包括单元说明语句 类型说明语句 变量说明语句 过程说明语句 函数说明语句和程序区段标识语句等 可执行语句包括赋值语句 运行控制语句和结构控制语句等 按语句的描述形式 可分为简单语句 结构语句和复合语句等 简单语句只含有一个语句定义符或特殊标志 结构语句往往含有多于一个的语句动词 复合语句则是由begin和end括起来的若干个简单语句 结构语句和复合语句 允许复合语句多层嵌套 或为空 也就是在begin和end之间没有其他语句 2 6 2常见声明语句1 标号声明语句标号声明语句即用一个整型数来表示程序的某个执行语句 一行标号声明语句可以同时声明几个标号 其用法如下所示 labelAa Ab varI integer begin 语句if I 0 thengotoAa 语句Aa begin 语句end end 2 类型声明语句在ObjectPascal中 所有的变量必须是某种特定的数据类型 类型决定了它所能包含的数值和可进行的操作 用类型声明语句可以定义新的数据类型 例如 TypeTmyDim Array 1 10 1 5 ofDouble 3 过程声明语句过程可以被看成一段小程序 用来实现某种特定的目标 在完整的程序中它被当作一个语句来执行 在建立过程之前应先声明 procedureNumString N Integr VarS string 4 函数声明语句函数与过程相似 主要区别在于函数必须有返回值 函数的声明参见下面的语句 其中 最后的Real表示函数的返回数据类型 FunctionPower X Real Y Integer Real 2 6 3赋值语句和程序的顺序结构1 赋值语句赋值语句的语法格式为 2 类型兼容类型兼容是指数据类型不完全相同的量之间能进行的运算和赋值操作 3 利用赋值语句给对象属性赋值由于属性总是归属于对象才有实际意义 所以引用属性时用符号 来连接表示其隶属关系 如组件Editl的字体的颜色属性表示为 Editl Font Color 4 顺序结构顺序结构是最简单 最常用的结构 在该结构中 各操作块按照出现的先后顺序依次执行 不产生程序流程的其他转移 它是任何程序的主体结构 即使在选择结构或循环结构中 也常以顺序结构作为其子结构 通常由若干个赋值语句或其他简单语句构成 2 6 4条件语句和程序的选择结构实现选择结构的是IF语句和Case语句 这两种语句又称条件语句 条件语句的功能就是根据表达式的值有选择地执行一组语句 1 if语句通过条件的布尔表达式值选择执行路径 ifthen else if语句分为简单条件语句和复合条件语句 简单条件语句的中不包含其他的条件语句 如果在If语句格式中的或本身又是一个If语句 则称为If语句的嵌套 嵌套的If语句又被称为复合条件语句 2 Case语句Case语句用来实现多分支选择结构 Case语句描述了多路择一的功能 它根据 选择器表达式 的值决定执行相应的语句 Case语句的语法格式为 caseof else end 说明 的值必须是顺序类型 2 6 5循环语句和程序的循环结构从某处开始有规律地反复执行某一程序块的现象称为 循环 完成这一功能的程序结构为 循环结构 而其中重复执行的程序块称为 循环体 循环结构语句有3种 它们分别是 While语句 Repeat语句以及For语句 1 While语句While语句属于前测型循环结构 首先判断条件 根据条件决定是否执行循环 执行循环的最少次数为0 其语法格式为 whiledo 说明 可在 循环体 中任何位置Break语句来终止While循环 Break语句通常位于IF语句后 可在循环体中任何位置放置Continue语句 以便在整个循环体没有执行完就重新判断 条件 以决定是否开始新的循环 Continue语句通常位于IF语句之后 2 Repeat语句Repeat语句属于后测型循环结构 首先执行循环体 然后判断条件 根据条件决定是否继续执行循环 执行循环的最少次数为1 repeat until 3 For语句若知道要执行多少次循环时 则使用For循环结构 For循环使用一个循环变量 每重复一次循环之后 循环变量的值就会自动增加或者减少 For语句的语法格式为 for to downto do 说明 只能是顺序类型 TO表示计数器递增 DownTo表示计数器递减 4 循环的嵌套循环语句的循环体中仅包含了简单语句 称为单重循环 如果在循环体中又包含了另一个循环结构 则称为多重循环 又称为循环的嵌套 在循环体中的嵌套称为内循环 外部的循环称为外循环 多重循环嵌套根据循环结构嵌套层数可以分为二重循环 三重循环等 5 循环的中断特殊情况下 需要中断正在执行的循环 可以使用break语句或Continue语句 可以放在循环体的任意位置 通常放在If语句之后 执行Break语句的结果是 跳出整个循环 执行之后的语句 执行Continue语句的结果是 跳出本轮循环 然后判断循环条件是否成立 再决定是否开始新一轮的循环 小结本章主要介绍了ObjectPascal的最基本的语法 主要包括基本词法 基本数据类型 常量与变量 运算符与表达式 常用函数与过程 语句等 第3章常用组件 Delphi7 0的组件板上含有27个选项卡 总共包括350多个组件 如图所示 3 1窗体3 1 1Form组件窗体是应用程序的操作界面 是放置组件的基础 窗体由标题栏 工作区和边界组成 图3 1组件板和选项卡运行界面图 Form的主要属性窗体组件 TForm 在运行时表现为一个窗体 窗体是一个容器构件 它可以包含其他种类的构件 并协同完成应用程序的整体功能 窗体由属性 事件和方法组成 1 BorderIcons属性用来制定窗体标题栏上的图标 2 BorderStyle属性Borderstyle属性用来设置窗体的外观和边框 3 Name属性Name属性唯一地标识对象 取值不能为空 若工程中有多个窗体 名称不能相同 4 Caption属性用来指定窗体标题栏中说明文字 可以为空 5 Font属性Font属性用来设置窗体中文字的字体 颜色和字号等等 其中Font style属性为集合型 6 FormStyle属性FormStyle属性用来指定窗体的类型 从窗体类型的角度来看 Windows环境中的应用程序可以分为以下三类 第一类 多文档界面 MDI 应用程序一般这种应用程序具有一个父级窗口和多个子窗口 可以同时打开多个文档 分别在多个子窗口中显示 第二类 单文档界面 SDI 应用程序这种应用程序同时只能打开一个文档 第三类 对话框应用程序这种应用程序的主界面基于一个对话框类型的窗体 7 Icon属性Icon属性用来指定标题栏中显示的图标 8 Position属性Position属性用来描述窗体大小和显示位置 9 WindowsState属性WindowsState属性来描述窗体显示状态 2 TForm的事件窗体是一个可视化的组件 包括外部事件和内部事件 3 窗体的方法一些常用方法 过程或函数 有 Create Close CloseQuery release Show ShowModal Print 4 窗体的创建创建窗体的方法分为两种 静态创建和动态创建 所谓静态创建窗体是指再工程的编辑 设计时创建新窗体 而动态创建窗体是指在工程的运行时通过代码生成窗体 1 静态创建新窗体通过集成开发环境中的 File New Application 菜单 创建一个应用程序 此时自动生成一个窗体Form1 再打开 File New Form 菜单生成一个窗体Form2 在Form1中添加两个Button 1个Label组件 Form2中添加1个Label组件 即可完成界面设计 添加代码 procedureTForm1 Button1Click Sender TObject 创建按钮事件begin 关键分析form2 show 调用Show方法显示Form2窗体end procedureTForm1 Button2Click Sender TObject beginform1 Close end 程序分析 编译上述工程时 系统会弹出出错提示信息 单击 Yes 按钮 Delphi将自动在Unit1单元中添加对Unit2单元的引用 2 动态态创建新窗体在需要某个窗体时 临时创建它 使用后将其立即释放 这种称为窗体的动态创建 3 1 2弹出对话框窗体Delphi提供内部对话框有两种 第一种 信息输出对话框Showmessage过程 ShowMessageFmt过程 MessageDlg函数 MessageDlgPos函数 CreateMessageDialog函数 第二种 信息输入对话框InputBox函数 InputQuery函数 1 ShowMessage过程其语法格式为 ShowMessage 2 ShowMessageFmt过程的语法格式为 ShowMessageFmt 3 MessageDlg函数其语法格式为 MessageDlg HelpCtx 4 MessageDlgPos函数 其语法格式为 MessageDlgPos HelpCtx X Y 可以指定对话框的显示位置坐标 X Y 5 CreatMessageDialog函数其语法格式为 CreatMessageDialog 6 InputBox函数其语法格为 InputBox 7 InputQuery函数其语法格式为 InputQuery 3 2输入显示类组件3 2 1Edit组件编辑框 Edit 是一种通用组件 既可以输入文本 又可以显示文本 编辑框组件位于Standard组件板中 图3 7编辑框Edit运行界面图 1 Edit的主要属性 1 AutoSelect属性 设置编辑框得到焦点时 文本是否自动被选中 2 AutoSize属性 决定编辑框是否自动随字体的变化而改变大小 3 Enable属性 用来设置编辑框是否能用 4 BorderSytle属性 设置编辑框边框类型 5 MaxLength属性 设所能接受最大字符数 6 PasswordChar属性 设置非 0字符时 将代替用户输入的字符被显示 7 ReadOnly属性 定编辑框中的文本是否可以编辑 8 SelStart属性 被选中文本的开始位置 或光标在文本中的位置 9 SelText属性 被选中的文本 10 SelLength属性 被选中文本的长度 11 Text属性 编辑框中的文本内容 12 CharCase属性 控制编辑框中文本大小写3 2 2Label组件标签组件位于Standard组件板中 图3 8标签Label运行界面图 1 Label的主要属性 1 Caption属性 用来显示标签的文本 2 ShowAccelChar属性 决定是否将 作为作为热键字符的标记 3 AutoSize属性 决定标签是否自动随文本的变化而改变大小 4 Alignment属性 决定对齐方式 5 Layout属性 控制文本显示在标签的位置 6 WordWrap属性 控制是否折行显示 7 Transparent属性 决定背景是否透明 8 FocusControl属性 用来获得焦点组件名 3 2 3Memo组件备注框组件位于Standard组件板中 1 Memo的主要属性备注框在Delphi中用Tmemo类处理 Tmemo类是Tedit类的衍生类 为了处理多行文本 Tmemo类还增加了一些新的属性 1 CaretPos属性 得到光标在编辑区中位置 2 Lines属性 用来存放Memo对象的文本 3 Modified属性 确定文本是否被改动过 图3 10备注框Memo运行界面图 4 ScrollBars属性 决定备注框是否具有滚动条 5 WordWrap属性 设置文本是否能够换行 6 WantReturns属性 用来设置备注框是否能插入 回车 键 7 WantTabs属性 用来设置备注框是否能插入 Tab 键 2 Memo的使用 例3 4 利用编辑框 把编辑框中的文本输入到Memo中 1 界面设计 创建一个新的工程 在窗体中添加1个按钮Button1组件 一个编辑框Edit1组件和一个备注框Memo1组件 各组件的属性设置如图 2 程序设计procedureTForm1 Button1Click Sender TObject beginMemo1 Lines Add Edit1 Text edit1 Text edit1 SetFocus end 图3 12Memo示例运行界面图 procedureTForm1 FormActivate Sender TObject beginedit1 SetFocus end 3 2 4MaskEdit组件它限制用户在所定义的位置输入要求输入的符号 掩码编辑框 MaskEdit 组件位于Additional附加组件板 中 1 MaskEdit常用属性 图3 13Memo示例运行界面图 EditMask属性EditMask属性用来控制用户输入数据格式的掩码字符串 掩码字符串EditMask属性分为三个部分 用分号分隔 第一部分是掩码字符串的主要部分 它确定了数据的格式 第二部分决定是否将掩码中的字符串作为数据的一部分 0表示不作为数据的一部分 1表示作为数据的一部分 它将影响属性 第三部分指出在掩码中用来代表未输入数据的字符 2 EditText属性 用来返回用户输入的数据 3 3按钮类组件3 3 1Button组件Button按钮在Delphi7 0组件板Standard选项卡中1 Button的主要属性 1 Caption属性 来制定按钮所显示的文字 2 Cancel属性 决定改按钮是否为取消按钮 缺省值为False 3 Default属性 用来决定改按钮是否为默认按钮 缺省值为False 图3 16Button基本按钮运行界面图 4 ModalResult属性 用来决定模式窗体如何被关闭 2 Button的事件Button组件常用的事件如表所示 在下述两种情况下 OnClick事件将被激发 1 用鼠标单击按钮 2 按钮获得焦点时按下键或空格键 3 3 2BitBtn组件位于Delphi7 0组件板Additional选项卡中 1 BitBtn的主要属性 1 Glyph属性 为bitBtn制定一个 bmp文件 显示再按钮的表面 2 Kind属性 决定bitBtn按钮的种类 3 Layout属性 用来控制bitBtn按钮中位图与文本的相对位置 默认值为blGlyphLeft 4 Margin属性 用来控制bitBtn按钮中位图与边界之间的象素个数 图3 17BitBtn按钮运行界面图 5 Spacing属性 用来控制bitBtn按钮中位图与文本之间的 距离 象素个数 默认值为4 2 BitBtn的事件BitBtn组件常用的事件如表所示 在下述两种情况下 OnClick事件将被激发 1 用鼠标单击按钮 2 按钮获得焦点时按下键或空格键 3 3 3SpeedButton组件快速按钮 SpeedButton 是一种可以成组工作的按钮 具有将位图显示在按钮表面的功能 还具有允许其中一个按钮被选中 按下 的功能 当它单独使用时具有开关的功能 快速按钮位于Additonal组件板中 SpeedButton的主要属性有 1 AllowAllUp属性 控制是否允许单击处于按下状态的按钮 使之恢复到松开状态 默认值为False 图3 19快速按钮SpeedButton运行界面图 2 Down属性 设置按钮是否处于按下状态 3 Flat属性 当取值为True时 按钮具有Office97工具栏的风格 默认值为False 4 GroupIdex属性 该属性默认值为0 表示不与其他SpeedButton成组 3 4复选框 单选按钮和单选按钮组3 4 1CheckBox组件位于Delphi7 0组件板Standard选项卡中 图3 21复选框CheckBox 复选框CheckBox具有选中和未被选中两种状态 未选中状态 选中状态 还有一种不确定状态 表示既非选中又非未选中 1 CheckBox的主要属性 1 Checked属性 用于表明CheckBox是否被选中 2 State属性 属性State进一步确定CheckBox状态 有3种值 cbChecked cbUnchecked和cbGrayed 分别为选中 未选中和不确定 3 AllowGrayed属性 为True时 复选框有3种选择 为False时 只有选中和未选中状态 3 4 2RadioButton组件位于Delphi7 0组件板Standard选项卡中 RadioButton的主要属性有 Checked属性 表明CheckBox是否被选中 RadioButton有两种状态 如果当Checked属性为True时 表示选中状态 如果当Checked属性为False时 表示未选中状态 3 4 3RadioGroup组件位于Delphi7 0组件板Standard选项卡中 图3 23单选按钮RadioButton 1 RadioGroup的主要属性 1 Columns属性属性Columns用于设置单选按钮组中按钮的列数 范围1 16 默认值为1 2 Items属性 用于设置各种单选按钮标题 3 ItemIndex属性 单选按钮组中被选中按钮 从0开始 的序号 默认值为 1 表示组中按钮均未被选中 图3 25单选按钮组RadioGroup 3 5列表框 组合框3 5 1ListBox组件当列表框不能同时显示所有选择项时 将自动加上一个垂直滚动条 使用户可以上下滚动列表框 以查阅所有的选项 列表框位于组件板Standard选项卡中 ListBox的主要属性 1 Items属性 列表框中选项的集合 2 ItemsIndex属性 为选项的索引值 图3 28列表框ListBox运行界面图 3 Stored属性 决定选项是否排序 4 Columns属性 决定列表框的列数 5 MultiSelect属性 定是否可以选择多项 6 SelCount属性 被选中的项的数目 只读 7 Selected属性 设置或返回是否被选中 8 IntegralHelght属性 True自动调整框的高度使每行的高度 IntemHeight 可以完整地被显示 False不自动调整框的高度 非完整高度行被显示在框的底部 9 ItemHeight属性 控制列表框中行的高度 10 Style属性lbStandard固定Font Size属性与ItemHeight属性之比 lbOwnerDrawFixed可以调整ItemHeight 并将自动调整框的高度以适应行高 LbOwnerDrawVariable可以调整ItemHeight属性 需手动调整框的高度以适应行高 3 5 2ComboBox组件兼有EditBox和ListBox两者功能 用户可以通过键入文本或选择列表中项目来进行选择 组合框位于组件板Standard选项卡中 1 组合框的主要属性 1 Items属性 列表框中选项的集合 2 ItemsIndex属性 为选项的索引值 3 Stored属性 决定选项是否排序 4 DorpDownCount属性 控制组合框下拉列表所能显示选项的最大个数 5 SelText属性 存储显示于编辑区中被选中项的内容 6 Style属性 决定组合框的风格 图3 29组合框ComboBox 3 6滚动条要想自己操纵窗口的滚动 就要用到TScrollBar组件 当在滚动条上操作时 将触发OnScroll事件 TScrollBar组件直接继承于TwinControl中 位于Standard选项卡中 1 ScrollBar主要属性 方法与事件 1 LargeChange属性 当用户单击滚动条时 滚动距离由LargeChange属性设置 默认1 2 Max Min属性 设置滚动条可滚动的范围 图3 31滚动条Scrollbar 3 PageSize属性 当用户按键盘上的PageUp或PageDown键时 滚动条滚动的距离是由PageSize属性设置的 默认是1 4 Position属性 设置或返回滚动条中小方块的位置 5 SmallChange属性 是用户按滚动条两端的箭头时滚动条的距离 默认值是1 6 SetPaxams方法 该过程相当于分别设置Position Max和Min属性 7 OnScroll事件 第三个参数返回滚动条小方块的位置 第二个参数返回滚动条的状态 3 6计时器Timer组件位于System组件板中 如图所示 属于非可视化组件 在设计时显示为一个小时钟图标 而在运行时则不可见了 冲用来做一些后台处理 1 Timer组件的主要属性与事件 1 Enanled属性 为Ture时 定时器开始工作 为False时定时器暂停工作 2 Interval属性 用来设置定时器触发周期 图3 32Timer计时器 3 OnTimer事件 Timer组件只提供一个事件 即OnTimer 该事件以Interval属性设置的频率被触发 3 7对话框组件3 7 1Opendialog组件用于打开一个已经存在的文件 用户选择某一文件 其所在的驱动器 文件夹 文件名以及扩展名将被赋予Opendialog的filename属性 Opendialog组件位于Dialogs组件板如图3 34的所示的第一个组件 图3 34Dialogs组件板 Opendialog组件的主要属性 1 DefaultExt属性 用于设置系统自动附加的扩展文件名 既在用户没有设置文件类型时系统会自动附加该文件类型 2 Filter属性 设置可打开的文件类型 Filter属性的设置可点击右端按钮 打开如图所示的对话框进行设置 图3 35FilterEditor对话框 3 FilterIndex属性 设置默认的Filter值 为1时则默认的文件类型为Filter属性中列举的第一个文件类型 4 Initialdir属性 对话框打开的初始化路径 5 Options属性 设置对话框的作用及表现形式 包括是否可选择多个文件 是否允许长文件名 是否可以调节对话框的大小等 3 7 2Savedialog组件用于提供一个另存为对话框 用户输入某一文件 其所在的驱动器 文件夹 文件名以及文件扩展名将被赋予SaveDialog的filename属性 Savedialog组件位于Dialogs组件板如图3 34的所示的第二个组件 3 7 3Fontdialog组件用于提供一个字体对话框 用户可以选择需要的字体名称 样式 大小 效果及字体颜色等 这些选择将被赋予Fontdialog的Font属性 Fontdialog组件位于Dialogs组件板如图3 34的所示的第五个组件 3 7 4Colordialog组件用于提供一个颜色对话框 用户可以选择需要的颜色等属性 这些选择将被赋予Colordialog的Color属性 Colordialog组件位于Dialogs组件板如图3 34所示第六个组件 3 8Win3 1组件3 8 1FileListBox组件用于显示指定目录文件名滚动列表 位于如图3 38所示Win3 1组件板中第八个组件 FileListBox组件的主要属性 1 Directory属性 设置当前文件目录 显示的文件列及表自动更新显示文件目录的文件 2 Drive属性 用于设置当前驱动器盘的号 当前属性值改变时 Directory属性值自动改变为新的驱动器下的当前目录 图3 38Win3 1组件板 3 ExtenderdSelect属性 若为Ture则可按着键然后用鼠标选择多个文件 4 FileEdit属性 用于将文件列表链接至一个编辑组件 显示列表中当前被选中的文件 5 FileName属性 存放了列表中当前被选中的文件的文件名及路径名 6 FileType属性 决定了文件列表中显示的文件的属性类型 7 Mask属性 用于设置文件列表中显示的文件类型 8 ShowGlyphs属性 用于设置文件是否在文件旁边显示文件图标 9 MultisSelect属性 用于设置用户是否可以一次选中多个文件 3 8 2DirectoryListBox组件用于显示指定驱动器下的目录列表 该组件位于如图3 38所示中第九个组件 DirectoryListBox组件的主要属性 1 Directory属性 用于设置当前的文件目录 2 DirLabel属性 用于将目录列表链接至一个lable组件 显示列表中当前被选中目录 3 Drive属性 用于设置当前的驱动器盘号 当该属性值改变时 Drive属性值将自动改变为新的驱动器下的当前目录 4 FileList属性 用于将目录列表链接至文件列表 当目录列表中的目录改变时 文件列表会自动进行更新 3 8 3DriveComboBox组件用于显示一可选驱动器下拉列表 该组件位于如图3 38所示中第十个组件 DriveComboBox组件主要的属性 1 Dirlist属性 用于将本组件链接至目录列表 如驱动器改变 目录列表会自动更新 2 Drive属性 用于存放当前的驱动器盘号 3 TextCase属性 用于决定驱动器盘号使用大写字母还是小写字母 3 8 4FilterComboBox组件用于显示一可选过滤器下拉列表 供用户选择 位于如图3 38所示中第十一个组件 FilterComboBox组件的主要属性如下 1 FileList属性 用于将本组件链接至文件列表 如当前的文件类型改变 文件列表会自动进行更新 2 Filer属性 用于设置各种过滤文件的类型 3 Mask属性 用于存放所选的过滤类型的对应 3 9
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!