Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 12:31   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию TBitmap > LoadBitmap > EOutofResource?

Всем привет, ...

При загрузке битмапа из ресурса, вываливается EOutofResource, в чем моя ошибка? Но сама картинка загружается в битмап нормально!
Код:
var
  _TmplStr: string;
begin
  _TmplStr := TmplComboBox.Text;
  Image.Picture.Bitmap.Handle := LoadBitmap(HInstance, PChar(_TmplStr));
  Image.Repaint;
end;
XerSon вне форума Ответить с цитированием
Старый 08.12.2010, 13:21   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а как в ресурс запакована?
может стоит применить TResourceStream?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.12.2010, 13:29   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

А Bitmap-то точно существует? У Image.Picture, я имею ввиду.

И какого размера растр в ресурсе?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 08.12.2010, 13:45   #4
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

123 BITMAP "Bmp/123.bmp"

bmp 24bit

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
А Bitmap-то точно существует? У Image.Picture, я имею ввиду.
Код:
var
  ResBmp: TBitmap;
  _TmplStr: PChar;
begin
  _TmplStr := PChar(Tmpl_ComboBox.Text);
  ResBmp := TBitmap.Create;
  try
    ResBmp.LoadFromResourceName(HInstance, _TmplStr);
    Image.Picture.Assign(ResBmp);
  finally
    ResBmp.Free;
  end;
end;
в фаил проекта, дописал:
Код:
ReportMemoryLeaksOnShutdown := DebugHook <> 0;
Картинка грузится нормально в Image, но репорт говорит о следующем:



И как правильно загрузить в TResourceStream?

Последний раз редактировалось XerSon; 09.12.2010 в 08:48.
XerSon вне форума Ответить с цитированием
Старый 09.12.2010, 11:15   #5
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Разобрался вроде:
Код:
var
  Bmp: TBitmap;
  JPG: TJPEGImage;
  _TmplStr: string;
  ResStream: TResourceStream;
begin
  // Присваиваем переменной значение из комбобокса
  _TmplStr := PChar(Tmpl_ComboBox.Text);
  // создание потока ресурсов
  ResStream := TResourceStream.Create(HInstance, _TmplStr, 'JPEG');
  // создаём объект Jpeg
  JPG := TJPEGImage.Create;
  // использование ресурсов
  JPG.LoadFromStream(ResStream);
  // создаём объект Bitmap
  Bmp := TBitmap.Create;
  try
    // Ассоциируем Bitmap c Jpeg
    Bmp.Assign(Jpg);
    Image.Picture.Assign(Bmp);
  finally
    // освобождение потока ресурсов
    ResStream.Free;
    // Уничтожаем объекты
    Bmp.Free;
    Jpg.Free;
  end;
end;
XerSon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение Tbitmap Horus92 Помощь студентам 2 27.07.2010 10:05
Работа с TBitMap. Herly Помощь студентам 31 07.01.2010 16:07
LoadBitmap iwaniwan Общие вопросы C/C++ 6 11.05.2009 22:03
движение TBitMap Juffin Мультимедиа в Delphi 1 14.04.2009 21:34
TBitmap odi_noki Мультимедиа в Delphi 17 25.10.2008 09:53