这个语法是什么意思?

时间:2017-05-19 22:28:42

标签: delphi

在这个demo中,我试图弄清楚这段代码是如何工作的,我就这样停下来了:

type
  TOpenWeatherRequest = (ByCoords);

如何定义类型TOpenWeatherRequest?括号是什么意思?

2 个答案:

答案 0 :(得分:5)

这意味着一个可枚举的类型,作为一个const,你可以在集合中使用它并用它做一些逻辑运算。

例如:在国际象棋棋盘中,您可以定义文字名称来表示该片段:

type
  TChessPiece = (cpKing, cpBishop, cpKnight, cpRoque, cpQueen, cpPawn);

var
  Piece: TChessPiece;

Piece := cpBishop;

在课堂上看一个非常有趣的用法

type
  TChessBoard = class
  private
    FPiece: TChessPiece;
  public
    constructor Create(Piece: TChessPiece);
    procedure ShowValidMove;
  end;

implementation

procedure TChessBoard.ShowValidMove; 
begin
   case FPiece of
     cpKing: ShowMessage('Neighboard squares');
     cpBishop: ShowMessage('Diagonal squares'); 
     cpKnight: ShowMessage('L squares'); 
     cpRoque: ShowMessage('Parallel squares'); 
     cpQueen: ShowMessage('Roque AND Bishop squares'); 
     cpPawn: ShowMessage('Goes to front, captures short diagonal');
   end;
end;

查看我对此问题的回答,我建议使用Enumerable类型来解析逻辑矩阵以隐藏某些特定的TabControl How to hide multiple tabs in TTabcontrol

答案 1 :(得分:2)

这是一个enumerated type,具有单个序数值。