ObjectPascal快速入门笔记01
注释:
{ 花括号注释 };
( 圆括号+星号注释(块注释) ); // 双斜杠注释(行注释); 不同形式注释可嵌套使用。
对象命名:
对大小写不敏感;
不能带有空格; 第一个字母尽量不要带T(类)F(类中私有成员)I(接口);
标识符:
ASCII码字符集;
任意长不带空格的字符串; 第一字符必须是字母或下划线;
变量声明:
Var variablename:integer;
全局变量:
一般在implementation后面声明;
Var variablename:type=constantExpression; 没有初始化的情况下所有全局变量会自动初始化0,局部则根据变量类型的不同而不同;
常量:
Const Pi = 3.141592653589793;
预定义类型:
1.整形(Integer):-32768~32767,2byte;
Shortint:-128~127,1byte; Longint:-2147443648~2147483647,4byte; Byte:0~255,1byte; Word:0~65535,2Byte。
2.实型(Single): 可包含7-8位有效小数部分,4byte; Double类可包含15-16位有效小数部分,8byte; Extended类包含19-20位有效小数部分,10byte; Comp类包含19-20位有效小数部分,8byte; 3.布尔型(Boolean):True/False,1byte; 4.字符型(Char):一个ASCII字符:String一串最长255个; 5.指针型(Pointer):可指向任何特定类型; 6.字符串型(Pchar):指向以零结尾的字符串的指针; 保留字和指令字: 65个ReservedWords; 39个Directives;
数据类型:
1.简单数据类型(Simple)
包括有序数据类型(ordinal)和实数数据类型(real)。 (1)整数类型 Integer /signed32bit/ -2147483648~21473647 Cardinal /unsigned32bit/ 0~4294967295 Shortint /signed8bit/ -128~127 Smallint /signed16bit/ -32768~32767 Longint /signed32bit/ -2147483648~2147483647 Int64 /signed64bit/ -2的63次方~2的63次方-1 Byte /unsigned8bit/ 0~255 Word /unsigned16bit/ 0~65535 Longword /unsigned32bit/ 0~4294967295
(2)字符类型 AnsiChar:标准的一个ANSI字符,能够存储256个不同的字符,其对应的整数范围为0~255。 WideChar:2字节的Unicode字符,Unicode字符集前256个字符集与ANSI相同。 Char:相当于WideChar。
(3)布尔类型 Boolean:通用类型,单字节。 ByteBool:单字节。 WordBool:双字节。 LongBool:四字节,0为false其它true。 0(false)1(true);
(4)枚举类型(Enumerated) 由一组有序标识符组成。类型中的每一个值都有一个说明它的位置决定的整型值。
(5)子界类型(Subrange) 是下列这些类型中某范围的值:整型,布尔型,字符型或枚举型。限定了变量的可能取值范围。
(6)浮点数据 是全体带符号的实数的总称,用来表示不同格式的实数数据。 Real48,Single,Double,Extended,Comp,Currency.
2.3.2 字符串类型(String)
代表一组字符的变量类型。 AnsiString:Pascal默认字符串类型,由AnsiChar组成,无长度限制,同时与null结束的字符串相兼容。 shortstring:常见于旧版delphi,长度限制在255个字符内。 Widestring:功能类似AnsiString,由WideChar组成。 可以通过运算符,过程和函数进行字符串类型的变量运算。
2.3.3 结构类型(Struct)
(1)集合类型(Set) 是一群相同类型元素的组合,类型必须是有限类型。Set of BaseType,支持运算符运算。
(2)数组类型Array 某种数据类型的有序组合,每一个元素值由其相对位置决定。可在数组的某个位置上放数据。
(3)记录类型(Record) 记录是程序可以成组访问的一群数组的集合。 记录包含可以保存数据的域,每一个域有一个数据类型。
(4)指针类型(Pointer) 指针类型的变量指向内存空间的地址。 将@运算符放在变量前面将获取变量的地址,并可把地址赋值为同样类型的指针。 把^运算符放在一个数据类型的前面,可定义该类型的一个指针类型,如放在一个指针后面,可获取该指针指向的地址内存空间的内容。
(5)变体类型(Variant) 主要为惹支持OLE自动化操作。 可支持所有简单数据类型,可表达不均匀数组。
(6)强制类型转换和类型约定 通过它能使编译器把一种类型的变量当作另一种类型。 只有当两个变量的数据长度一样时才能对变量进行强制转换。
2.4 赋值语句
用于需要在程序设计时改变属性的值,而有的属性只能在执行时改变。 Edit1.color :=clRed;
2.5 过程与函数
(1)函数的声明和使用 Function <函数名> (<形式参数表>):<类型>; //函数头 Begin //函数体 <语句>; End; 返回值可由函数名返回和Result传回。
(2)过程的声明和使用 Procedure<过程名> (<形式参数表>) //过程头 Begin //过程体 <语句>; End 在函数声明中必须指明函数的返回类型,而过程不需要返回任何类型的值,所以无需声明返回类型。 在函数体中必须将函数的类型返回给函数名,而在过程中则不存在此语句。
2.6 控制语句
(1)判断语句 if计算一个表达式,并根据计算结果决定程序流程。if保留字随后跟随一个生成boolean值真假表达式(一般用=)。当表达式为True执行then,否则执行else后的语句或自动跳到下一程序。 if可以嵌套,复合语句前后需加上begin/end。 case语句适用于被判断的变量或属性是整型,字符型,枚举型或子界型时(Longht除外)。
(2)循环语句 repeat语句会重复执行一行或一段语句直到某一状态为真。语句以repeat开始,以until结束,其后跟随被判断的布尔表达式。 while的布尔值表达式在循环的开头进行判断。结果为真循环被执行否则退出循环,do结束。 for语句会执行一定的次数。它需要一个循环变量来控制循环次数。 如知道循环循环要执行的次数建议用for循环; 如不知道循环次数但至少要执行一次选用repeat,可能一次不执行用while; 在循环中调用break()使得执行的程序在满足某条件时立即跳出循环。 如想跳过循环部分代码重新开始下一次循环,就调用continue()。 使用记录类型变量时,可通过with语句指定一些语句都是针对某个变量来说的,这样可简化代码的输入量。 With obj do statement
@本地磁盘姬
ohayou.aimo.moe
微博:@萌萌的本地磁盘w
Twitter:@AmyGreen
2018年08月22日