本文介绍了我可以访问TBits内部位图吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In particular, i want to preset desired size, fetch a bitmap from external source, and then work with data in objecty-oriented manner.

我猜是什么

  1. TBits不仅仅是布尔值和
  2. 的简单集合.
  3. 内部存储是连续的.

我对这样的假设正确吗?

Am i correct with such assumptions?

推荐答案

  1. 正确,TBits是内部位结构的,因此它不是布尔值的直接集合.
  2. 是的,存储是通过分配足够大以容纳size(以SizeOf(integer)为增量)的连续内存来处理的.
  1. Correct, TBits is internally bit-structured, so it's not a straightforward collection of booleans.
  2. Yes, storage is handled by allocating contiguous memory big enough to carry the size( in increments of SizeOf(integer)).

要访问内部数据指针,可以使用class helpers.

To get access to the internal data pointer, class helpers can be used.

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;

这篇关于我可以访问TBits内部位图吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 02:01