Текущий архив: 2005.10.23;
Скачать: CL | DM;
ВнизОшибка TBitmap.LoadFromResource в Win98 Версия KOL >=2.04 Найти похожие ветки
← →
Сергей Близнюков (2005-02-22 10:16) [0]Обнаружена ошибка в TBitmap.LoadFromResource в Win98 Версия KOL >=2.04
При загрузке Bitmap"а более 16 цветов (конкретно 256 цветов) из ресурса под Win98 программа вываливается в даун полностью!
Runtime Error 216 at....
Исследования в отладчике показали, что ошибка возникает
в procedure TBitmap.SetHandle(const Value: HBitmap);
в строке
Move( Dib.dsBitfields, fDIBHeader.bmiColors, 256 * 4 );
Очень похоже, что PrepareBitmapHeader зависит от ОС.
Workarround: bmp перегнали в 16 цветов, всё работает как часы.
← →
Сергей Близнюков (2005-02-22 10:52) [1]
> Workarround: bmp перегнали в 16 цветов, всё работает как
> часы.
А вот - фигушки!!!! Не помогает!!!
Будем пытаться выкрутиться, используя код KOL версии до 2.03
Кстати, нашёл момент возникновения глюка ;-)) :
>Новости 21 декабря 2004
>Новости KOL и MCK (v2.04):
>KOL: присваивание свойства TBitmapl.Handle исправлено
>для случая, когда присваивается дескриптор очень
>большого растрового изображения (ранее, это могло
>приводить к потере DIB-данных в результате промежуточных
>преобразований, и присваиванию большого черного прямоугольника).
>
← →
ECM © (2005-02-22 13:13) [2]Исследования в отладчике показали, что ошибка возникает
в procedure TBitmap.SetHandle(const Value: HBitmap);
в строке
Move( Dib.dsBitfields, fDIBHeader.bmiColors, 256 * 4 );
М-дя. Похоже опечатка вышла...
Попробуй заменить эту строку на следующую:
Move( Dib.dsBitfields, fDIBHeader.bmiColors, 3 * SizeOf(DWORD) );
(сам не проверял - надо чтобы автор разобрался :)
Страницы: 1 вся ветка
Текущий архив: 2005.10.23;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.058 c