ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

delphi快速入门一、基本语法

2021-09-04 15:32:03  阅读:260  来源: 互联网

标签:语句 ... end 入门 delphi 语法 类型 integer type


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
$ 十六进制符

标签:语句,...,end,入门,delphi,语法,类型,integer,type
来源: https://www.cnblogs.com/lenovo512023499/p/15226744.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有