Delphi基础语法

本文介绍了Pascal语言的基础概念,包括常量与变量的定义、赋值语句、条件语句、循环语句等内容,并提供了丰富的代码示例。

1.      常量:固定值,不可变数。

1)       const

       常量名 = 常量值(表达式);

2)       resourcestring

       常量名 = 字符串(常量);

2.      变量

1)         定义

    Var 名字1,名字2,…名字n:类型;

2)         命名原则(参考)

  变量名字 = 类型(缩写) + 作用域(简称) + 确切含义名称

3)         三种赋值格式

 变量名:= 值;

 变量名1: = 变量2;

  变量名:= 过程或函数的调用;

3.      类型常量

1)         类型常量是全局变量并不是一个常量,它进行了预初始化值。

2)         定义

Const

  名字:类型 = 值;

3)         种类

       简单的类型常量

       数组类型常量

       记录类型常量

       集合类型常量

       指针类型常量

       过程类型常量

4.      数据类型

   

简单类型(Simple)

 

 

 

 

有序类型(Ordinal)

 

 

 

 

整数(Integer)

 

 

 

字符(Character)

 

 

 

布尔(Boolean)

 

 

 

枚举(Enumerated)

 

 

 

子域(SubRange)

 

 

实数(Real)

 

 

结构类型(Structured)

 

 

 

 

集合(Set)

 

 

 

数组(Array)

 

 

 

记录(Record)

 

 

 

文件(File)

 

 

 

类(Class)

 

 

 

类指针(Class Reference)

 

 

 

界面(Interface)

 

 

字符串类型(String)

 

 

 

指针类型(Pointer)

 

 

 

过程类型(Procedural)

 

 

 

可变类型(Variant)

 

 

 

 

5.      用户自定义类型

           子域类型

        Type 名称 = 初值…终值;

           枚举类型

        Type 名称 = (值1,值2,值3…值N);

           数组类型

        Type 名称 = Array[下标定义]of类型名

        Type 名称 = [下标定义1,下标定义2…下标定义N] of元素类型

                或名称 = [下标定义1ofArray [下标定义N] of元素类型

           集合类型

        Type 名称 = set of 元素类型

           指针类型

Type 名称 = ^结点类型

           记录类型

        Type 名称 = Record

            域名1:类型;

            域名1:类型;

            ……

            域名N:类型;

        end;

           文件类型

    Type 名称 = file of 元素类型

 

 

语句

 

简单语句 
X := Y + Z;  // assignment
Randomize;   // procedure call

复合语句
begin
  A := B;
  C := A * 2;
end;

end之前的最后一条语句末尾分号不是必需的,你可以写成:

begin
  A := B;
  C := A * 2
end;

赋值语句 
在Pascal 语言中赋值语句用冒号-等号操作符“:=”,

 

条件语句

If语句 
对if-then型语句,仅当条件满足时,语句才执行;
if CheckBox1.Checked then
    ShowMessage ('CheckBox1 is checked')

对if-then-else型,if语句在两条语句中选择一条执行
if CheckBox2.Checked then
    ShowMessage ('CheckBox2 is checked')
  else
    ShowMessage ('CheckBox2 is NOT checked');

要注意的是,不能在第一句之后、else 关键词之前加分号,否则编译器将告知语法错误。实际上,if-then-else 语句是单纯的一条语句,因此不能在语句中间加分号。

if 语句可以很复杂,句子中的条件部分可以是一系列条件(用and、 or 、 not等布尔操作符联接起来),if语句又可以嵌套另一个if语句


begin
  // compound if statement
  if CheckBox1.Checked then
    if CheckBox2.Checked then
      ShowMessage ('CheckBox1 and 2 are checked')
    else
      ShowMessage ('Only CheckBox1 is checked')
  else
    ShowMessage (
      'Checkbox1 is not checked, who cares for Checkbox2?')
end;

Case语句
case语句包括用来选值的表达式、可能值序列或一个取值范围。这些值应该是常量,并且它们必须唯一,而且应属于有序类型。

Case语句最后可以带一个else 语句,当没有一个标签与选择器的值一致时,执行else语句。下面是两个简单的例子:

case Number of
  1: Text := 'One';
  2: Text := 'Two';
  3: Text := 'Three';
end;

case MyChar of
  '+' : Text := 'Plus sign';
  '-' : Text := 'Minus sign';
  '*', '/': Text := 'Multiplication or division';
  '0'..'9': Text := 'Number';
  'a'..'z': Text := 'Lowercase character';
  'A'..'Z': Text := 'Uppercase character';
else
  Text := 'Unknown character';
end;


Pascal语言中的循环

其它编程语言中使用的循环语句,Pascal语言中都有,它们包括 for、 while 和 repeat 语句。如果你用过其他编程语言,你会发现Pascal中的循环语句没什么特别的,因此这里我只作简要的说明。

For循环 
Pascal 中的for循环严格地建立在计数器基础上,循环每执行一次,计数器不是增加一个值就是减小一个值。下面是一个for语句的简例,用来将前十个数加起来:

var
  K, I: Integer;
begin
  K := 0;
  for I := 1 to 10 do
    K := K + I;

同样的for语句可以用正好相反的计数器来写:

var
  K, I: Integer;
begin
  K := 0;
  for I := 10 downto 1 do
    K := K + I;

Pascal 中的for循环语句其灵活性比其他语言小(它不能指定1之外的步长),不过简单也容易理解。如果需判断的条件比较复杂,或想自定义计数器,你可以用while语句或 repeat 语句,而不是for循环语句。

注意:for循环计数器不必非是数字,它可以是任何有序类型的值,例如一个字符或一个枚举类型值。

 

while语句和repeat语句 
while-do 循环语句和 repeat-until 语句的不同点在于repeat 循环语句的代码至少要执行一次。从下面的简例很容易理解这一点

while (I <= 100) and (J <= 100) do
begin
  // use I and J to compute something...
  I := I + 1;
  J := J + 1;
end;

repeat
  // use I and J to compute something...
  I := I + 1;
  J := J + 1;
until (I > 100) or (J > 100);

从上可见即使 I 或 J 的初始值大于100,repeat-until循环中的代码也仍会执行一次。

注意:两种循环另一个关键的不同点是,repeat-until 循环的条件是反向的条件,只要不满足这个条件,循环就执行;当条件满足时,循环终止。这正好与while-do 循环相反,while-do 循环当条件是真值时才执行。为此,我不得不在上面代码中用反向条件来获得相同的结果。


注意:用 Break 和 Continue 系统过程可以改变循环执行的标准流程。Break 中断循环;Continue直接跳至循环测试句,或使计数器增加一个步长,然后继续循环(除非条件为空或计数器达到最大值)。还有两个系统过程 Exit 和 Halt,让你立即从函数或过程中返回,或者终止程序。

With语句

  with BirthDay do
  begin
    Year := 1995;
    Month := 2;
    Day := 14;
  end;

 转自http://blog.youkuaiyun.com/tercel99/article/details/672910

### Delphi 基础语法教程 #### 1. 工程文件结构 Delphi 的项目通常由两个主要部分组成:`.dpr` 文件和 `.pas` 文件。 - **DPR 文件** 是项目的入口点,定义程序的初始化过程以及主窗体的创建逻辑[^1]。 ```delphi program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end. ``` - **PAS 文件** 定义单元(unit),其中包含类声明和其他代码逻辑[^1]。 ```delphi unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end. ``` --- #### 2. 标识符与变量 在 Delphi 中,标识符用于命名变量、常量、函数等。以下是基本规则: - 只能包含字母、数字和下划线 `_`。 - 必须以字母开头。 - 不区分大小写。 示例: ```delphi var MyVariable: Integer; // 整型变量 AnotherVar: Double; // 浮点数变量 ``` --- #### 3. 数据类型 Delphi 支持多种数据类型,常见的有以下几种: | 类型 | 描述 | |------------|--------------------------| | `Integer` | 有符号整数 | | `Double` | 浮点数 | | `String` | 字符串 | | `Boolean` | 布尔值 (`True`, `False`) | 示例: ```delphi var Age: Integer; // 年龄 Name: String; // 名字 IsStudent: Boolean; // 是否学生 ``` --- #### 4. 过程与函数 过程(Procedure)和函数(Function)是实现功能的核心组件。区别在于函数可以返回值,而过程不能。 ##### (1) Procedure 示例 ```delphi procedure Greet(Name: String); begin ShowMessage('Hello, ' + Name); end; ``` ##### (2) Function 示例 ```delphi function Add(A, B: Integer): Integer; begin Result := A + B; end; ``` 调用方式: ```delphi Greet('John'); // 调用过程 ShowMessage(IntToStr(Add(5, 7))); // 调用函数并显示结果 ``` --- #### 5. 控件事件处理 控件事件通过绑定到特定的过程来响应用户的操作。例如按钮点击事件: ```delphi procedure Tfrm_item.btnSaveClick(Sender: TObject); var rec: ThresholdParam; begin rec.isChkV := True; // 设置布尔值 rec.MaxLimitV := 2.00; // 设置最大电压限制 rec.isChkA := True; // 设置电流检测标志 rec.MaxLimitA := 3.00; // 设置最大电流限制 end; ``` --- #### 6. 集合类型的使用 集合类型如 `TStringList` 和泛型容器 `TList<T>` 提供了强大的数据管理能力。 ##### (1) TStringList 使用 ```delphi var List: TStringList; begin List := TStringList.Create; try List.Add('Item 1'); List.Add('Item 2'); for i := 0 to List.Count - 1 do Writeln(List[i]); finally List.Free; end; end; ``` ##### (2) TList<T> 使用 ```delphi uses Generics.Collections; var Numbers: TList<Integer>; begin Numbers := TList<Integer>.Create; try Numbers.Add(10); Numbers.Add(20); for Number in Numbers do Writeln(Number); finally Numbers.Free; end; end; ``` --- #### 7. 条件语句与循环 条件判断和循环控制是编程中的重要组成部分。 ##### (1) If 判断 ```delphi if Age >= 18 then ShowMessage('Adult') else ShowMessage('Minor'); ``` ##### (2) For 循环 ```delphi for I := 1 to 10 do Write(I, ' '); ``` ##### (3) While 循环 ```delphi while Count < 5 do begin Inc(Count); WriteLn(Count); end; ``` --- #### 8. 异常处理 异常处理机制能够捕获运行时错误并优雅地应对它们。 ```delphi try StrToInt('NotANumber'); except on E: Exception do ShowMessage('Error: ' + E.Message); end; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值