zoukankan      html  css  js  c++  java
  • 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  更新时间:

    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你所有帮助,谢谢!
  • 相关阅读:
    二维坐标离散化
    unique()函数使用
    如果你的unordered_map头文件报错请看这里
    string删除与查找erase,find
    2017 ACM-ICPC, Universidad Nacional de Colombia Programming Contest K
    2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 2) P-Fear Factoring 区间内数的所有因数的和(除法分块)
    .NETCore使用EntityFrameworkCore连接数据库生成实体
    sql server 触发器开发
    Windows 配置定时任务 和任务无法执行原因分析
    sql 的存储过程和事务
  • 原文地址:https://www.cnblogs.com/guorongtao/p/15133582.html
Copyright © 2011-2022 走看看