|
1、文件构成 delphi的主模块文件格式为.dpr(类似C++的.sln文件),其它模块文件为.pas(类似C++的.cpp文件)。所以一个完整的程序由一个.dpr和若干个.pas组成
(1).dpr程序结构 一个dpr由程序头、[use从句]、主程序组成,另外源文件联系着unit单元,一个典型的工程文件如下所示: program Project; {$APPTYPE CONSOLE} use SysUnits; //unit名称与.pas文件名称一致,一个.dpr中不能应用两个名称想用的.pas begin //.... end. 注意:良好的程序需在.dpr中代码尽量的少,代码最好分类在.pas中,然后在.dpr里调用工程文件红的全局标识符必须声明与begin之前。
(2).pas文件剖析 程序的每个子模块称为一个单元,每个单元存储在一个.pas文件中。每个.pas文件依次包括:单元名称、Interface关键字,implementation、[initalization]、[finalization]、关键字end。一个完整的pas文 件如下所示: unit Unit1; //单元名称 interface //interface起始部分 uses ... implementation //implementation起始处 uses ... initialization //initalization起始处 ... finalization //finalization起始处 ... end. //单元文件结尾(end后必须以句号结尾)
interface下面可定义变量、常量、例程等。其它地方也能定义标识符,但是只有在这里定义的标识符才是全局标识符。在这里定义的例程只是一个原型,具体的实现部分则放在implementation中. implementation下面可定义例程的具体代码,在此处定义的变量、常量、例程等,只能在本implementation单元使用,interface部分和其它单元无法使用initialization下面部分可选,此部分的代码在程序启动时运行。若多个单元中都包含该部分,则按照工程文件uses顺序执行。 finalization部分可有可无,仅当initization存在时才可以使用此部分。程序退出时使用该部分的代码,除非程序由Halt强行退出。当多个单元都存在此部分时,运行顺序与initalization相反。
2、数据类型 (1)常用整形 Integer -2147483648~2147483647 Shortint -128~127 Smallint -32678~32767 Byte 0~255 Int64 -2^63~ 2^63 - 1 Cardinal 0~4294967295 Word 0-65535 Longint -2147483648~2147483647 Real -5.0x10^-324~ 1.7x10^308 (2)其它常见类型 常量:Const 常量名 = 表达式 ,声明常量不必指定数据的类型,但必须初始化 Const Pi = 3.1415926 ErrorMsg = '类型错误' 字符:包括ansiChar和wideChar,分别占一个字节和两个字节。 注意:如果想保存中文,必须用wideChar,如c := WideString('玩')
字符串:string var s :string; begin s := 'this is a test'; ShowMessage(s); end; 布尔值:只有true和false两种类型,但是delphi内置4种布尔类型,分别是 Boolean/ByteBool/WordBool/LongBool,分别占1/2/3/4字节 枚举类型:type 名={标识符1,标识符2,标识符3...}; 子界类型:type 子界类型名 = 下界..上界 集合:type set1 = set of 有序值得集合。例如下面的例子 type set1 = set of 0..10 变体类型: variant
(3)数组:特别注意:delphi中数组的下标是从1开始 静态数组: 一维: type myarr = Array[3..5] of integer //值为3,4,5类型是整形 多维:type myArr = Array[1..3] of Array[3..5] of Integer 或者下面的方式 type myArr = Array[1..3, 3..5] of integer 动态数组: type dyArray = array of char; var dal: dyArray; (4)记录类型:(结构体类型) type trec = record mem1: char; mem2: integer; ... end; (5)指针:type 指针类型标识符 = ^数据类型 var p: ^Integer; var ansiStr :^AnsiString; 或者先声明类型再声明变量 type pansiStr = ^AnsiString; var ansiStr : pansiStr;
@取地址符(类似C++的&),如@ansiStr ^取值符(类似C++的*), 如^ansiStr (6)运算符 div 求整数部分 mod 求余数部分 not 反 and 且 or 或 xor 异或 shl 左移 shr 右移
+ 对于字符串就是连接字符串成一个新的字符串。如 str = "abd" + "ed" //anded 集合运算符: + 集合所有不重复的组成新的集合。[1,2] + [2, 3] = [1,2,3] - 去掉集合中所有共有元素组成新的集合 [1,2,3] - [2,6] = [1,3] * 集合中共有的元素组成新的集合 [1,2,3] * [2,3] = [2,3] >= 若前者包含后者,则返回true [1,2,5] >= [2,5] in 从属运算。若X是S1的成员,则返回True,否则返回False
3、语句 (1)if语句 if(条件表达式) then 语句 //切记,如果有对应得else语句,则这里不能用分号 else 语句; (2)选择语句 Case 选择表达式 of 常量1: 语句1; ... Else ... End;
例如: case myChar of '+' : Text := 'Plus sign'; '-' : Text := 'Minus sign'; '*', '/': Text := 'muti'; '0'..'9': Text := 'number'; (3)循环语句 -------while循环------- while 条件表达式 do 循环语句; 例如:while i < n do begin sum := sum + i; i := i++; end;
------repeat循环--------- repeat 循环体 until 条件表达式 例如:repeat i := i+1; sum := sum + i; until i = n;
------for循环--------- for 计数器 := 初值 to/down 终值 do 循环体 例如:for i := 1 to/down n do writeln('hello delphi') ------for ...in 循环------- for v in set do 循环体 例如:var mySet: set of AnsiChar; ch : AnsiChar; begin mySet := ['1', '2']; for ch in mySet do writeln('hello delphi')
(4)终止语句 --------exit------------- exit退出当前正在执行的程序块,不会退出整个程序,除非将其用在了主程序块中(.dpr)
procedure Mi; //procedure没有返回值 begin exit; end;
function Mi:string //function有返回值 begin exit('str'); end;
----------Halt---------- Halt引发异常中断并通过中断直接退出整个程序 procedure Mi; begin Halt; end;
--------terminate------ delphi窗体程序含有一个全局程序对象(一般是Application),terminate可在窗体程序的任何地方使程序正常终端并退出 procedure TForm1.Button1Click(sender: TObject); begin Application.terminate; end;
(5)注释语句 delphi的注释有三种,除了常见的//和/**/之外,还有就是用花括号{}注释,位于{}中 的内容为注释
4、过程和函数 --------过程(procedure)-------- procedure 过程名(参数列表) //参数列表中同类型的参数之间用逗号隔开, 局部声明部分 //不同类型的参数用分号隔开 begin 过程体语句块 end; 例如: procedure TForm1.showsum(N:integer); var sum, i: integer; begin sum := 0; for i:= 1 to N do sum := sum + i; showMessage(inttostr(sum)); end;
-------函数(function)--------- function 函数名(参数表):返回值数据类型 局部声明部分 begin 函数体语句块 end; 例如: function TForm1.tryfunc(i, j:integer; c:char):integer; begin tryfunc := 1; end;
5、快捷操作 (1)常用快捷键 F4 运行到下一个断点 F5 设置断点 F7 进入函数 F8 单步运行 F9 运行程序 F12 快速切换源文件和窗体 Shift + F12 切换到窗体 Ctrl + F12 切换到源文件
6、特殊符号 ^ 指针的引用解析操作符。如果该符号出现在类型前面,表示一个指针,如var p:^integer;如果在后面,那么表示取地址对应的值。如 i := p^ @ 取址运算符 var i:integer; p:^integer; i := 2; p := @i; # Ascii值表示符。如 const key = #9 $ 十六进制符
来源:https://www.cnblogs.com/lenovo512023499/p/15226744.html |