2017-02-03 19 views
-2

Я нашел код, чтобы сделать следующее на этом сайте, поэтому спасибо Однако строка «logo.Bitmap.LoadFromStream (MyRs);»Ошибка памяти при попытке загрузить jpeg из файла ресурсов Delphi XE7/OSX

Нарушение прав доступа - некоторая ошибка памяти.

Я использовал Проект | Ресурсы и изображения ... для добавления Jpeg

Это проблема с тем, что ресурс не связан, или скорее мой код?

Спасибо :)

uses 
    Classes, FMX.Graphics, FMX.Objects; 

procedure MyProvedure(); 
var 
    logo : TImage; 
    MyRS : TResourceStream; 
begin 
    MyRS := TResourceStream.Create(HInstance, 'logo_1', RT_RCDATA); 
    try 
     logo.Bitmap.LoadFromStream(MyRs); 
    finally 
    MyRS.Free; 
    end; 
end; 
+2

Спросите себя, что время жизни 'logo' это? –

+0

Эта процедура распечатывает PDF с логотипом (растровое изображение) - так что срок жизни в порядке - до тех пор, пока он будет создан! (как утверждает Ari0nah) - затем я освобожу его в блоке finally. Благодарю. – Trevor

ответ

3

Вы должны создать образ, прежде чем использовать его:

logo := TImage.Create(nil); 
+0

Это сработало - большое спасибо! – Trevor