level 11
天道玄虚
楼主
【Delphi奥法】
天道玄虚出品
第一章:Hello Firemonkey——Pascal及FMX入门
1.0、Pascal基本规则和基本数据类型
Firemonkey(又称为FMX)中,语法规则与VCL下的Pascal一致。
1.0、Pascal基本规则
Pascal的语法规则与C系相比,相对严谨以至于被称为繁琐。
作为结构编程语法,Pascal的基本构成为函数,在面对对象编程中,基本构成可以看做是函数(非类方法)和类(以及类方法)。现在暂时不涉及面的对象的部分。
1.0.1、语句规则
每两个语句之间有且只能有一个分号作为分隔符,不带参数的函数末尾可以省略括号。通常习惯每一个语句末尾都加上一个分号。
例如:
赋值语句:a := a +1;
函数语句:MyFunction(x);
不带参数的函数:MyFunction;
如果是判断语句(if语句),那么在else前不插入分号,可以使用begin……end;插入代码段,例如:
if a = b then
a := a + 1
else
b := b + 1;
相关内容还会在具体例子中说明和讲解。
1.0.3、命名规则
Pascal语法不区分大小写,命名需要使用英文字母、数字和下划线的组合(数字不包括小数点),不能够使用数字作为变量开头,比如:5a就不可以。
1.0.2、习惯规则
赋值号前后、运算符前后(算术、逻辑)使用空格隔开,冒号(类型声明符号)之后、逗号之后使用空格隔开。命名遵守如下规则:
习惯上使用英文单词组合作为变量名,并且每一个单词首字母大写(当然,也可以使用拼音),有时候可以在尾端加上数字。根据个人习惯,可以自行确定个人喜好的命名规则,但是以简明易读为前提,例如:
MyVar、AChar、AlongAndLongStupidVar(有没有觉得变量名不宜太长?)、MyLALSVar(上一个长变量名的缩写)。
有时候允许使用一个或两个小写字母作为前缀来区分变量类型,如使用g表明全局变量等(全局变量将会在变量作用域中讲解)。
习惯上保留字(默认着色为蓝色且加粗的单词)全部小写,其余构成单词的变量名或者函数名首字母(每一个单词首字母)大写。
代码排版上,通常从属关系的语句或语句段缩进增加两个空格(一个Tab)。
1.1、Pascal基本数据类型
在入门级别中,常用的有四个基本类型以及一些系统常用组件类。
基本类型:整数、实数、字符、字符串。注意Delphi的字符串结构与C完全不同,Delphi的字符串索引从1开始,在内存中0位置储存长度信息。
常用组件类会再后续的小程序中一一介绍。
1.1.0、整数
常用的整数类型有:Integer、Byte、Word、Cardinal。
其中,Integer为32位有符号整数、Byte为8位无符号整数,Word为16位无符号整数、Cardinal为32位无符号整数。
另附:计算机中常用的位(bit)指二进制位,与字节换算关系为“1Byte = 8bit”,有符号数指数据中使用一位来储存符号,其取值分别为非负值和负值两类,两类数量相等(正值比负值少一个,由于0的缘故)。
Delphi中的颜色类型等同于32位无符号整数(Cardinal),在VCL中,预定义了一些cl开头的常量用来定义常用的颜色,FMX中则使用TAlphaColors集合定义常用颜色(cla是早期表示,已经弃之不用)。
常用函数
Inc(a);(Inc(a, N); )——作用:使a增加1(使a增加N)。
Dec(a);(Dec(a, N);)——作用:使a减少1(使a减少N)。
IntToStr(a);——作用:将a转换为字符串。
1.1.1、实数
常用的实数有:Single、Double、Extended三种,分别为单精度实数、双精度实数、扩展精度实数。区别在于精度不同,取值范围可以认为一样。
一般根据需要选用Single或者Double。
常用函数:部分需要引用System.Math单元。
Trunc(a);——效果:获取截断整数。
Round(a);——效果:获取近似整数(四舍六入五去偶,银行家算法)。
Ceil(a);——效果:天花板函数,获取不小于实数的最小整数。
Floor(a);——效果:地板函数,获取不大于实数的最大整数。
FloatToStr(a);——效果,将实数转换为字符串。
1.1.2、字符
新版本使用类型统一使用Char,ANSIChar等仅为兼容而存在,不推荐使用。
常用函数:
Chr(a);——效果:根据字符编号获取字符。
Ord(c):——效果:根据字符获取字符编号。
1.1.3、字符串
新版本请不要使用ANSIString,另外注意,string为保留字,习惯上小写。
如果需要兼容C系,可以使用PChar即字符指针(字符数组)。
字符串涉及到StringHelper,应用于string的一个类,可以对字符串进行一些查找、替换、统一下标索引等操作,后续将详细讲解。
常用函数:
Length(s);——效果:获取字符串长度(不要质疑这个函数的效率,难以估量地高,几乎等同于读取变量)。
1.2、Pascal中函数的简单使用
在Pascal中,一个函数可以看做分为两部分,一部分为声明部分,另一部分为实现部分(定义部分)。
声明部分:
函数类型 函数名(参数列表):返回值类型;
注意没有返回值的为过程(一般说的函数包括过程),省略返回值类型部分。
例如:
function AFunction(x:Single): Single;
procedureAProcedure(c: Char):
定义部分:
函数类型 函数名(参数列表):返回值类型;
局部变量定义标识(var)
局部变量定义
语句段
例如:
function MyFunction(x:Single): Single;
var
a: Single;
begin
a := x * x;
x := x + a;
Exit(x);
end;
注意:新版Pascal下有两种确定返回值的方式,第一种是使用Result变量,如果函数执行结束,Result有值,那么就作为返回值。另一种是使用Exit(返回值),这种时候将会忽略Result返回值。建议一个函数内不要混用。
2017年01月17日 01点01分
1
天道玄虚出品
第一章:Hello Firemonkey——Pascal及FMX入门
1.0、Pascal基本规则和基本数据类型
Firemonkey(又称为FMX)中,语法规则与VCL下的Pascal一致。
1.0、Pascal基本规则
Pascal的语法规则与C系相比,相对严谨以至于被称为繁琐。
作为结构编程语法,Pascal的基本构成为函数,在面对对象编程中,基本构成可以看做是函数(非类方法)和类(以及类方法)。现在暂时不涉及面的对象的部分。
1.0.1、语句规则
每两个语句之间有且只能有一个分号作为分隔符,不带参数的函数末尾可以省略括号。通常习惯每一个语句末尾都加上一个分号。
例如:
赋值语句:a := a +1;
函数语句:MyFunction(x);
不带参数的函数:MyFunction;
如果是判断语句(if语句),那么在else前不插入分号,可以使用begin……end;插入代码段,例如:
if a = b then
a := a + 1
else
b := b + 1;
相关内容还会在具体例子中说明和讲解。
1.0.3、命名规则
Pascal语法不区分大小写,命名需要使用英文字母、数字和下划线的组合(数字不包括小数点),不能够使用数字作为变量开头,比如:5a就不可以。
1.0.2、习惯规则
赋值号前后、运算符前后(算术、逻辑)使用空格隔开,冒号(类型声明符号)之后、逗号之后使用空格隔开。命名遵守如下规则:
习惯上使用英文单词组合作为变量名,并且每一个单词首字母大写(当然,也可以使用拼音),有时候可以在尾端加上数字。根据个人习惯,可以自行确定个人喜好的命名规则,但是以简明易读为前提,例如:
MyVar、AChar、AlongAndLongStupidVar(有没有觉得变量名不宜太长?)、MyLALSVar(上一个长变量名的缩写)。
有时候允许使用一个或两个小写字母作为前缀来区分变量类型,如使用g表明全局变量等(全局变量将会在变量作用域中讲解)。
习惯上保留字(默认着色为蓝色且加粗的单词)全部小写,其余构成单词的变量名或者函数名首字母(每一个单词首字母)大写。
代码排版上,通常从属关系的语句或语句段缩进增加两个空格(一个Tab)。
1.1、Pascal基本数据类型
在入门级别中,常用的有四个基本类型以及一些系统常用组件类。
基本类型:整数、实数、字符、字符串。注意Delphi的字符串结构与C完全不同,Delphi的字符串索引从1开始,在内存中0位置储存长度信息。
常用组件类会再后续的小程序中一一介绍。
1.1.0、整数
常用的整数类型有:Integer、Byte、Word、Cardinal。
其中,Integer为32位有符号整数、Byte为8位无符号整数,Word为16位无符号整数、Cardinal为32位无符号整数。
另附:计算机中常用的位(bit)指二进制位,与字节换算关系为“1Byte = 8bit”,有符号数指数据中使用一位来储存符号,其取值分别为非负值和负值两类,两类数量相等(正值比负值少一个,由于0的缘故)。
Delphi中的颜色类型等同于32位无符号整数(Cardinal),在VCL中,预定义了一些cl开头的常量用来定义常用的颜色,FMX中则使用TAlphaColors集合定义常用颜色(cla是早期表示,已经弃之不用)。
常用函数
Inc(a);(Inc(a, N); )——作用:使a增加1(使a增加N)。
Dec(a);(Dec(a, N);)——作用:使a减少1(使a减少N)。
IntToStr(a);——作用:将a转换为字符串。
1.1.1、实数
常用的实数有:Single、Double、Extended三种,分别为单精度实数、双精度实数、扩展精度实数。区别在于精度不同,取值范围可以认为一样。
一般根据需要选用Single或者Double。
常用函数:部分需要引用System.Math单元。
Trunc(a);——效果:获取截断整数。
Round(a);——效果:获取近似整数(四舍六入五去偶,银行家算法)。
Ceil(a);——效果:天花板函数,获取不小于实数的最小整数。
Floor(a);——效果:地板函数,获取不大于实数的最大整数。
FloatToStr(a);——效果,将实数转换为字符串。
1.1.2、字符
新版本使用类型统一使用Char,ANSIChar等仅为兼容而存在,不推荐使用。
常用函数:
Chr(a);——效果:根据字符编号获取字符。
Ord(c):——效果:根据字符获取字符编号。
1.1.3、字符串
新版本请不要使用ANSIString,另外注意,string为保留字,习惯上小写。
如果需要兼容C系,可以使用PChar即字符指针(字符数组)。
字符串涉及到StringHelper,应用于string的一个类,可以对字符串进行一些查找、替换、统一下标索引等操作,后续将详细讲解。
常用函数:
Length(s);——效果:获取字符串长度(不要质疑这个函数的效率,难以估量地高,几乎等同于读取变量)。
1.2、Pascal中函数的简单使用
在Pascal中,一个函数可以看做分为两部分,一部分为声明部分,另一部分为实现部分(定义部分)。
声明部分:
函数类型 函数名(参数列表):返回值类型;
注意没有返回值的为过程(一般说的函数包括过程),省略返回值类型部分。
例如:
function AFunction(x:Single): Single;
procedureAProcedure(c: Char):
定义部分:
函数类型 函数名(参数列表):返回值类型;
局部变量定义标识(var)
局部变量定义
语句段
例如:
function MyFunction(x:Single): Single;
var
a: Single;
begin
a := x * x;
x := x + a;
Exit(x);
end;
注意:新版Pascal下有两种确定返回值的方式,第一种是使用Result变量,如果函数执行结束,Result有值,那么就作为返回值。另一种是使用Exit(返回值),这种时候将会忽略Result返回值。建议一个函数内不要混用。

