已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Delphi基础基础 第第 1 章章Delphi 入门入门 第第 2 章章Delphi 语言基础语言基础 2 2 1简单范例简单范例 Program Exa02 1 SAPPTYPE CONSOLE Uses Sysutils Var Radius Real Diameter Circumference Area Real Begin Write 输入一个圆的半径值 ReadLn Radius Diameter 2 Radius Circumference PI Diameter Area PI SQR Radius writeLn 该圆的直径为 Diameter 13 2 writeLn 该圆的周长为 Circumference 13 2 writeLn 该圆的面积为 Area 13 2 ReadLn End 2 2Delphi 语言的基本元素语言的基本元素 2 2 1 保留字和指示字保留字和指示字 AndarrayasAsm 汇编语言 BeginCaseclassconst ConstructorDestructorDispinterface 显示接口Div doDowntoElseEnd ExceptExportsFileFinalization finallyforfunctionGoto 转移 Ifimplementationininherited initializationinlineinterfaceis labellibarymodNil NotobjectOfor outpackedprocedureprogram propertyraiserecordrepeat stringthenthreadvarto trytypeunituntil usesvarwhilewith Xor 异或 指示字 absoluteabstractassemblerautomatedcdecl containsdefaultdeprecateddispiddynamic exportexternalfarforwardimplements indexlibrarylocalmessagename nearnodefaultoverloadoverridepackage pascalplatformprivateprotectedpublic publishedreadreadonlyregisterreintroduce requiresresidentsafecallstdcallstored varargsvirtualwritewriteonly 2 2 2 直接量直接量 所谓直接量 是在程序中可以直接使用而无须声明的数据 Delphi 语言直接量包括数字直接量和字符串直接量 1 数字直接量 0 9 A F S 87 和 87 表示整数 87 3E 3 表示 3 称 10 的 3 次方 2f 为十六进制数 引入的十六进制数不能表示实数 2 字符串直接量 分为引用形式和控制字符串形式 1 引用形式 使用单引号来界定的字符串 两个单引号表示一个引号 两个引号之间没有字符 表示空串 2 控制字符串形式 由一个或多个控制字符串组成 不需要使用单引号界定符 控制字符串由符号 引导并紧接 一个整数 整数代表 ASCII 2 3声明语句声明语句 保留字说明保留字说明 Const声明常量标识符Var声明变量标识符 Type声明数据类型标识符Property声明属性标识符 Procedure声明过程例程标识符Function声明函数例程标识符 Program声明程序标识符Unit声明单元标识符 library声明库标识符package声明包标识符 2 4常量和变量常量和变量 2 4 1 常量常量 程序运行过程中其值不发生变化的量 分为真常量 类型常量 Const 常量标识符 常量表达式 2 4 2 变量变量 2 5数据类型数据类型 有序类型 枚举类型 子界类型 整型 字符型 布尔型 操作有序类型及其变量的标准例程 Ord 函数 返回有序表达式的序号 ASCII 序号 Pred 函数 返回有序表达式的前趋值 Succ 函数 返回有序表达式的后继值 High 函数 返回有序表达式或有序类型的最大值 Low 函数 返回有序表达式或有序类型的最小值 Inc 过程 有序变量增量 Dec 过程 有序变量减量 Delphi 语言的标准数据类型又可分为基本 Fundamental 数据类型和通配 Generic 数据类型 前者的格式和取值范围与 CPU 和操作系统平台无关 而后者的格式和取值范围却与 CPU 和操作系统平台有关 2 5 1 简单数据类型简单数据类型 1 有序类型 1 整型 名称存储字节数符号 shortInt1 8 位 字节 SmallInt2 16 位 字节 LongInt Integer 4 32 位 字节 Int648 64 位 字节 有符号整形 Byte1 8 位 字节 Word2 16 位 字节 LongWOrd Cardinal 4 32 位 字节 无符号整形 2 字符型 表示单个字符数据的标准和有序的数据类型 名称存储字节数取值范围 AnsiChar1 8 位 扩展 ASCII 字符集字符编码值 WideChar2 16 位 Unicode 字符集字符编码值 Char 通配 1 8 位 扩展 ASCII 字符集字符编码值 字符型数据的序号就是其对应的字符集字符编码值 3 布尔型 表示布尔数据的标准和有序的数据类型 用于逻辑运算 名称存储字节数取值范围 Boolean1 8 位 ByteBool1 8 位 WordBool2 16 位 LongBool4 32 位 False 和 True 4 种布尔类型在有序特征上的区别 BooleanByteBool WordBool LongBool False TrueFalseTrue Ord False 0Ord False 0 Ord True 1Ord true 1 Pred True FalsePred False True Succ False TrueSucc False True 4 枚举类型 表示一组带值符号的有序数据类型 Type 类型名称 符号 1 符号 2 符号 n 5 子界类型 Type 类型名称 下界 上界 2 实型 通过浮点存储格式来表示实型的标准数据类型 用于较高精度的数值计算 名称存储字节数取值范围 Real48 存储格式与 CPU 不符 6 2 9 10 39 1 7 1038 Single 存储格式与 CPU 不符 4 1 5 10 39 3 4 1038 Double85 0 10 324 3 4 10308 Extended10 3 6 10 4951 1 1 104932 Comp 用于存储 64 位整型 8 263 1 263 1 Currency 货币类型 8 922337203685477 5808 922337203685477 5807 Real8 5 0 10 324 1 7 10308 2 5 2 字符串型字符串型 用来表示字符序列的标准数据类型 Delphi 的字符串型数据类型 名称最大长度存储字节数用途 ShortString255256保存 ASCII 字符串 AnsiString 231 4 2GB保存 NULL 结尾的 ASCII 字符串 WideString 230 4 2GB保存 NULL 结尾的 Unicode 字符串 1 ShortString 所占存储总是 256 个字节 其中第一个字节用来保存实际长度值 2 AnsiString引用计数 4 字节 实际长度 4 字节 Var S AnsString var S AnsiString A B 执行 S 之后执行 S ABCD 之后 C 3 String D string 用作 ASCII 字符串通用类型标识符 H 编译状态 解释为 AnsiString H 编译状态 解释为 ShortString NULL 4 WideString 又称为宽字符串 用作 Unicode 长字符串 2 5 3 结构类型结构类型 1 集合类型 声明语句 Type 集合类型标识符 set of 基类型 基类型必须是有序数据类型 2 数组类型 1 数组类型的声明 一维静态数组 Type 数组标识符 array 下标类型 of 基类型 二维静态数组 Type 数组标识符 array 下标类型 1 of array 下标类型 2 基类型 数组标识符 array 下标类型 1 下标类型 2 of 基类型 一维动态数组 Type 数组标识符 array of 基类型 二维动态数组 Type 数组标识符 array of array 基类型 2 数组变量及其使用 动态数组长度只能通过 SetLength 来动态进行分配 3 记录类型 Type 记录标识符 record 域名表 1 类型 域名表 n 类型 End 4 文件类型 Delphi 中可以处理 3 种文件类型 文本文件 类型文件 无类型文件 1 文本文件 Type 文本文件类型标识符 TextFile 2 类型文件 Type 类型文件类型标识符 File of 类型名 3 无类型文件 Type 无类型文件类型标识符 file 4 文件类型变量与实际文件的关联 AssignFile Text File D File txt 4 类 class 类引用 class of 和接口类型 Interface 2 5 4 指针类型指针类型 指针 一个引用内存地址的变量 Type 指针类型标识符 基类型 注 放在变量前 用来获得变量的地址 放在变量后 取用当前地址所包含的数据 要为指针分配存储地址 p i new p 用 new 为指针变量分配存储之后 必须通过标准例程 Dispose 释放 2 5 5 过程类型过程类型 过程类型润徐我们将过程和函数看做一个可以赋给变量或者传递给其它过程和函数的值 过程类型是只想过程或函数入口地址的指针 如果引用某一实例对象的方法 则需要在过程类型名称的后面添加保留字 of object 满足下列条件的两个过程类型是相互兼容的 1 具有相同的调用约定 2 具有相同的返回值数据类型 3 具有相同的参数数目 并且在对应的位置上参数的数据类型相同 过程指针和方法指针总是不兼容 2 5 6 变体类型变体类型 变体类型 variant 占用 16 字节存储 包括类型码和值两部分 默认情况下 除了记录 集合 静态数组 文件 类 类引用 和指针类型之外 变体类型可以接受任何其他类型的值 2 6表达式表达式 x 取 X 的地址 not div mod and shl shr as or xor in is 1 算术运算符 运算符操作操作数类型结果类型举例 正整型 实型整型 实型 7 负整型 实型整型 实型 7 运算符操作操作数类型结果类型举例 加整型 实型整型 实型A b 减整型 实型整型 实型A b 乘整型 实型整型 实型A b 实数除整型 实型实型a 2 Div整数除整型整型A div b Mod余数整型整型A mod 6 布尔运算符 运算符操作操作数类型结果类型举例 Not非布尔型布尔型Not true And与布尔型布尔型Done and total 0 Or或布尔型布尔型A or b Xor异或布尔型布尔型A Xor b 位逻辑运算符 运算符操作操作数类型结果类型举例 Not位逻辑非整型整型Not x 所有位取反 And位逻辑与整型整型X and y Or位逻辑或整型整型X or y Xor位逻辑异或整型整型X xor y Shl位逻辑左移整型整型X shl 2 shr位逻辑右移整型整型X shr 1 集合运算符 运算符操作操作数类型结果类型举例 并集合类型集合类型Set1 Set2 差集合类型集合类型S T 交集合类型集合类型S T 包含于集合类型布尔型S 包含集合类型布尔型S T 等于集合类型布尔型S T 不等于集合类型布尔型S T In属于元素 集合类型布尔型a In T 关系运算符 运算符操作操作数类型结果类型举例 等于简单 类 类引用 接口 字符 串 布尔型 不等于简单 字符串布尔型 大于简单 字符串布尔型 大于等于简单 字符串布尔型 类运算符 as is 运算符优先级 优先级运算符 一 not 二 div mod and shl shr as 三 or xor 四 in is 2 6 1 类型转换表达式类型转换表达式 类型标识符 表达式 如果其中的表达式为一个变量 称为变量类型转换 否则称为值类型转换 2 7过程和函数过程和函数 2 8可执行语句可执行语句 2 8 If 条件表达式 then Case 选择器表达式 of 情况常量列表 1 语句 1 情况常量列表 1 语句 1 Else End With do 1 while 条件表达式 do 循环体语句 2 repeat 循环体语句 until 条件表达式 条件表达式为 False 时 返回执行循环体语句 为 True 时退出循环 执行 后即语句 3 for 循环变量 初值 to 终值 do 循环体语句 循环变量递增 4 for 循环变量 初值 down to 终值 do 循环变量 循环变量递减 2 9过程和函数过程和函数 2 9 1 过程和函数的参数过程和函数的参数 1 形式参数和实际参数形式参数和实际参数 形式参数 在声明例程时出现在例程原型的形式参数列表中的参数 他们表示接接收数据的变量 实际参数 在调用例程时传递给例程的常量 变量 表达式 2 参数传递方式参数传递方式 1 值参数及其传递方式 形式参数默认为值参数 值传递 值参数为 值传递 常量 变量 表达式可以传递给值参数 值参数只能用来向例程传入信息 不能传出 2 变量参数及其传递方式 形式参数前使用 var 变量参数为 地址传递 只有变量可以传递给变量参数 例程体语句修改对应的形式参数变量 值时 将同时影响调用程序中该变量的值 变量参数能够向例程传入信息 也能够用来传出处理结果 3 常量参数及其传递方式 形式参数前使用 const 在实际参数中 常量 变量 表达式可以传递给常量参数 不允许在例程体语句中赋值 常量参数只能用来向例程传入信息 4 外部参数及其传递方式 形式参数前使用 out 地址传递 只有变量可以传递给外部参数 主要用在 COM 等分布式技术中 外部参数不能转入信息 只能传出 2 9 2 例程重载例程重载 不能仅仅因为返回值数据类型不同来重载函数里程 2 9 3 函数递归调用函数递归调用 Function Fibonacci n Integer Int64 Begin Case n of 1 2 Result 1 Else Result Fibonacci n 1 Fibonacci n 2 End End 第第 3 章章面向对象的程序设计技术面向对象的程序设计技术 3 1面向对象程序设计方法概念面向对象程序设计方法概念 3 1 1 面向过程的程序设计方法面向过程的程序设计方法 3 1 2 面向对象的程序设计方法面向对象的程序设计方法 可以将对象构造为包含有刻画自己特征的数据并具有相应行为能力和交互能力的程序实体 面向对象的语言特性 抽象 能够提取出适当的对象数据成员和方法成员来描述真实世界中对象的特征和行为的语言特性 封装 确定对象数据成员和方法成员在对象内部的定义 存储以及访问方式的语言特性 继承 描述对象之间衍生关系的语言特性 多态 是的不同的活动对象可以对相同的外部事件作出不同的反映的语言特性 3 1 3 Delphi 中的对象中的对象 类数据类型的变量代表对象 3 2类和对象类和对象 类数据类型的除了数据与成员之外 还包含方法和属性 类数据类型的变量 就是所谓类的实例即对象的代表 与记录变量不同 类变量实际上是引用对象实例的指针 而对 象实例的存贮是动态分配的 3 2 1 类的声明类的声明 Type 类名 class 直接基类名 成员列表 End 域 field 方法 Method 属性 property 为外部代码访问类实例对象的数据所提供的接口 属性通过保留字 read 和 write 引入专门的读 写访问说明 用来说明是通过方法访问数据还是直接访问数据本身 3 2 2 类变量和类实例对象类变量和类实例对象 类变量不等同于类实例对象 它只是一个引用类实例对象的指针 在没有完成类的实例化过程 即创建对象的实例 之前 根据改变两所声明的位置的不同 其值要么为 nil 全局变量 要么是没有意义的无效数据 局部变量 ATeacher TTeacher Create 创建对象实例 ATeacher Name 张哲 使用对象实例 ATeacher free 释放对象实例 注 delphi 语言与定义了有关日期和时间的数据类型 TDateTime TDate 和 TTime 实际上 这些类型均等价于 8 个 字节的实型 Double 在实际使用时 用整数部分来表示日期而用小数部分来表示一天中的时间 如 0 0 表示 1899 年 12 月 30 日 0 时整 3 5 表示 1900 年 1 月 2 日 12 时整 在预定义这些日期时间类型的同时 delphi 还为我们提供了大 量的处理日期时间型数据的标准例程 如 Encodedate 可以将整形的年 月 日数据转换为日期时间型数据的整形部分 DateToStr 可以将日期型数据转换为以字符串表示的年 月 日等等 3 3方法方法 方法在类中声明 在方法定义时必须在方法名称前面添加类名限定符 在方法内部可以直接使用 Delphi 语言预定义的变量标识符 Self 它是对调用方法的对象实例或类的引用 通过使用保留字和指示字 可以将方法分为多种不同的类型 3 3 1 方法的前向分类方法的前向分类 所谓方法的前向分类 就是根据声明方法时开头所使用的保留字 将方法分为构造方法 constructor 析构方法 destructor 类方法 class procedure class function 一般方法 Procedure function 1 构造方法 constructor 开头 默认的构造方法 在创建对象实例后将其数据域初始化为 0 值 新增的构造方法均以 create 命名以重载 overload 的方式引入 构造方法不能指定返回值 但构造方法返回对他所创建的对象实例的的引用 当我们在创建实例对象时为器数据域提供所希望的初始值 就需要在类中重载 overload 带有参数的构造方法 例如 Constructor create Nvalue string SvalueBoolean BValue TDate TPValue String overload 来类中 数据域成员必须出现在方法和属性成员的前面 而在方法成员中 通常按构造方法 析构方法的先后顺序排 列 2 析构方法 destructor 开头 用来释放实例对象占用的存储从而销毁对象 每一个类都具有一个来自于 TObject 类的命名为 Destroy 的析构方法 尽管可以在类中声明多个析构方法 但是通常 应当以覆盖 override 的方式来声明新的构造方法 析构方法必须由实例对象来引用 而不能由类来引用 Procedure TObject free Begin If self nil then Destroy End 需要指出的是 析构方法执行之后 只是释放了对象实例所占有的存储 而并没有将类变量中保存的引用值清除 在 市里对象被释放之后 通常应当将类变量的值设置为 nil 这可以通过下列代码来完成 ATeacher Free ATeacher nil 3 一般方法和类方法 一般方法直接由 Procedure 和 function 开头在类中声明的过程和函数 类方法在一般方法前加 class 的方法 一般方法只能通过类变量来调用 类方法可以通过类变量来调用 也可以通过 类来调用 3 3 2 方法的后向分类方法的后向分类 根据声明方法时使用的保留字和指示字 可以分为 静态方法 默认方法 虚拟方法 virtual 动态方法 dynamic 抽象方法 abstract 消息方法 message 虚拟方法和动态方法在语法意义上是等价的 区别在于运行期的调用机制不一样 前者 是时间优化的 后者是空间优化的 只有虚拟方法和动态方法才能够在派生类中被覆盖 override 而所有的方法以及历程都可以被重载 overload 抽象方法是在类中声明但不被定义实现的方法 他们必须同时是虚拟方法和动态方法 3 3 3 Self 变量及其使用变量及其使用 对于一般方法来说 Self 是对调用该方法的类实例的引用 对于类方法 Self 则是对该方法所在类的引用 3 4属性属性 属性是用来描述对象的各种类型的数据 3 4 1 属性的声明属性的声明 Property 属性名 类型标识符 read 读限定 write 写限定 在读写限定属性名称前添加大写字母 F 就是直接读写数据成员获取属性值 读方法属性名称前加 Get 写方法属性名 称前添加 Set 直接读写属性值必须在类中存在与属性的数据类型相同而且读写限定中的名称相同的数据域 Type TMyClass class Published Property DataReal Real read FDataReal write SetDataReal Property DaraByte Byte read GetDataByte write FDataByte Private FDataReal Real FDataByte Byte Function GetDataByte Byte Procedure SetDataReal Const Value Real End Implementation TMyClass Function TMyClass GetDataByte Byte Begin End Procedure TMyClass SetDataReal const Value Real Begin FDataReal Value End 3 4 2 属性的访问属性的访问 Var A TMyClass a DataReal 3 7 b DataByte 254 Showmessage FloatToStr a dataReal Showmessage IntToStr a DataByte 3 5封装和成员的可见性封装和成员的可见性 3 5 1 封装封装 一 要求尽可能的将类的内部数据 内部方法设为私有 以防止外界对其随意改动从而影响类的功能实现 二 提供 良好的接口 以使用户能够根据需要方便地设置类的特征或者调用类的功能 三 要考虑到类的继承关系以及实现多 态的需要 封装的两个重要方面 内聚指的是在设计中的单纯性 每个函数就应该尽可能只做一件事情 耦合指的是类与类之间 的相互联系 程序设计要求 高内聚 低耦合 3 5 2 成员可见性成员可见性 Private 私有方法 只能被该类的其他成员访问 Protected 保护部分 被该类的其他成员访问了 被该类的派生类的内部成员访问 Public 公共部分 公共部分的成员可以被任何类以任何方式访问 Published 发布部分 与 Public 一样的可见性 对于安装在组建面板上的组件类来说 还可以在程序设计期通过对象查 看器进行访问 在 M 编译状态被编译或者派生自 M 编译状态编译的类 其成员可见性为 Published 否则为 Public 通常将类的数据与定义为 private 可见性 将类属性定义为 Public 组件类 应当将其中需要在设计期设置的属性定义 为 publiced 对于类中的方法 外界使用的方法定义为 Public 由公共方法调用的一些内部方法定义为 pribate 将提 供给派生类使用以及用来实现堕胎的方法定义为 protected 3 5 3 Delphi 单元的封装特性单元的封装特性 在同一个单元声明的类之间 其成员可以完全自由地互相访问 不受私有和保护等可见性的限制 3 6继承性继承性 基类单元 unit Unit2 interface uses controls DateUtils SysUtils Dialogs type TPerson class private FName string FSex Boolean FBirthDay TDate function GetAge Integer function GetSex string procedure SetAge const Value Integer procedure SetSex const Value string public constructor Create Name Sex string Age Integer overload function Talk string property Name string read FName write FName property Sex string read GetSex write SetSex property Age Integer read GetAge write SetAge end implementation TPerson constructor TPerson Create Name Sex string Age Integer begin Self Name Name Self Sex Sex Self Age Age end function TPerson GetAge Integer begin Result Yearof now YearOf FBirthday end function TPerson GetSex string begin if FSex then Result 男 else Result 女 end procedure TPerson SetAge const Value Integer begin showmessage IntToStr Value if value 0 then FBirthday EncodeDate YearOf now value 1 1 else raise Exception Create 年龄输入有误 end procedure TPerson SetSex const Value string begin if value 男 or uppercase value MALE or UpperCase Value TRUE then FSex True else if value 女 or UpperCase value FEMALE or UpperCase Value FALSE then FSex False else raise Exception Create 性别输入错误 end function TPerson Talk string begin Result I m a person end end 继承类 unit Unit3 interface uses Unit2 COntrols type TStudent class TPerson ErrolDate TDate private function GetEnrolDate Word procedure SetEnrolDate const Value Word public constructor Create Name Sex string Age Integer YearOfEnrol Word overload property YearOfEnrol Word read GetEnrolDate write SetEnrolDate end TTeacher class TPerson private FTeachPost string public constructor Create Name Sex string Age Integer teachPost string overload property TeachPost string read FTeachPost write FTeachPost end implementation uses DateUtils SysUtils TStudent constructor TStudent Create Name Sex string Age Integer YearOfEnrol Word begin inherited create name Sex Age self YearOfEnrol YearOfEnrol end function TStudent GetEnrolDate Word begin Result YearOf ErrolDate end procedure TStudent SetEnrolDate const Value Word begin ErrolDate EncodeDate value 1 1 end TTeacher constructor TTeacher Create Name Sex string Age Integer teachPost string begin inherited create Name Sex Age Self TeachPost TeachPost end end 主单元 unit Unit1 interface uses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls Unit3 Unit2 type TForm1 class TForm Button1 TButton Button2 TButton ListBox1 TListBox ListBox2 TListBox procedure Button1Click Sender TObject procedure Button2Click Sender TObject private Private declarations public Public declarations end var Form1 TForm1 implementation R dfm procedure TForm1 Button1Click Sender TObject begin with TStudent Create 陈小红 女 19 2003 do begin with ListBox1 Items do begin ListBox1 Clear Add 学生姓名 Name Add 学生性别 Sex Add 学生年龄 IntToStr age Add 入学时间 IntToStr YearOfEnrol 年 end Free end end procedure TForm1 Button2Click Sender TObject var ATeacher TTeacher begin ATeacher TTeacher Create 董明 男 36 副教授 with ATeacher do begin with ListBox2 Items do begin ListBox2 Clear Add 教师姓名 name Add 教师性别 Sex Add 教师年龄 IntToStr Age Add 教师职称 TeachPost end Free end end end 3 7多态性多态性 3 7 1 对象多态性的实现对象多态性的实现 必须具备三个条件 对象之间具有继承关系 积累和派生类拥有通过特殊方式联系起来的相同的方法 基类变量可以引用派生类对象实例 前两个条件 首先要声明一个包含虚拟或者动态方法的基类 然后声明覆盖积累中虚拟或动态方法的派生类 第三个 条件 Delphi 派生类与积累单向赋值兼容 即基类的变量能够引用他的任何的派生类的对象实例 派生类的每个对象 也都是积累的对象 但是反过来不行 TBase class procedure VMethod virtual end TDrive class TBase procedure VMethod override end TDrive procedure TDrive VMethod begin inherited showmessage b end TBase procedure TBase VMethod begin showmessage a end procedure TForm1 Button1Click Sender TObject var baseObj TBase DriveObj TDrive begin baseObj TDrive Create baseObj VMethod 基类是静态方法 基类变量引用派生类对象 派生类对基类静态方法 baseObj Free 的取代并不起作用 end end 3 7 2 抽象方法和抽象类抽象方法和抽象类 在类中仅给出声明而不进行代码定义的方法称为抽象方法 抽象方法声明 Procedure DoWork dynamic abstract 包括一个或多个抽象方法的类称为抽象类 3 8Is as 运算符和类引用运算符和类引用 3 8 1 运算符运算符 is 和和 as 1 类信息检测运算符 is Is 运算符是双目运算符 Obj is ClassName 左操作数 Obj 所标示的对象变量实际引用的是右操作数 ClassName 所表示的类的同类或子类的实例 返回 True 2 对象类型转换运算符 as As 运算符是双目运算符 Obj as ClassName 左操作数 Obj 所表示的对象变量实际引用的是右操作数 ClassName 所表示的类的同类或子类的实例 则将 Obj 强制转 换为引用右操作数所表示的类并返回新的引用 3 8 2 类引用类引用 需要将类作为一个变量或者参数使用时 就需要用到类引用这一数据类型 类引用是 Delphi 的数据类型之一 是对类 类型的引用 Type TClass class of TObject Var AnyObj TClass 第第 4 章章组件库体系结构及其使用组件库体系结构及其使用 Persistent 持久 第第 5 章章数据库应用系统开发基础数据库应用系统开发基础 5 1数据库应用系统概述数据库应用系统概述 5 1 1 关系型数据库系统关系型数据库系统 1 本地数据库 1 以文件夹定位的本地数据库 Paradox 后缀名 DB dBASE 后缀名 DBF 2 以文件定位的本地数据库 Access 后缀名 MDB 2 远程数据库服务器 InterBase Server Oracle SyBase Informix DB2 MS SQL Server 5 1 2 关系数据库组成元素关系数据库组成元素 1 数据表 Table 关系数据库的基本组成元素 2 视图 View 是通过 SQL 语言表达的从一个或多个基本数据表中导出的临时表 3 存储过程 Procedure 存放在数据库中的 SQL 语言程序 数据库服务器都会对存储过程的执行进行优化处理 可以 加快数据访问的执行速度 4 触发器 Trigger 用来让数据库自动响应数据访问操作的一种特殊的存储过程 插入触发器 当在数据表中插入一条记录时自动执行 删除触发器 当删除数据表中一条现有的记录时自动执行 更新触发器 当更新数据表中的某条记录时自动执行 5 域 Domain 数据库系统的自定义数据类型 TObject ExceptionTInterFacedObjectTPersistent 异常类非组件类支持接口的 非组件类 持久非组件 类 TComponent TControl TGraphicControl 图形控件类 非可视组件类 TWinControl 窗口控件类 5 2结构化查询语句结构化查询语句 5 2 1 数据定义语言数据定义语言 CREATE 创建 ALTER 修改 DROP 删除 1 CREATE Create database 数据库文件标识符 USER 用户名 password 密码 page size 数据库文件页面字节数 例 create database D books IBDemo GDB User SYSDBA PASSWORD masterkey PAGE SIZE 4096 CREATE DOMAIN 域名 as default 默认值 not null ckeck 检查条件 例 create domain salary as Float default 0 ckeck value 0 Create table 数据表明 字段名 数据类型 not null default 默认值 n Primary key 字段名 n unique 字段名 n foreign key 字段名 references 表 主表字段名 ON DELETE NO ACTION CASCADE SET DEFAULT SET NULL ON UPDATE NO ACTION CASCADE SET DEFAULT SET NULL n 例 create table department Dept no deptno not null Department varchar 25 not null Location varchar 15 Phone no varchar 20 default 555 1234 Unique dep0artment Primary key dept no Create view 视图名称 As Create procedure 存储过程名称 输入 输出 参数名 in out 数据类型 n returns 输出参数 参数类型 As Begin SQL 语句块 End 存储过程名 Create triggfer 触发器名称 for 数据表名称 before after delete Insert update As degin SQL 语句块 End 2 ALTER 例 AlTER TABLE EMPLOYEE ADD ZIP VARCHAR 6 例 AlTER TABLE EMPLOYEE DROP ZIP 3 DROP 例 DROP TABLE EMPLOYEE 5 2 2 数据操作语言数据操作语言 INSERT 插入 UPDATE 更新 DELETE 删除 SELECT 查询 INSERT INTO 数据表名称 字段名 N VALUES 字段名 n 例 insert into department Dept no department Values 375 test Update 数据表名称 Set 字段名称 字段新值 n where 表达式 Delete from 数据表名称 Where dept no 375 Select distinct all 字段名称 n From 数据表名称 n where 表达式 Order by 字段名称 n DESC ASC 升序 默认 5 2 3 数据操作语言数据操作语言 GRANT 开放权限 REVOKE 取消对用户的权限 Grant 命令 n on 数据表名 TO 用户 n Revoke 命令 n on 数据表名 From 用户 n 5 3InterBase 数据库管理系统数据库管理系统 InterBase 服务器默认的系统管理员用户名为 SYSDBA 其密码为 masterkey 5 4Delphi 数据库辅助工具的使用数据库辅助工具的使用 5 4 1 SQL Explorer 5 5Delphi 数据库应用系统的基本结构形式数据库应用系统的基本结构形式 5 5 1 5 5 2 数据库引擎数据库引擎 1 BDE 在访问 Paradox 和 dBase 数据库方面 BDE 是最好的引擎 缺点是部署复杂导致不容易分发 只支持 windows 平台 2 IB 专门支持 InterBase 3 ADO w 微软标准 功能强大 易于发布 缺点只支持 windows 平台 4 dbExplorer 轻量级驱动程序的集合 因而开销比较小 可以提供对数据库信息的最快速度的访问 只需发布 150KB 左右的文件而 BDE 左右的文件 引擎BDEIB ExpressADOdbExpress 数据库连接DatabaseIBDatabaseADODatabaseSQLDatabase 数据集 Table Query StoredProc IBDataSet IBTable IBQuery IBStoredProc ADODataSet ADOTable ADOQuery ADOStoredProc SQLDataSet SQLTable SQLQuery SQLStoredProc 数据集提供器DataSetprovider 库户数据集ClientDataSet 数据源DataSource 数据感知 DBGriD DBNavigator DBText DBEdit DBMemo DBCheckBox DBRadioGroup DBComboBox DBListBox DBImage 第第 6 章章基于基于 BDE 的数据库应用程序开发的数据库应用程序开发 Delphi应用应用 第第 1 章章 Delphi 应用消息和事件应用消息和事件 1 1消息消息 消息定义 tagMSG packed record hwnd HWND message UINT wParam WPARAM lParam LPARAM time DWORD pt TPoint end 注 Type REC record A char B char End 注 1 Packed 通常情况下 如果系统按 4 字节对齐 那么 A 虽然只占 1 个字节 但是后面的 3 个字节是空着的 B 从下一个 4 字节开始分配 Packed 就是压缩这种浪费 让 A 只占用一个字节 然后 B 接着分配空间 各字短消息信息的含义 记录字段记录字段消息信息含义消息信息含义 HWND32 位床口句柄 代表接受消息的应用程序窗口 Message消息常量 wParam32 消息参数 用于保存效益的附加信息 可以是窗口和空间句柄 LParam32 消息参数 用于保存效益的附加信息 可以是纸箱内存数据的指针 Time消息创建的时间 Pt消息创建时的光标位置 消息常量取值范围的划分消息常量取值范围的划分 取值范围含义 0 WM USER 1Windows 使用的消息常量 用户不能使用 WM USER 7FFF可以有私有窗口类自行定义的消息常量 8000 BFFFWindows 保留用于今后使用的消息常量 C000 FFFF应用程序使用的字符串消息 大于 FFFFWindows 保留使用 部分部分 windows 标准消息及其常量值和含义标准消息及其常量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新郑市劳务合同范本
- TBWDP 0003-2025 最受大学生欢迎的中国风土葡萄酒大赛大学生评委选拔和培训
- 水上运输工具合同范本
- 新车辆运送合同范本
- 文化展出协议书范本
- 楼房拆除修补协议书
- 担保抵押贷款合同范本
- 文化园设计合同范本
- 沙石买卖合同协议范本
- 家政服务员中级考试题及答案大全
- 农民素质培训课件
- 小细胞肺癌合并低钠血症诊断与治疗
- 中国旅游客源国概况全套课件
- 消除艾滋病、梅毒和乙肝母婴传播项目培训
- 煤层气开发煤层气开采工程
- 供应链金融业务管理办法(邮政储蓄)
- 爬电距离与电气间隙
- 火车过桥问题新版课件
- 《锂电池用辅助材料 第1部分 金属极耳》团体标准征求意见稿
- YS/T 886-2013纯钛型材
- 四年级《中国神话故事》测试题及答案
评论
0/150
提交评论