2012-11-21 14 views
0

我想創建一個必須使用位圖的組件,當我去選擇屬性上的圖像時遇到問題。當爲我的組件分配一個值時訪問衝突Bitmap屬性

下面是代碼的摘錄: 財產申報

Property StarOff: TBitmap read FStarOff write SetStarOff; 

功能SetStarOff

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

但是,當我分配一個值的財產,我得到的錯誤:

Access violation at address 1BC324B8 in module 'TNte.bpl'. Read of address 000000000

這是怎麼發生的?

+2

你剛纔告訴我們的是「你有問題」。目前你已經講了一個故事,但沒有提出一個問題。提供詳細信息,足夠的代碼供我們重新制作,幷包含錯誤消息。 –

+0

Desculpe,estou recebendo uma mensagem de erro ao tentar definir uma propriedade que eu estou tentando criar,que esta propriedadeéum TBitmap。 O erro aparece quando eu vou selecionar a imagem Access in violation in address 1BC324B8 in module'TNte.bpl'。閱讀地址000000000 –

+0

Jose,顯示錯誤消息。你想讓人們猜測它嗎? –

回答

4

你的setter方法看起來是正確的,但是你得到一個訪問衝突,因爲你的FStarOff成員目前爲零。

通常是在施工時創建它並在銷燬時釋放它。

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

destructor TMyComponent.Destroy; 
begin 
    FStarOff.Free; 
    inherited; 
end; 
+0

謝謝,那是錯誤! –

+0

並且不要忘記爲'TBitmap'分配一個'OnChange'事件處理程序,以便您可以對其進行更改,例如從'FStarOff.Assign()'做出反應。 –