Delphi7程序设计教程.doc

上传人:飞****2 文档编号:78784962 上传时间:2023-03-19 格式:DOC 页数:20 大小:152KB
返回 下载 相关 举报
Delphi7程序设计教程.doc_第1页
第1页 / 共20页
Delphi7程序设计教程.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《Delphi7程序设计教程.doc》由会员分享,可在线阅读,更多相关《Delphi7程序设计教程.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Delphi 7 很经典的一个版本,值得收藏,更为高手爱好!Delphi是一个类似微软公司开发的VB的一个Windows应用程序开发环境,它强大的数据库开发功能、简单的窗口界面设计一直得到程序员的青睐。汉化方法:汉化时先安装原版英文软件,安装完成后,把 Bin 目录下的所有文件复制至安装目录的 Bin 文件夹中,把 System32 目录下的所有文件复制至 Windows 安装目录下的系统目录中(Windows 9X 为 System,Windows2000,WindowsXP Windows2003 为 System32)。第1章 Delphi 基础知识1.1 为什么选择DelphiDelp

2、hi是美国Borland公司推出的一种基于客户/服务器体系的Windows快速应用开发工具(RAD Rapid Application Development),是一种面向对象的可视化编程工具,即根据Delphi的可视性,又结合Object Pascal 语言的编程技巧,可以开发出功能强大的Windows应用程序和数据库应用程序。 Delphi是第一个集可视化开发环境、优化的源代码编译器和可扩展的数据库访问引擎于一身的Windows开发工具。它具有以下优点:1. 优秀的可视化开发环境2. 高效率的编译器3. 结构良好的编程语言4. 对数据库和网络编程的灵活支持5. 层次清晰和可扩展的框架1.2

3、 Delphi 发展史Delphi发展至今,从Delphi1、Delphi2到现在的Delphi xe,不断添加和改进各种特性,功能越来越强大。Delphi 1.01995年一个开发工具中的超级明星在Borland诞生了,这就是 Delphi 1.0。在Delphi1.0中Borland放弃了OWL(Object Window Library),取而带之的是全新的Visual Component Library,从此开始了组件(Component)技术的时代,其意义深远;Delphi1.0是完全面向对象的。它是Delphi的最早版本。Delphi 2.01996年Delphi2.0完成了16位

4、到32位的跨越,提供了32位操作系统的完整支持,只能在Windows 95以上的操作系统中使用,它如同Delphi1.0一样大获成功。在Delphi2.0中Borland为它增加了可视的Form的继承,并且面向对象更彻底。由于所有函数支持虚函数特性,对程序编写和维护非常方便,大量类似的报表也采用了此技术。Delphi 2.0中,增加了Data Modules的概念,可以将数据包装在一个模块中,在系统启动时或空闲时 将它打开,这样,所有使用这些Table的模块都可以公用它,避免重复打开和关闭。并且,由于所有数据Table位于一个模块中,非常便于管理维护和迁移升级。Delphi 3.01997年:

5、在微软COM/DCOM技术日益成熟的情况和企业对分布式应用程序开发工具的需求下,Borland的开发人员巧妙的平衡了二者的关系,使Delphi3.0成为Windows平台的第一款提供分布式开发的开发工具。Delphi 4.01998年:由于决策的错误,Delphi 4.0是一个不成熟的产品,其中有大量的bug,尽管Borland也不停的发补丁,但不稳定的恶名很快在delphi用户传开, delphi4.0给delphi蒙上了阴影,也使Visual Basic有了喘息之机。Delphi 5.01999年:在失败的Delphi4以后,Borland小心的推出了Delphi5.0,重新建立delph

6、i的声望,delphi受到delphi开发人员一致推崇。在这个版本中Delphi对IDE(集成开发环境)进行了很多改进,扩展了对数据库的支持(ADO和InterBase数据库),转换功能,框架概念以及很多的新组件与新特性。 Delphi 6.02001年:Delphi 6添加了对如下特性的支持:对CLX(Component Library for Cross-Platform CLX)跨平台开发的支持,扩展的运行库(run-time library),dbExpress数据库引擎,Web 服务和杰出的XML支持,一个强大的Web开发框架,IDE的更多增强,大量的组件和类,delphi开始为向.

7、net过渡做准备。 Delphi 7.02002年:Delphi 7是Delphi向.net过渡的产品,在照顾老的使用者的同时,Borland在其中加入了对.net 的支持,所以Delphi7可以同时编写原windows下和.net下的应用程序。2002年11月,borland为delphi7提供了修改后的,使vcl组件可以在.net环境下使用。 Delphi 8.02003年:Delphi 8 for .NET集成开发环境提供了许多工具和特性以帮助你快速创建强大的.NET应用程序。它是为了与微软的visual studio. Net竟争而设计的。Delphi 8 for .NET已经拥有C#

8、的能力,同时仍然保留Delphi的易用性可以,但它只是一个测试版,一个过渡版。还不太完善。Delphi 9.0(2005)2004年:Delphi9集成了starteam,caliberrm,Unit testing及Together部份的功能. 加入了inline及for in loop等功能。 它把Win32的开发工具全部整合到Delphi9中。Delphi9把Borland Delphi .Net、Borland Delphi Win32、Borland C#等环境和功能集成成一个开发工具,因此可以在Win32和.NET开发环境中切换或同时进行。2005 10.0 发布名称:Borlan

9、d Developer Studio(BDS) 2006。集成C+ Builder; ECO(Enterprise Core Objects)升级到ECO III; 集成Together for Delphi,可以在同一个IDE中进行UML开发;QA Audits和QA Metrics可以快速的把握专案的设计和代码的质量。 2006 Turbo Borland将BDS 2006拆分成几个独立的版本(Delphi for win32、Delphi for .net、C#、C+ Builder),而且不能同时安装两个不同的版本。由于Borland的IDE生产部份独立成为一家名为codegear的公

10、司,所以这个版本是以Borland名义推出的最后一个版本。 2007 11.0 正式名称:CodeGear RAD Studio - Delphi 2007。2008 5.7 Borland正式宣布将CodeGear子公司出售给Embarcadero(易博龙)技术公司。2008 8.25 Embarcadero发布CodeGear Delphi 2009 Pre-release版。2009 8.25 Embarcadero发布CodeGear.RAD.Studio.2010版2010 年:发布Embarcadero RAD Studio 2011版,官方名称为RAD Studio XE1.3

11、第一个程序开发一个应用程序一般要经过以下几个阶段: 需求分析与总体设计。此阶段的任务是让程序开发人员充分理解系统的需求和任务,给出实现这些需求与任务的总体方案。 代码开发与程序调试。此阶段按照设计方案使用编程语言开发出应用程序。在开发的过程中反复调试以修改语法错误和逻辑错误,最终生成符合要求的可执行文件。 投入运行与程序维护。经测试无误的应用程序就可以投入运行了。程序的维护是为了保证程序能正确地运行。在代码开发与程序调试阶段,使用Delphi时一般包括3个步骤: 程序窗体设计: 包括对窗体中组件的设计。 程序代码设计: 设计窗体和窗体中组件的各种操作和响应事件的处理代码。 编译和调试程序:对程

12、序代码进行编译,修改各种语法错误和逻辑错误,生成正确的可执行代码。第2章 Delphi语言基础2.1 编程风格2.1.1 注释块注释:通常被用在版权注释中,也被用来注释掉一些代码行。 注释 (* 注释 *) 单行注释:作用域只是它所在的一行,使用方便。/2.1.2 命名命名对象可以是常量、变量、函数、过程等用户自已书写的定义的标识。在Object Pascalj里不分大小写。命名原则:用意思明确的英文单词或者词组命名,且首个字母大写,若是多个单词(不能在单词间插入空格),采用驼峰格式。例: jklasdf /没有意义 Mylongidentifier /可读性差 Thisismuchmorer

13、eadableroutinename /可读性差 MyLongIdentifier ThisIsMuchMoreReadableRoutineName注意:命名的第一个字母尽量不要用T,F,I这三个字母。2.1.3 空白源代码中的空格、空行及制表符等称为空白区。使用空白可提高程序的可读性,又不影响编译。2.1.4 缩进 使程序便于阅读理解。不要在源代码中保留Tab字符。2.2 基本概念2.2.1 进制 二进制,十进制,十六进制(加$符号)2.2.2 保留字程序如同一篇文章,由字符组成单词,再由单词和符号构成句子语句。其中有一类单词,它们具有特定的语法含义,称为保留字(reserved word

14、s)。程序员不得重新定义保留字的语义。常用的保留字如:begin、end、if、then、for、do等。教材第24页表2-1。2.2.3 标识符标识符用作常量、变量、数据类型、属性、过程、函数、单元及程序等的名称。由一个或多个字符序列组成,其构词规则如下:(1)标识符由字母、数字或下划线组成;(2)标识符的第一个字符必须是字母或下划线;(3)标识符的长度不应超过255个字符,否则只有前255个字符有效;(4)不能将保留字用作标识符;(5)标识符不区分大、小写。例如:x、x1、max、a15、Button_OK都是合法的标识符,而5x、x-y、ax10.5等都是非法的标识符。 标准标识符:在O

15、bject Pascal语言中,有一类标识符是系统预先定义的,它们用于标识系统预先定义的标准函数、标准过程、标准类型、标准常量及标准文件等。标准常量,如False、True等。标准类型,如Boolean、Char、String、TDateTime等。标准函数,如Abs、Eof、ShowMessage、Sqrt等。标准过程,如Dispose、New、Read、Readln、Reset等。标准文件,如Input、Output等。注意:当程序中自定义的标识符与其引用的单元中所定义的重名时,如果要访问被引用单元的标识符,则必须指示为外部单元的标识符,不然访问的是本程序定义的标识符。2.3 常量与变量二

16、者都是存储数据的载体,不同的是常量中的值不能改变,变量中的值则随着程序的运行而改变。一般位于函数或者过程的起始位置定义。2.3.1 变量变量是程序设计最基本的要素,是实现人与计算机交流的最基本的媒介,变量中可以存放字符、数值、日期或对象等。1. 变量的声明变量说明的一般形式为: var : ;其中,变量标识符列表中可以包含一个或多个变量标识符,若有多个变量标识符时,相邻的两个变量标识符之间应使用逗号“,”隔开;类型标识符用以指定这些变量的数据类型。变量说明以保留字var开头。一个变量说明部分可包含多个变量的说明,每个变量说明末尾均有分号。一个变量在某一个时刻有且仅有一个值。2. 变量的命名和格

17、式 与标识符类似3. 局部变量和全局变量从作用范围来划分:局部变量和全局变量,在过程或函数内部声明的变量称为局部变量,否则称之为全局变量。局部变量在它所在的过程或函数执行完后由系统自动释放,全局变量在程序被关闭时释放。在声明变量时,局部变量不能初始化,全局变量可以初始化,但在声明多个同类型变量时不能初始化。2.3.2 常量1. 字面常量(1)整型常量 即整数,如3、10000、-90。在Object Pascal中十六进制形式表示整型常量以字符$开头,如$20相当于十进制的32。(2)实型常量即实数,例如,6.6、0.77e+4。后者的表示方法称为指数记数法或科学记数法,0.77e+4表示0.

18、77104。 Pascal语言中的实数表示和日常书写的形式基本相似,但要注意以下几点:小数点前后一定要有数字。数中不允许包含空格字符与逗号。例如1,000,000是不合语法的。没有分式表示。使用指数记数法时,e前面应有整数或实数,e后面必须是整数。例如:88.0、-0.8、1e+23、-3.45e-6都是正确的实数表示法,而88.、.66、4.4e5.5、e6则是不正确的。(3)布尔常量它是指False和True这两个值,False表示逻辑值“假”,True表示逻辑值“真”。(4)字符常量字符常量有两种表示方式:用单引号对括起来的单个字符,如a、*、2等。用#引导一个整数,整数表示该字符的AS

19、CII码。例如,#13、#$20、#$30、#65分别表示回车符、空格符、数字符号0、字母A。(5)字符串常量字符串常量是用单引号对括起来的一串字符,例如,Good idea、96.5、#=。当字符串内有单引号时,要用两个连续单引号表示,例如,Most childrens English Course。书写字符串需要注意以下几点:空格字符可以是字符串的组成部分。所以在字符串中的任何空格字符都是其值的一部分;字符串中的字母有大小写区分,即A1不等于a1。2. 符号常量字面常量可以在程序中直接使用,而由标识符表示的符号常量需预先定义。常量定义的一般形式为:const =表达式;或 :=表达式;在P

20、ascal程序的声明部分,以保留字const后开始常量声明;“=”号左边为常量标识符;“=”号右边的表达式可以由常量、部分在程序编译时可计算的函数,及先定义的常量标识符等构成,表示符号常量的值。一个类型常量定义部分可包含多个类型常量定义,每个类型常量定义末尾均有分号。 例:const Pi: Double=3.; Max=100;Object Pascal对常量定义有如下要求:必须遵循先定义后使用的原则,即只有已定义的常量标识符才能在程序中使用。不能改变符号常量的值。可用于常量定义的函数,即在程序编译时可计算的函数,有Abs、Chr、Length、Odd、Ord、Pred、Round、Size

21、Of、Succ、Swap、Trunc等(见下表2-2)。使用常量定义的意义在于减少常量值差错机会与修改程序的工作量,并提高程序的可读性。表2-2 可以在常量表达式中引用的标准函数函数说明Abs(X)求X的绝对值Addr(X)返回X的地址Chr(X)返回值为X的字符Length(X)求字符串X的长度Odd(X)判断X是否为奇数Ord(X)返回序数类型变量X的序数值Pred(X)返回序数类型变量X的前一个值Succ(X)返回序数类型变量X的后续值SizeOf(X)返回X在内存中占用的字节数Round(X)把X四舍五入取整Swap(X)交换16位整数的高位和低位Trunc(X)把实数X截断为整数2.

22、4 运算符Object Pascal所支持的运算符主要有算术运算符、逻辑运算符、关系运算符3大类。2.4.1 赋值运算符 赋值运算符“:=”是先计算赋值运算符右边表达式的值,再将结果赋给左边的变量。2.4.2 算术运算符用于完成算术运算。对于、-、*,若参加算术运算的两个数都是整型数据,则运算结果也是整型。运算符作用操作数类型结果类型+表示正值Integer或RealInteger或Real算术加Integer或RealInteger或Real表示负值Integer或RealInteger或Real算术减Integer或RealInteger或Real*算术的乘运算Integer或RealIn

23、teger或Real/浮点数的除运算Integer或RealRealDiv整型数的除运算IntegerIntegerMod模运算IntegerInteger2.4.3 逻辑运算符操作数及结果都是布尔值。运算符作用操作数类型结果类型not逻辑非BooleanBooleanand逻辑与BooleanBooleanor逻辑或BooleanBooleanxor逻辑异或BooleanBoolean2.4.4 位运算符对操作数进行位级操作。部分位运算符与逻辑运算符在形式上是一样的,区别是其操作数及返回结果。运算符作用操作数类型结果类型Not按位非IntegerIntegerAnd按位与IntegerInt

24、egerOr按位或IntegerIntegerXor按位异或IntegerIntegerShl按位左移IntegerIntegerShr按位右移IntegerIntegerE1 Shl E2:E1乘以2的E2次方,E1 Shr E2:E1除以2的E2次方的整数部分,2.4.5 关系运算符用于比较两个量的值。结果为布尔值。运算符作用结果类型=等于Boolean不等于Boolean大于Boolean=大于或等于BooleanIn属于Boolean注意:对于数值相近的实型数据进行“”与“”运算时应谨慎,因为实型类型的表示是近似值,相近的实数的存储表示可能是一样的。可采用差的绝对值与一任意小的数比较。

25、例:X=Y运算应当写成Abs(X-Y)1e-6;而XY运算应写成Abs(X-Y)1e-6。2.4.6运算符优先级复杂表达式中的同一括号层内,各运算的先后次序取决于运算符的优先级。 按照操作数的个数可以将运算符分为两类:单目运算符和双目运算符。只有、和not是单目运算符,其他的为双目运算符。其中,+和-既可作为单目运算符(正数、负数)又可作为双目运算符(加、减)。单目运算符只能放在操作数的前面,双目运算符都放在两操作数的中间。对于可变类型的数据操作,大多数操作符都可以对其进行操作,只有、is和in例外。 级 别运 算 符第一级(最高). 第二级 not第三级* / div mod and shl

26、 shr as第四级+ - or xor第五级(最低)= = in is确定优先级的3条基本原则:l 两个运算符之间的操作数总是首先参加高优级的运算,l 两个相等优先级运算符之间的操作数按从左到右的顺序参加运算,l 括号里面的表达式总是优先于单个运算符的运算。例: total:=10+15*2 div (4+2 xor 3)习题1简述Object Pascal中标识符的命名应遵循哪些规则。2. Object Pascal中提供了哪些类型运算符,在表达式中其优先级从高到低如何排列。3注释语句有哪几种形式?4什么是变量的作用域?根据变量的作用域,可将变量分为哪几类。第3章 Object Pasca

27、l中的数据类型3.1 基本数据类型 基本数据类型分为:有序类型、浮点类型、时间日期类型、字符串类型。3.1.1 有序类型有序类型包括整型、字符型、布尔型、枚举型和子界型。有序类型是一种线性的数据结构,每个值都有唯一的前驱(除第一个)和唯一的后继(除最后一个)。每个数都有一个确定的序号,对整数而言该序号就是其本身,而对其他的有序类型(子界类型除外),黙认情况下,第一个值的序号为0,第二个为1,依次类推。用于处理有序类型的表达式或变量的常用函数函数参 数返 回 值备 注Ord有序类型变量或有序类型表达式有序类型表达式的序号不能带Int64类型的参数Pred有序类型变量或有序类型表达式有序类型表达式

28、的先行数不能在拥有write过程的属性上使用Succ有序类型变量或有序类型表达式有序类型表达式的后继数不能在拥有write过程的属性上使用High有序类型变量或有序类型表达式有序类型中序数最大的值可以用于shorstring类型或数组Low有序类型变量或有序类型表达式有序类型中序数最小的值可以用于shorstring类型或数组1. 整数类型类型取值范围存储格式Integer-有符号32位整数Cardinal0无符号32位整数Shortint-128127有符号8位整数Smallint-3276832767有符号16位整数Longint-有符号32位整数Int64-263263-l有符号64位整

29、数Byte0255无符号8位整数Word065535无符号16位整数Longword0无符号32位整数2. 字符类型字符型的类型标识符是Char。字符型的数据只能是单个字符,不能是一串字符。例如ABC,x=? 等都不是字符型的数据,而是字符串。字符类型占用字节数存储内容AnsiChar1存储一个Ansi字符,基本类型WideChar2存储一个Unicode字符,基本类型Char1同AnsiChar,Delphi将来的版本可能对应于WideChar,通用类型每个字符都对应于一个有序整数值,其值是由该字符在ASCII字符集中的位置所决定的。常用的处理字符的函数:l Chr(x:Byte):Char

30、 该函数返回ASCII中某序数所代表的字符。它与Ord函数互为逆函数。l UpCase(Ch:Char) 该函数将小写字母转换为大写字母,当其参数不是小写字母时,该函数则会返回原来的字符。3. 布尔类型布尔类型占用字节数存储内容Boolean1通用类型ByteBool1基本类型WordBool2基本类型LongBool4基本类型布尔类型只有两种取值:true和false。Boolean类型变量的序数值只能为0和1,而其他布尔类型变量的序数可以是其他值。 布尔类型特性比较BooleanByteBool、WordBool、LongBoolFalseTrueFalseTrueOrd(False)=0

31、Ord(False)=0Ord(True)=1Ord(True)0Succ(False)=TrueSucc(False)=TrueSucc(True)=TrueSucc(True)=FalsePred(True)=FalsePred(False)=TruePred(False)=True Pred(True)=True4. 枚举类型枚举类型是用户自定义一组具有特定意义的值,即用一些标识符来表示一系列有序数。但是数目不能超过255。定义枚举类型的语法如下:typetypeName=(val1,.,valn)其中type是定义枚举类型的关键字,typeName是枚举类型名称,val1,.,valn

32、是用户自己定义的一组有意义的标识符,它们不能和已有保留字或者与它们同一模块的某些标志符相同例:type TSuit=(Club,Diamond,Heart,Spade); TOrientation=(North,South,East,West);枚举类型可以提取的每个值都对应于一个整数值。黙认情况下每个值都会根据定义的顺序(从0开始),向右依次增加1,也可以通过=重新定义每个枚举项的实际值。比如:type TSuit=(Club=1,Diamond=3,Heart=5,Spade=Club+Heart);此外,还可以只对一部分枚举项赋值:type TSuit=(Club=1,Diamond=3

33、,Heart,Spade);没有被赋值的枚举项会自动获得一个初始值,其规则是:最后一个明确赋值的枚举项的序列值加上1。注意:l 同一个枚举项不能出现在多个枚举类型中。如:type TSuit=(Club,Diamond,Heart,Spade); TBody=(Chest,Heart,Arm,Eye,Hand);l 不能直接用枚举类型中的元素进行运算操作。例:type TSuit=(Club,Diamond,Heart,Spade);var suit1,suit2,suit3:TSuit;begin suit1:=heart; suit2:=suit1; suit3:=Club+Heart;

34、/错误end;l 枚举值的输出常用case语句间接地输出l 枚举类型是有序数据类型,对其运算可以使用函数Ord、Succ、Pred及关系运算。5. 子界类型子界类型指的是某个有序类型(称为基类)的一个子集。定义子界类型的语法是:typetypeName=Low.High;其中typeName是子界类型名,Low是子界类型的下界,High是子界类型的上界,Low与High必须是同一种顺序类型,且Low=High。例:type SomeThing1=1.10; SomeThing2=a .z; TDay=(Sunday,Monday,Tuesday,Thursday,Friday,Saturday

35、); TWorkDay=Monday.Friday;注意:l 子界类型的上下界常数必须是同一类型,且必须是有序类型l 子界类型变量具有基类型数据的所有运算特性,但运算结果必须在所定义的上下界范围之内l 一个子界类型继承它的常量类型的运算符和标准函数,常量类型相容的不同子界类型可以混合运算,可以赋值l 子界类型的下上界必须是依次有序递增的3.1.2 浮点类型 浮点类型是全体带符号的实数的统称,它的值域几乎是无限的,它参与的运算几乎都是近似计算。Object Pascal语言中用Real标识通用实型。浮点类型有以下几种基本类型:类型范围有效位所占字节数Double5.0*10-3241.7*103

36、0815168Real482.9*10-391.7*103811126Single1.510-453.4*1038784Extended7.4*10-49321.1*192010Comp-263+l263-l19208Currency-5477.58085477.580719208浮点类型可用科学表示法表示,如:7E-2, 12.25E+6,但要注意指数必为整数,即使尾数为1,也不能省略,如E-2是错误的。系统提供的标准函数:(1)绝对值函数Abs(x):函数值为x的绝对值。(2)平方函数Sqr(x):函数值为x的平方。(3)正弦函数Sin(x):函数值为x的正弦,其中x的单位为弧度。(4)余

37、弦函数Cos(x):函数值为x的余弦,其中x的单位为弧度。(5)反正切函数Arctan(x):函数值为x的反正切,函数值的单位为弧度。(6)指数函数Exp(x):函数值为指数ex。(7)对数函数In(x):函数值为x的自然对数。(8)平方根函数Sqrt(x):函数值为x的平方根。(9)舍入函数Round(x):对实数x作四舍五入,结果为整数。例如:Round(5.6)的值为6,Round(-7.6) 的值为-8。(10)截尾取整函数Trunc(x):截去实数x的小数部分,结果为整数。例如:Trunc(-9.9)的值为-9,Trunc(7.8) 的值为7。(11)取整函数Int(x):截去实数x

38、的小数部分,返回整数部分,结果为实型。(12)取小数函数Frac(x):返回实数x的小数部分,结果为实型。3.1.3 时间日期类型日期时间型TDateTime在Object Pascal中实际是双精度浮点型(Double);其原型是:Type TDateTime =type Double;TDate =type TDateTime; TTime =type TDateTime;Object Pascal中规定:以1899年12月30日00:00时为准计为0,每增加1天,日期时间类型数据增1,每增加1小时,日期时间类型数据增1/24,每增加1分钟,日期时间类型数据增1/(24*60)依次类推。因

39、此,整数部分表示距离该日该时的天数。例:1899年12月30日 00:00 01900年1月1日 18:00 2.752005年9月14日 12:00 38609.52009年9月14日 15:00 40070.625日期型数据的运算:u D + N、或D N计算某个日期之前或之后若干时间的日期。其中,D是日期时间型的数据,N是实数。表达式的值为日期时间型数据。u D1-D2 计算两个日期时间的时间间隔。其中D1、D2为日期时间型数据,结果为实型数据。结果为负数则表示D1时间在D2时间之前,否则相反。标准函数和过程(1)Date():函数返回系统当前日期,无参数,返回数据是TDateTime型

40、。(2)Time():函数返回系统当前时间,无参数,返回数据是TDateTime型。(3)Now():函数返回系统当前日期和时间,无参数,返回数据是TDateTime型。(4)StrToDate(日期字符串) :字符串转换为日期时间函数,返回数据是TDateTime型;StrToTime(时间字符串):参数为时间串,返回数据是TDateTime型; StrToDateTime(日期时间型串):参数为日期时间串,返回数据是TDateTime型。如:StrToDate(10/1/2004); StrToTime(12:50:24);StrToDateTime(10/1/2004 12:00:00)

41、;(5)取日期时间中的部分数据,以下函数的参数均为日期时间型:Dateof(参数):返回去掉时间后的日期(TDateTime型);Timeof(参数):返回去掉日期后的时间(TDateTime型);Yearof(参数):返回日期的年份(Word型);Monthof(参数):返回日期的月份(Word型);Dayof(参数):返回日期的日号(Word型);Weekof(参数):返回日期在该年份是第几个星期,返回1到53之间的整数。(6)日期时间转换为字符串的函数,返回值为字符串,如:TimeToStr(参数):将时间数据转换为字符串返回;DateToStr(参数):将日期数据转换为字符串返回;Da

42、teTimeTostr(参数) :将日期时间数据转换为字符串返回。此外,还有Hourof、Minuteof、Secondof、FormatDateTime、DecodeDate、DecodeTime、EncodeDate、EncodeTime等。3.1.4 字符串类型1. 字符串类型是用一对单引号括起来的一系列字符。字符串类型的表示范围和存储格式类型最大字符数字节数是否以Null结尾ShortString2552256B否AnsiString约2314B2GB是WideString约2304B2GB是l ShorString,短字符类型。短字符串中的每一个字符可以通过字符串名加字符索引来访问,

43、索引从0开始,索引0处的字符存放的是字符串的实际长度。 例如,s=Delphi7,s0为7,s1为D,l AnsiString,长字符类型,长度几乎是无限的,在声明后自动被初始化为空字符串,索引从1开始,在它最后一个字符后自动加一个NULL字符表示字符串结束。 以NULL结束的字符串主要用于跟Windows的API或其他语言的例程兼容,如: Var Caption,Message:AnsiString; begin Caption:=Hello World; Message:=我昨天看到你笑了_; MessageBox(0,Pchar(Message),Pchar(Caption),MB_OK); end;l WideString,长字符类型,在Delphi3以后引入,主要用OLE编程。字符串的通用类型是String,黙认与AnsiString等同。 编译开关 String等同于 $H- ShorString $H+ AnsiString在Delphi的源程序代码中,可以设置一些编译指令,用于指示编译器程序代码的生成方式、中间文件、编译路径等。其一般形式如下:$编译指令 参数即,在“”或“(*”符号之后紧跟符号“$”,则开始编译指令的声明。例如,$R *.DFM指示窗体文件是与单元文件同名的DFM文件;又如,$W

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁