0

ビットマップを使用する必要のあるコンポーネントを作成しようとしていますが、プロパティで画像を選択するときに問題が発生します。

コードの抜粋は次のとおりです。プロパティ宣言

Property StarOff: TBitmap read FStarOff write SetStarOff;

関数SetStarOff

procedure TNotas.SetStarOff(const Value: TBitmap);
begin
FStarOff.Assign(Value);
end;

しかし、プロパティに値を割り当てると、次のエラーが発生します。

モジュール「TNte.bpl」のアドレス1BC324B8でのアクセス違反。アドレス000000000の読み取り

なぜこうなった?

4

1 に答える 1

4

セッター メソッドは正しいように見えますが、現時点では FStarOff メンバーが nil であるため、アクセス違反が発生しています。

通常は、構築時に作成し、破棄時に解放します。

constructor TMyComponent.Create(AOwner: TComponent);
begin
  inherited;
  FStarOff := TBitmap.Create;
end;

destructor TMyComponent.Destroy;
begin
  FStarOff.Free;
  inherited;
end;
于 2012-11-21T14:46:38.007 に答える