Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В GraphicEx: нет LoadFromStream для Image [D6, XP]


Евгений07 ©   (2011-10-09 23:28:00) 

Доброго времени!
Для отображения jpg файлов пользуюсь GraphicEx
Понадобилось для чтения jpg файлов в Image применить LoadFromStream
Выдает ошибку при компиляции
Если включить QExtCtrls, то LoadFromStream доступен для Image, но не доступен формат jpg


Евгений07   (2011-10-10 03:15:00) [1]

Юрий Спасибо
1. Я понял суть моей проблемы (на данный момент)
2. Проверка займет время, голова сейчас не ток варит
3. Из пока еще мной не понятого:
  скачиваю картинку с своего сайта = все нормально
  скачиваю картинку с сайта хостинга =
     - размер в ~10 раз меньше
     - формат не тот (jpeg  заголовок идет = FFxx, у меня в десятиричном формате = 60, 33, 68, 79, 67 ...)


Юрий Зотов   (2011-10-10 02:45:00) [2]

Уточнение - чтобы не было утечки памяти, грузите картинку так:

var
 Temp: TPicture;
begin
 Temp := GetLogo;
 try
   Image1.Picture.Graphic := Temp;
 finally
   Temp.Free;
 end;
end;


Юрий Зотов   (2011-10-10 02:33:00) [3]


> Евгений07   (10.10.11 02:23) [12]

TSomeClass - это любой Ваш класс (например, форма, на которой лежит Image). Добавьте к нему этот метод и грузите картинку так:

Image1.Picture.Graphic := GetLogo;

В uses должно быть Graphics, Jpeg и ExtCtrls (QExtCtrls и GraphicsEx уберите).


Евгений07   (2011-10-10 02:23:00) [4]

Jpeg подключен
Jpeg.pas у меня нет
TSomeClass не знаю. где посмотреть?


Юрий Зотов   (2011-10-10 02:09:00) [5]


> Евгений07   (10.10.11 01:47) [9]
> Подключение QExtCtrls ошибку снимает, не доступен формат jpg

Вместо QExtCtrls подключите модуль Jpeg. Во всяком случае, с ним у меня без проблем работает вот это:

function TSomeClass.GetLogo: TGraphic;
var
 Stream: TResourceStream;
begin
 Stream := TResourceStream.Create(HInstance, 'LOGO', RT_RCDATA);
 try
   Result := TJpegImage.Create;
   try
     Result.LoadFromStream(Stream)
   except
     Result.Free;
     raise
   end
 finally
   Stream.Free
 end
end;


Германн   (2011-10-10 01:50:00) [6]


> Евгений07   (10.10.11 01:30) [6]
>
> без QExtCtrls недоступен LoadFromStream для Image
> Компилятор выдает ошибку
> Значит косячит GraphicEx??
>

Значит "косячите" вы!
Неужели так сложно прочитать справку?


Евгений07   (2011-10-10 01:47:00) [7]

ExtCtrls указан в uses всегда
uses
 ExtCtrls,
Jpeg,   Graphics,
GraphicEx,            

это вырезка uses = Компилятор выдает ошибку

Подключение QExtCtrls ошибку снимает, не доступен формат jpg
= объект для Image берется из QExtCtrls, без GraphicEx
Это мое предположение


Юрий Зотов   (2011-10-10 01:45:00) [8]

См. TImage.Picture.Graphic.LoadFromStream


Юрий Зотов   (2011-10-10 01:35:00) [9]


> Евгений07   (10.10.11 01:30) [6]

А с ExtCtrls (без "Q") - тоже ошибка?


Евгений07   (2011-10-10 01:30:00) [10]

без QExtCtrls недоступен LoadFromStream для Image
Компилятор выдает ошибку
Значит косячит GraphicEx??


Германн   (2011-10-10 01:21:00) [11]


> На ХР

Так зачем вам нужен QExtCtrls?
Он-то разработан для Линукса!


Евгений07   (2011-10-10 01:08:00) [12]

На ХР


Германн   (2011-10-10 01:00:00) [13]


> Обработчик ХР, сервер Линукс
>

А программа-то где выполняется?


Евгений07   (2011-10-10 00:34:00) [14]

Обработчик ХР, сервер Линукс


Германн   (2011-10-10 00:31:00) [15]


> Если включить QExtCtrls

Под Линукс пишете?


Наверх

Титульная страница Поиск, карта сайта Написать письмо