Delphi 系统[23]关键字和保留字 array、file、set、string、in、nil
Delphi 系统[23]关键字和保留字 array、file、set、string、in、nil
1、定义:
- array :声明一个数组。
- file :声明一个文件类型。
- set :声明一个集合。
- string :声明一个字符串。
- in:用于判断一个集合中是否包含某个元素。也可以被用在 for 语句中,用于循环取出一个集合中的元素。也用于工程文件中,用于标识某个文件是否被工程所引用。
- nil:指示一个指针(某些对象其实也是指针)为空。
2、示例:
{ 定义各种数据类型 }
type
TMyArray = array[0..9] of string; { 声明静态数组 }
TCharArray = array of Char; { 声明动态数组 }
TButtonFile = file of TButton; { 声明 TButton 格式的文件类型 }
TIntFile = file of Integer; { 声明 Integer 格式的文件类型 }
TLatterSet = set of 'A'..'Z'; { 声明大写字母集合 }
TByteSet = set of byte; { 声明字节集合 }
TName = string[32]; { 声明 32 个自己长度的 ShortString 类型 }
procedure TForm1.Button1Click(Sender: TObject);
var
{ 声明各种数据类型的变量 }
MyArray1: TMyArray;
MyArray2: array of Char;
MyFile1: TButtonFile;
MyFile2: file of Integer;
MySet1: TLatterSet;
MySet2: set of 'A'..'Z';
Name1: TName;
Name2: string[255];
Name3: string;
I: Integer;
begin
{ 数组类型测试 }
SetLength(MyArray2, 26);
for I := Low(MyArray2) to High(MyArray2) do
MyArray2[I] := Chr(65 + I);
ShowMessage(string(MyArray2));
{ 集合类型测试 }
MySet1 := ['A'..'Z'];
MySet2 := MySet1;
if 'A' in MySet1 then ShowMessage('Found A in MySet1'); //in用于集合
if CharInSet('A', MySet2) then ShowMessage('Found A in MySet2');
end;
in的其他用法:
procedure TForm1.Button1Click(Sender: TObject);
var
Item: Char;
MySet: set of 'A'..'Z';
begin
{ in 用于 for 语句 }
for Item in MySet do
Caption := Caption + Item;
end;
{ in 用于工程文件 }
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
begin
end.
nil:
{ 检测控件是否存在 }
procedure TForm1.Button1Click(Sender: TObject);
var
MyEdit: TEdit;
begin
{ 仅仅释放 }
MyEdit := TEdit.Create(Self);
try
MyEdit.Parent := Self;
MyEdit.Show;
Caption := BoolToStr(Assigned(MyEdit), True);
finally
MyEdit.Free;
end;
ShowMessage('控件是否存在:' + BoolToStr(Assigned(MyEdit), True));
{ 释放并 nil }
MyEdit := TEdit.Create(Self);
try
MyEdit.Parent := Self;
MyEdit.Show;
Caption := BoolToStr(Assigned(MyEdit), True);
finally
MyEdit.Free;
MyEdit := nil; { 这里的两行代码一般合起来写为 FreeAndNil(MyEdit) }
end;
ShowMessage('控件是否存在:' + BoolToStr(Assigned(MyEdit), True));
end;
3、其他关于 指针 Poniters 的 和 @ 运算符的说明,
创建时间:2021.08.12 更新时间: