ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【Delphi 基础知识 6】常用的数据类型

2026/9/17 0:49:03 拓冰建站 浏览量
【Delphi 基础知识 6】常用的数据类型

目录

  • 1、基本数据类型
  • 2、结构化数据类型
  • 3、指针类型
  • 4、动态数组(Dynamic Array)
  • 5、集合类型(TList)
  • 6、关联数组(Associative Array)
  • 7、类(Class)
  • 8、接口(Interface)
  • 9、枚举类型(Enum)
  • 10、集合类型(Set)
  • 11、Procedural(过程类型)
  • 12、Variant 类型(Variant)
  • 13、Extended 类型

Delphi 支持多种数据类型,以下是一些常见的 Delphi 数据类型及其示例:

1、基本数据类型

  • Integer(整数):

    varmyInteger: Integer;
    beginmyInteger := 42;
    end;
    
  • Char(字符):

    varmyChar: Char;
    beginmyChar := 'A';
    end;
    
  • Boolean(布尔):

    varmyBoolean: Boolean;
    beginmyBoolean := True;
    end;
    
  • Real(实数):

    varmyReal: Real;
    beginmyReal := 3.14;
    end;
    
  • String(字符串):

    varmyString: String;
    beginmyString := 'Hello, Delphi!';
    end;
    

2、结构化数据类型

  • Array(数组):

    	varmyArray: array [0..4] of Integer;beginmyArray[0] := 10;myArray[1] := 20;// ...end;
    
  • Record(记录):

    typeTPerson = recordFirstName: String;LastName: String;Age: Integer;end;varperson: TPerson;
    beginperson.FirstName := 'John';person.LastName := 'Doe';person.Age := 30;
    end;
    

3、指针类型

  • Pointer(指针):

    varmyPointer: ^Integer;myValue: Integer;
    beginNew(myPointer); // 分配内存myValue := 42;myPointer^ := myValue;Dispose(myPointer); // 释放内存
    end;
    

4、动态数组(Dynamic Array)

	varmyDynamicArray: array of Integer;beginSetLength(myDynamicArray, 5);myDynamicArray[0] := 10;myDynamicArray[1] := 20;// ...end;

5、集合类型(TList)

usesClasses;varmyList: TList<Integer>;
beginmyList := TList<Integer>.Create;myList.Add(10);myList.Add(20);// ...myList.Free; // 释放内存
end;

6、关联数组(Associative Array)

varmyMap: TDictionary<String, Integer>;
beginmyMap := TDictionary<String, Integer>.Create;myMap.Add('One', 1);myMap.Add('Two', 2);// ...myMap.Free; // 释放内存
end;

7、类(Class)

typeTPerson = classprivateFName: String;FAge: Integer;publicconstructor Create(Name: String; Age: Integer);property Name: String read FName write FName;property Age: Integer read FAge write FAge;end;constructor TPerson.Create(Name: String; Age: Integer);
beginFName := Name;FAge := Age;
end;varperson: TPerson;
beginperson := TPerson.Create('John', 30);// 使用 person 对象person.Free; // 释放对象内存
end;

8、接口(Interface)

typeIPrintable = interfaceprocedure Print;end;TMyClass = class(TInterfacedObject, IPrintable)publicprocedure Print;end;procedure TMyClass.Print;
beginwriteln('Printing from TMyClass');
end;varmyObj: IPrintable;
beginmyObj := TMyClass.Create;myObj.Print;
end;

9、枚举类型(Enum)

typeTDayOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);vartoday: TDayOfWeek;
begintoday := Monday;
end;

10、集合类型(Set)

typeTDays = set of TDayOfWeek;varworkingDays: TDays;
beginworkingDays := [Monday, Tuesday, Wednesday, Thursday, Friday];
end;

11、Procedural(过程类型)

typeTProcedure = procedure;varmyProcedure: TProcedure;
beginmyProcedure := @MyFunction;myProcedure;
end;procedure MyFunction;
begin// 实现具体的过程
end;

12、Variant 类型(Variant)

varmyVariant: Variant;
beginmyVariant := 10; // 可以存储不同类型的值myVariant := 'Hello';
end;

13、Extended 类型

varmyExtended: Extended;
beginmyExtended := 3.14159265358979323846;
end;