全局数组属性定义

时间:2015-02-10 13:03:32

标签: delphi

我想定义一个动态全局数组的属性。

private
class var FArray;
public
class property myArray : array of byte read FArray write FArray; 

我有全球价值单位。我的程序打开图像并获得缩放图层和分辨率。例如:如果我的图像有5个缩放图层,我的属性数组的长度将为5.我只声明此属性一次,直到关闭并更改图像。我想从每个单元访问此属性,因此它必须是全局和动态数组。也属性。我怎么能宣布这个?

1 个答案:

答案 0 :(得分:2)

像这样:

type
  TMyGlobalClass = class
  private
    class var FArray: TArray<Byte>;
  public
    class property myArray: TArray<Byte> read FArray write FArray;
  end;

人们想知道是否值得将此作为财产。属性给出了封装的外观,但在这种情况下,您只能获得具有轻度混淆的全局变量。由于您可以完全访问读取和写入,因此您可能会像这样编写它:

type
  TMyGlobalClass = class
  public
    class var myArray: TArray<Byte>;
  end;

这只不过是TMyGlobalClass范围内的全局数组。

只是为了试图涵盖所有基础,如果我不提及普遍持有的观点,即全球状态通常是设计不良的标志,那将是我的疏忽。当然你可以用某种方式封装。