TImage не поддерживает Jpeg в D7 (бесплатная версия)? - PullRequest
3 голосов
/ 21 августа 2010
procedure TmainForm.FormCreate(Sender: TObject);
  var img : TImage;
      pic:TPicture;

begin
  pic := TPicture.create();
  pic.LoadFromFile('my_picture.jpg');
  img :=  Timage.create(Self);
  img.Picture := pic;
end;

...

"Project MyProect.exe raised exception class EInvalidGraphic 
with message 'Unknown picture extension (.jpg)'" 

и, конечно же, прямо в функции TPicturePropertyEditor.Execute () он обрабатывает только файлы .ICO и .BMP!

Странная вещь заключается в том, что если я помещаю TImage в форму во время разработки и щелкаю ее свойство Picture, тогда в диалоговом окне загрузки файлов отображаются файлы .JPG (и происходит сбой, если я его загружаю) - _NOTE_ это «бесплатная для личного пользования» версия D7, которую много лет назад раздавали с компьютером.

Что делать? Код моего собственного компонента VCL? Или, может быть, кто-то уже изобрел это (FOSS) колесо?

1 Ответ

6 голосов
/ 21 августа 2010

Создайте новый проект и напишите (например)

procedure TForm1.FormCreate(Sender: TObject);
var
  img: TPicture;
begin
  img := TPicture.Create;
  img.LoadFromFile('C:\Users\Andreas Rejbrand\...\tiles55.jpg');
end;

Это приведет к ошибке «Неизвестное расширение файла изображения (.jpg)». Однако, если вы добавите «Jpeg» в предложение uses, оно будет работать.

...