2016-02-29 91 views
2

我正在使用Delphi XE8。爲什麼我無法在畫布上畫畫?

我加載背景圖片到我的圖片:

var 
    Png: TPngImage; 
begin 
    Png := TPngImage.Create; 
    try 
    Png.LoadFromResourceName(HInstance, 'background'); 
    Image1.Picture.Graphic := Png; 
    finally 
    Png.Free; 
    end; 

這工作好了,但是當我嘗試繪製圖像的畫布上(我試過LineTo)我得到這個錯誤:

Can only modify an image if it contains a bitmap

我該如何在已經加載圖片的圖片上繪圖?

回答

4

答案可以在你引用的錯誤信息中找到:

Can only modify an image if it contains a bitmap.

因此,創建一個位圖對象,PNG圖像分配給該位圖,然後分配該位圖到TImage控制的Picture

+2

或者開始使用Graphics32庫(http://graphics32.org/wiki/),它沒有這樣的限制。更不用說Graphics32庫在繪圖時支持硬件加速,所以如果需要更復雜的繪圖,它可能會非常有用。 – SilverWarior

+0

燦爛!謝謝。 –

+0

@SilverWarior我看不到硬件加速到何處。 –