我可以访问TBits内部位图吗?

时间:2012-07-07 14:01:15

标签: delphi bits

特别是,我想预设所需的大小,从外部源获取位图,然后使用 classy 面向对象的方式处理数据。

我认为是什么

  1. TBits不仅仅是一个直截了当的布尔人和
  2. 内部存储是连续的。
  3. 这样的假设我是否正确?

1 个答案:

答案 0 :(得分:9)

  1. 正确,TBits是内部位结构的,因此它不是一个简单的布尔集合。
  2. 是的,存储是通过分配大到足以承载大小的连续内存来处理的(以SizeOf(整数)为增量)。
  3. 要访问内部数据指针,可以使用class helpers

    Type
      TBitsHelper = class helper for TBits
        private
          function GetBitsPointer: Pointer;
        public
          property BitsPt: pointer read GetBitsPointer;
      end;
    
    function TBitsHelper.GetBitsPointer: Pointer;
    begin
      with Self do Result := FBits;  
    end;