Error reading imagelist bitmap failed to read imagelist data from stream

Error reading imagelist bitmap failed to read imagelist data from stream Уважаемые мастера, не дайте помереть! Использую в программе ImageList уже три года с обычными .bmp картинками на 16 цветов. Пока работал на D5 — все было как в сказке, пока не пересел на D7. И вот тут началось. При установке программы на Win95 […]

Содержание

  1. Error reading imagelist bitmap failed to read imagelist data from stream
  2. Error reading imagelist bitmap failed to read imagelist data from stream
  3. Error reading imagelist bitmap failed to read imagelist data from stream
  4. Error reading imagelist bitmap failed to read imagelist data from stream
  5. Ошибка чтения TImageList в Win7 (проблема с ComCtl32?) — как / почему это может произойти?

Error reading imagelist bitmap failed to read imagelist data from stream

Уважаемые мастера, не дайте помереть! Использую в программе ImageList уже три года с обычными .bmp картинками на 16 цветов. Пока работал на D5 — все было как в сказке, пока не пересел на D7. И вот тут началось.
При установке программы на Win95 выдает «Недопустимую ошибку» (Exception EReadError in module Proga.exe at 00024B4F. Error reading ImageList.Bitmap: Failed to read ImageList data from stream.) Причем, на некоторых машинах с Win95 все это работает, а на некоторых — нет (программа работает более чем на пол-сотни самых разнообразных компьютерах с различными ОС). Если убрать из программы ImageList, то все работает замечательно.
Пробовал сравнивать версии винды, комплект установленных компонент, BIOS — не помогает!
Люди, подскажите: кто глючит: Я, Win95 или D7 ?


Германн ( 2003-07-22 01:56 ) [1]

Есть мнение, что может влиять версия comctl32.dll. Именно в ней осуществляется работа с ImageList. На W95 следует поставить версию из W98. Может быть поможет. По крайней мере проблемы с картинками в ToolBar решались таким образом. Хотя причем тут переход с D5 на D7 я не понимаю.


Крот ( 2003-07-22 09:43 ) [2]

Я думаю Герман прав, это comctl32.dll сошла с ума. Чтобы твоя программа работала на любых виндах, предлагаю сделать так:

Все картинки, которые раньше были в ImageList поместить в ресурсы и, когда программа стартует, руками грузить их в ImageList, у него даже есть подходящая ф-ция TImageList.ResourceLoad. У меня были похожме проблемы, я вот так их решил.


Romkin ( 2003-07-22 11:46 ) [3]

IE надо установить. Версии 5-6 эдак.
И все будет :-))


Anatoly Podgoretsky ( 2003-07-22 11:56 ) [4]

Точно, а не пытаться менять хакерскими методами библиотеки.

Про IE — спасибо. Обязательно попробую.
Маленькое уточнение к вопросу: Ошибка выползает даже в том случае, если ImageList пуст!


Толик ( 2003-07-23 11:22 ) [6]

Такоие проблемы (причём не только с TImageList, а с любыми компанентами вкладки Win32) наблюдаются на Win95

Источник

Error reading imagelist bitmap failed to read imagelist data from stream

Всем доброго времени суток!

Моя Дельфи глючит — не могу использовать ImageList! Если кинуть его на форму и поставить какой-нибудь битмап ему, то при запуске программы вылетает эксепшин «Error reading ImageList1.Bitmap: Failed to read ImageList data from stream». В чём дело? Стоит Д6 UpdatePack 2.

ЗЫ: И под ХР она мне пишет что у меня Win 2000 SP1 🙂


Yuri Btr ( 2004-01-20 21:02 ) [1]

А, вот . 🙂
Наконец то и у кого то появилась такая проблема. Я довольно долго пытался решить такую проблему сам, ведь мастера оказались бессильны. Глюк сей также появляется при переносе откомпилированной программы с ImageList на другую машину (независимо от операционки) — и тоже не может прочитать «data from stream» Но иногда на машине где компилировалась — программа запускается !
(WinXP, Delphi 6 любой версии)


шел мимо ( 2004-01-20 21:59 ) [2]

Думаю, что дело в криво поставленной операционке(или в криво взломанной пиратами :-))
(comctl32.dll)


Yuri Btr ( 2004-01-20 22:05 ) [3]

to шел мимо
Интересно что значит по вашему
>криво взломанной пиратами
Пираты сидят и переписывают под себя comctl32.dll
специально для того чтобы у бедных несчастных юзеров не работал ImageList ?
(тоже касается и криво поставленной операционки)


SPeller ( 2004-01-21 04:50 ) [4]

Ну то что я не один тоже радует 🙂


> Думаю, что дело в криво поставленной операционке(или в криво
> взломанной пиратами :-))
> (comctl32.dll)

Я так понимаю, что в следующий раз вы посоветуете переустановить винду когда прога начнёт ZeroDivide выдавать. Это всё винда! Это она, злющаяя, жить вам мешает и все беды приносит, отродие адское!!


> шел мимо

Под МЕ такая же хрень, так что дело определённо в Дельфи.

Кстати, может быть это результат обновления RTL ?


Dmitriy O. ( 2004-01-21 07:35 ) [6]

Надо использовать Имажелист из библиотеки компанентов DelphiX
гораздо удобнее много больше функций и без подобных глюков.


Cobalt ( 2004-01-21 09:58 ) [7]

Ну чтож, раз уж есть устойчивость проявления — пишите баг репорт в Борланд, тов. Орлику.


Style ( 2004-01-21 10:30 ) [8]

comctl32.dll —
Попробуйте ради интереса переставте IE?? или обновите его?
Обычно там эта библиотека.


KSergey ( 2004-01-21 10:59 ) [9]

> [7] Cobalt © (21.01.04 09:58)
> Ну чтож, раз уж есть устойчивость проявления — пишите баг
> репорт в Борланд, тов. Орлику.

Только не забудьте сообщить ему ваш геристрационный номер 😉


> Style © (21.01.04 10:30) [8]

Я ж объясняю — в МЕ и в ХР одиноково проявляется, поэтому comctl32 тут ни при чём.

Раньше у меня такого небыло. Недавно переустанавливал Дельфи, и, возможно, в процессе установки обновлений что-то не так случилось. Кстати, вопрос: Нужно ли устанавливать все обновления по очереди (1, потом 2) или достаточно сразу поставить последнее?


> Ну чтож, раз уж есть устойчивость проявления — пишите баг
> репорт в Борланд, тов. Орлику.

Нужно ещё выявить закономерность проявления — т.е. при каких условиях это случается.

Источник

Error reading imagelist bitmap failed to read imagelist data from stream

Что за ерунда происходит:
под 2003/ХР программа нормально работает, а под 2000/98 при запуске ругается:

Error reading ImageList1->Bitmap: Failed to read ImageList data from stream.

От: ironwit
Дата: 06.02.04 08:28
Оценка:

Здравствуйте, Shershen, Вы писали:

S>Что за ерунда происходит:
S>под 2003/ХР программа нормально работает, а под 2000/98 при запуске ругается:

S>Error reading ImageList1->Bitmap: Failed to read ImageList data from stream.

S>

S>C++Builder6.

S>??

программа твоя? Если да, то в каком месте падает? Если нет то filemon — что она делает в данный момент, хотя.

От: Sinclair http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 06.02.04 09:28
Оценка:
От: Arioch
Дата: 06.02.04 10:07
Оценка:

The stars so gaily glistened. (Fri, 06 Feb 2004 08:28:31 GMT @394)
. while the fading voice of ironwit whispered through the darkness:

i> программа твоя? Если да, то в каком месте падает?

тогда Use Debug DCUs и под IDE прогнать в какомместе конкретно спотыкается.
Если IDE нету — то JCL Exception dialog и MAP-файлы.

i> Если нет то filemon — что она делает в данный момент, хотя.
DFM-ресурс читает, толку от filemon

Delphi 5 падает при чтении TrouColot BMP в TBitBtn.Glyph
Причем сохранять запросто, а читать никак.

Я кк чему? ты скажи, что там за картинка лежит? М.б. ее старые винды не
переваривают просто?
Или там BMP cо сжатием внутреннним, RLE или какой JPG ,

Источник

Error reading imagelist bitmap failed to read imagelist data from stream

Что за ерунда происходит:
под 2003/ХР программа нормально работает, а под 2000/98 при запуске ругается:

Error reading ImageList1->Bitmap: Failed to read ImageList data from stream.

От: ironwit
Дата: 06.02.04 08:28
Оценка:

Здравствуйте, Shershen, Вы писали:

S>Что за ерунда происходит:
S>под 2003/ХР программа нормально работает, а под 2000/98 при запуске ругается:

S>Error reading ImageList1->Bitmap: Failed to read ImageList data from stream.

S>

S>C++Builder6.

S>??

программа твоя? Если да, то в каком месте падает? Если нет то filemon — что она делает в данный момент, хотя.

От: Sinclair http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 06.02.04 09:28
Оценка:
От: Arioch
Дата: 06.02.04 10:07
Оценка:

The stars so gaily glistened. (Fri, 06 Feb 2004 08:28:31 GMT @394)
. while the fading voice of ironwit whispered through the darkness:

i> программа твоя? Если да, то в каком месте падает?

тогда Use Debug DCUs и под IDE прогнать в какомместе конкретно спотыкается.
Если IDE нету — то JCL Exception dialog и MAP-файлы.

i> Если нет то filemon — что она делает в данный момент, хотя.
DFM-ресурс читает, толку от filemon

Delphi 5 падает при чтении TrouColot BMP в TBitBtn.Glyph
Причем сохранять запросто, а читать никак.

Я кк чему? ты скажи, что там за картинка лежит? М.б. ее старые винды не
переваривают просто?
Или там BMP cо сжатием внутреннним, RLE или какой JPG ,

Источник

Ошибка чтения TImageList в Win7 (проблема с ComCtl32?) — как / почему это может произойти?

Мне нужны идеи, как отследить / решить эту проблему:

У меня есть потенциальный клиент, который заявляет, что в 32-битной Windows 7 мое программное обеспечение выдает следующую ошибку:

imagelist Failed to read ImageList data from stream

Лицо предоставило дополнительную информацию:

  • Программа действительно работает с включенной темой Areo
  • Программа выдает ошибку на классической теме
  • IE 11 установлен
  • Человек сообщает о наличии как 5.82.7601.18837 comctl32.dll в папке system32, так и 6.10.7601.23039 comctl32.dll в папке Winsxs

(Небольшое примечание для тех, кто не в курсе — поскольку WinXP обе версии поставляются по умолчанию)

Исполняемый файл построен с использованием XE4 в тематической Windows 10 и работает как минимум (собственное тестирование)

  • win10 / 32 бит
  • win10 / 64бит
  • WinXP / 32-битная / классическая тема
  • HyperV-Virtual-Win7-SP1 / 32-битная / классическая тема / 16-битный цвет

Мой список TImagelist установлен на «cdDeviceDependent» (что соответствует ILC_COLORDDB)

Это мой манифест, извлеченный из моего исполняемого файла с помощью проводника ресурсов:

СДЕЛАТЬ

Я заметил в документации, что для ImageList_WriteEx указано: «Вы не должны создавать список изображений, который записан с флагом ILP_DOWNLEVEL с ILC_COLOR32» .

Я не уверен, что происходит при компиляции в 32-битной цветовой системе с использованием «ILC_COLORDDB» в качестве значения?

Я думал / было то, что ILP_DOWNLEVEL можно было бы игнорировать . И, следовательно, более вероятно, что он потерпит неудачу при чтении 5.x ComCtl32? Но мне не удалось найти в Интернете описанных подобных случаев, но .

Также похоже, что мой исполняемый файл работает с виртуальной конфигурацией Win7-SP1-32bit-16color-classic-themes .

СДЕЛАТЬ

Отправьте средство отладки для получения / подтверждения версии действительный, загруженной в comctl32.dll

ПЫТАЛСЯ

Я попытался указать пользователю на старую версию с манифестом без раздела ** совместимости. Это не имело никакого значения.

Можете ли вы проверить, действительно ли V6 из ComCtl32.dll доступен в этой системе Win 7?

Кроме того, IIRC также переключает Win 7 на классическую тему, может иметь такой же эффект.

— (1) — Мне нужно будет найти инструкции для пользователя о том, как он может проверить (или мне нужно написать / найти утилиту, которая делает это), поскольку у меня нет доступа к компьютеру — (2) — Я только что спросил об этом пользователя. Однако меня озадачивает, почему моя программа Delphi не запускается в Windows с использованием классической темы . Неправильно ли я настроил файл манифеста? (Я считаю, что ComCtl32 влияет на сохранение / загрузку данных потока, но даже в этом случае)

Что терпит неудачу, так это это. К сожалению, это ничего не говорит о том, почему это не удается.

Просто небольшое примечание — клиент ответил, что он использует «Классическую тему» ​​(я прошу его попробовать использовать, например, Aero, чтобы подтвердить, что это причина) . Но это будет означать, что система пользователей при использовании классической темы использует очень старая версия ComCtl32, не так ли? Из моего чтения проблема чтения списка изображений возникает только в том случае, если Delphi использует ComCtrl32 6.x при сохранении данных DFM / imagelist, а затем программа загружает данные DFM / imagelist с помощью ComcTL32 —

Начни откуда-нибудь. Отправьте исполняемый файл с тем же манифестом и списком изображений, который извлекает версию ( @GetDllVersion := GetProcAddress(LoadLibrary(comctl32), ‘DllGetVersion’ . ).

Я сделаю это. Для «раунда 1» я попросил клиента проверить более раннюю версию, где в файле манифеста нет раздела совместимости —

Поцарапайте это — не явная проблема. Старая версия тоже не работала.

На моем компьютере с Windows 7 установлена ​​только версия ComCtl32 5.82. Конечно, на моем компьютере установлены не все обновления Windows, так как у меня отключено автоматическое обновление Windows.

@SilverWarior Вы уверены, что у вас его нет в WinSxS? V6 уже был частью ванильных дистрибутивов WindowsXP . (но вы найдете его в папке WinSxS) Насколько я понимаю, приложения Delphi должны по-прежнему работать нормально, поскольку, если приложение запрашивает V6 в манифесте, а его нет, будет использоваться V5 вместо. Но совсем не повезло с потоковой передачей изображений . Но тогда должны быть другие разработчики Delphi, которые столкнулись с этим.

Что сказал @SertacAkyuz. Вам необходимо проверить версию comctl32 DLL. Вполне возможно, что IDE Delphi сохранила список в новом формате потока, который клиент не может прочитать в более старой версии ComCtl32. Примечание: я никогда не доверяю DFM, передающему список изображений, поэтому я сохраняю само растровое изображение (а не формат потока) в качестве ресурса в отдельной DLL или в моих EXE и загружаю его в список изображений во время выполнения через ImageList_LoadImage .

@kobik Я тоже подумываю о создании индивидуального решения — дам вам знать, что я в конечном итоге делаю.

Но в любом случае проблема не имеет особого смысла. Если посмотреть на TCustomImageList.WriteData, Delphi XE4 всегда записывает в старом формате — либо с помощью параметра «нижнего уровня» V6 — см. ImageListWriteExProc (Handle, ILP_DOWNLEVEL, SA) docs.microsoft.com/en-us/windows/desktop/api/commctrl/… . или, если V6 недоступен, то ImageList_Write (Handle, SA) .. . поэтому данные списка изображений должны сохраняться правильно, несмотря ни на что (и я не вижу никаких специальных комментариев относительно чего-либо вроде Win10 ComCtl32 V6, игнорирующего параметр «нижнего уровня»)

Хотя . TImageList использует ColorDepth «cdDeviceDependent» И в приведенной выше ссылке на документацию действительно сказано: «Вы не должны создавать список изображений, который записывается с флагом ILP_DOWNLEVEL с помощью ILC_COLOR32». . Возможно, стоит изучить дальнейшие исследования, если там что-то происходит .

Поиск в Google по запросу «ImageList_WriteEx ILP_DOWNLEVEL ILC_COLORDDB» не дает результатов. Но логически, если мой компьютер настроен на 32-битный . Тогда ILC_COLORDDB не сопоставляется с ILC_COLOR32 внутри Windows, когда я компилирую свое приложение? И если это так (поскольку 32-битные цвета — это только V6), он проигнорирует параметр ILP_DOWNLEVEL? Я не уверен — я могу трепаться, но, глядя на код Delphi TImageList, его потоковый формат в противном случае всегда должен быть совместим с ComCtl32 V5 . Мне кажется, виноватым должно быть что-то, что не работает должным образом. Но код Delphi выглядит очень чистым.

Еще одна информация. У меня есть полностью пропатченный компьютер WinXP с классическими темами . Там работает.

Почему вы / мы еще даже не знаем, какая именно версия comctl32 загружает ваш исполняемый файл на сайт клиента?

@SertacAkyuz, потому что, когда вы продаете условно-бесплатную программу, вы не очень хорошо знаете пользователей? И часто бывает ограничено количество тестов, которые вы можете провести для них, когда они еще не приобрели (если бы я написал клиенту, что это было ошибкой. Он был человеком, который сказал, что, вероятно, купит, если проблема будет решена)

Источник

0 / 0 / 0

Регистрация: 12.06.2015

Сообщений: 11

1

19.11.2019, 13:32. Показов 2120. Ответов 4


Здравствуйте. Сразу скажу, я не программист, но нужен опытный взгляд программистов delphi)

В нашей организации используется программное обеспечение, которое было написано на делфи в 2002-2006 гг.
К этой программе подключается база данных SQL. Ну и, короче, вся работа сводится к тому, что она частично работает со своей файловой системой, частично с SQL.

Программа сама по себе изначально не может претендовать на звание самой стабильной. Но в последнее время она просто у некоторых пользователей начала крашиться каждые 15 минут с ошибкой: Error reading ****.Bitmap: Failed to read ImageList data from stream.

У программы закрытый исходный код, мы в нее влезть не можем. Но нами она активно дорабатывается на уровне SQL. В основном введением каких-либо триггеров и т.д.

Упавшая стабильность может быть связана с тем, что мы используем триггеры, да и вообще на уровне SQL много чего допиливаем? Какие еще могут быть причины? Где-то читал про то, что надо обновить файл ComCtl32.dll, не знаю — стоит ли. Могло ли обновление Windows сервер повлиять на стабильность работы?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



GoodWeather

882 / 584 / 179

Регистрация: 28.02.2017

Сообщений: 2,359

Записей в блоге: 1

19.11.2019, 15:34

2

Компонент ImageList представляет собой набор изображений одинаковых размеров

У вас где-то какие-то изображения есть? Это могут быть как иконки 32×32, так и какие-нибудь аватарки 256×256.

Добавлено через 17 минут
Если смотреть по VCL версии Rio…

Ошибка с текстом 'Failed to read ImageList data from stream' это «строковой ресурс» по имени SImageReadFail.
И она используется лишь в одном месте: метод ReadD3Stream(Stream: TStream) класса TCustomImageList бросает исключение с этим текстом, если не смог загрузить данные из TStream.
Перед этим попытавшись выполнить загрузку дважды.

Добавлено через 1 минуту
Вторая попытка какая-то странная и прокомментированна как attempt to fix up the really old ComCtl stream.

Добавлено через 1 минуту
Если новая Делфи пытается исправить нюансы «old ComCtl», можно предположить что старые Делфи «2002-2006 гг» этого ещё не умели, хм…

Добавлено через 15 минут

Не по теме:

ого!

Delphi
1
2
3
4
5
6
7
8
9
10
...
... // check stream signature to
... // determine a Delphi 2 or Delphi 3 imagelist stream.
... // Delphi 2 streams can be read,
... // but only Delphi 3 streams will be written
...
if (...) then
    ReadD3Stream(Stream)
else
    ReadD2Stream(Stream);

В коде Rio проверка типа «Делфи 2» или «Делфи 3» ??
Или я чего-то недопонял? %))

Скорее всего исключение выскакивает из вызовов Assign() и AssignTo() у объектов TImageList.

Добавлено через 22 минуты
Оно пытается сохранить картинки в поток через ImageList_Write() или ImageList_WriteEx(), а потом уже загрузить из этого потока в новый объект.
Если бы не удалось сохранить — ошибка должна была бы быть с другим текстом.

Какая на тех компьютерах версия библиотек ComCtrl? На какой версии Делфи написана программа?



0



0 / 0 / 0

Регистрация: 12.06.2015

Сообщений: 11

19.11.2019, 17:05

 [ТС]

3

Версия ComCtl32.dll 5.82.7601. Да, я думаю не в нем дело. Потому что новее наверное и не бывает.
Сам код программы не изменялся, потому что мы к нему не имеем доступа. Это что-то повлияло скорее всего извне.
Либо обновления. Либо доработки на уровне SQL. Причем эта ошибка чаще всего лезет при открытии определенных окон. Раньше тоже была, но стала намного чаще.
Похоже в такой ситуации как у меня только методом тыка искать проблему — откатывать обновления, отключать триггеры на уровне SQL и проверять работу.

Добавлено через 6 минут
На счет того «На какой версии Делфи написана программа?» это мне неизвестно.



0



882 / 584 / 179

Регистрация: 28.02.2017

Сообщений: 2,359

Записей в блоге: 1

19.11.2019, 18:45

4

Просто сложно что-либо сказать, не зная что делает программа, как выглядит интерфейс, что хранится в БД…
Может в БД картинки, и они как-то оказались в каком-то неподходящем формате/размере? На очищенной (пустой) БД как будет работать?

Так-то код пытается загрузить содержимое IStream через ImageList_Read() — и что-то вот не получается.

TImageList в Делфи, это обёртка над системным WindowsAPI Image Lists.
По сути — это пачка картинок/иконок одинакового формата и размера (от 1 до 256). И в нагруженном графическом интерфейсе они могут быть повсюду. От мелких пиктограмм на кнопках (четыре состояния кнопки), до достаточно больших иконок (как список файлов в Проводнике).

Добавлено через 25 минут
На всех компьютерах? И на тех где проблемы?

Новая Делфи берёт числовое значение версии comctl32 через GetFileVersion() и сравнивает с ComCtlVersionIE6 (а конкретнее с числом $00060000).
И если полученное больше или равно — пытается пользоваться в comctl32 более новой функцией ImageList_WriteEx().

Но лучше сперва попытаться выяснить на какой версии Делфи писалось ПО. И могут ли они её скомпилировать на более новой.

Добавлено через 1 минуту
хм… https://forums.embarcadero.com… eID=896964



0



0 / 0 / 0

Регистрация: 12.06.2015

Сообщений: 11

19.11.2019, 18:51

 [ТС]

5

Это скорее не от компьютера зависит, а от специфики работы пользователя.
Это медицинская программа в которой работают и врачи, и администраторы, и бухгалтерия… Такой прям комбайн для всех.
Так вот у администраторов при работе с определенными диалоговыми окнами такая ерунда лезет.

Добавлено через 5 минут
хм… https://forums.embarcadero.com… eID=896964

Можно попробовать. Почему нет.



0



Delphi 6 on Vista service pack 2 seems that can’t load imagelist from dfm and save back again in the IDE.
The project with the dfm corrupted can’t be rebuilt.

the error when I run the project is:

EReadError Error reading imagelist1.Bitmap: Failed to read ImageList
data from stream

any suggestion?

thanks in advance

gabr's user avatar

gabr

26.4k8 gold badges75 silver badges141 bronze badges

asked Jul 2, 2009 at 14:52

Have you done anything funny to your Delphi installation, such as adding a delphi32.exe.manifest file to Delphi’s directory in an attempt to make the IDE have XP or Vista theming? Don’t do that. If you have that file there, delete it, and you should be back to normal.

The image-list format changed with version 6 of the Common Controls library, and Delphi 6 is not capable of using it. The manifest tells the IDE to use version 6, so when it saves your DFM, it uses that format. Then, when loading, prior versions can’t read it anymore.

answered Jul 2, 2009 at 16:45

Rob Kennedy's user avatar

Rob KennedyRob Kennedy

161k21 gold badges276 silver badges463 bronze badges

The problem may be on ImageList_Write of the comctl32.dll

// delphi 6
procedure TCustomImageList.WriteData(Stream: TStream);
var
  SA: TStreamAdapter;
begin
  SA := TStreamAdapter.Create(Stream);
  try
    if not ImageList_Write(Handle, SA) then
      raise EWriteError.CreateRes(@SImageWriteFail);
  finally
    SA.Free;
  end;
end;

// delphi 2005
procedure TCustomImageList.WriteData(Stream: TStream);
var
  SA: TStreamAdapter;
  ComCtrlHandle: THandle;
const
  ILP_DOWNLEVEL = 1;
begin
  if CachedComCtrlVer = 0 then
  begin
    CachedComCtrlVer := GetFileVersion(comctl32);
    if CachedComCtrlVer >= ComCtlVersionIE6 then
    begin
      ComCtrlHandle := GetModuleHandle(comctl32);
      if ComCtrlHandle <> 0 then
        ImageListWriteExProc := GetProcAddress(ComCtrlHandle, 'ImageList_WriteEx'); { Do not localize }
    end;
  end;

  SA := TStreamAdapter.Create(Stream);
  try
    { See if we should use the new API for writing image lists in the old
      format. }
    if Assigned(ImageListWriteExProc) then
    begin
      if ImageListWriteExProc(Handle, ILP_DOWNLEVEL, SA) <> S_OK then
        raise EWriteError.CreateRes(@SImageWriteFail)
    end
    else if not ImageList_Write(Handle, SA) then
        raise EWriteError.CreateRes(@SImageWriteFail);
  finally
    SA.Free;
  end;
end;

Rob Kennedy's user avatar

Rob Kennedy

161k21 gold badges276 silver badges463 bronze badges

answered Jul 2, 2009 at 16:29

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    [!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь

    >
    Глюки Builder-a?

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    27.08.04, 14:22

      Member

      **

      Рейтинг (т): 3

      Стоит Bulder6+ к нему SP4 + Update ilinc.exe с сайта Борланда, операционка XP+SP2 …
      1.создаю приложении, на форму кидаю ToolBar с ToolButton-ми
      2. кидаю ImageList, прикрепляю его к ToolBar.
      3. Подключаю к ресурсам .manifest
      Все компилится запускается в XP- ок
      Пытаюсь запустить из под W2K вываливается «Error reading ImageList->Bitmap:Failed to read ImageList data from stream.»

      Может кто сталкивался с такой проблеммой?


      Adil



      Сообщ.
      #2

      ,
      27.08.04, 14:30

        А без манифеста пробовал?


        MAX2002



        Сообщ.
        #3

        ,
        27.08.04, 14:33

          Member

          **

          Рейтинг (т): 3

          без него работает…
          но он нужен… без него низя… надо шоб приложение темы поддерживало, но и еще шоб могло под W2K работать


          Adil



          Сообщ.
          #4

          ,
          27.08.04, 14:41

            попробуй где-гибудь в начале программы вставить вызов InitCommonControls();
            Header: commctrl.h
            Import library: comctl32.lib


            MAX2002



            Сообщ.
            #5

            ,
            27.08.04, 14:47

              Member

              **

              Рейтинг (т): 3

              тоже самое…
              может манифест нужно убрать из ресурсов???


              Adil



              Сообщ.
              #6

              ,
              27.08.04, 14:57

                Цитата

                MAX2002, 27.08.04, 18:47
                может манифест нужно убрать из ресурсов???

                — так он эе тебе нужен?

                Посмотри топик Стили XP, там похожая проблема обсуждалась…


                ADA



                Сообщ.
                #7

                ,
                27.08.04, 15:08

                  Member

                  **

                  Рейтинг (т): 2

                  Вот еще вопрос в тему. Делаю приложение, на форму ставлю TListView и подключаю к проге манифест. Все прекрасно пашет, пока я не делаю TListView виртуальным. Как только, так сразу ТАКИЕ глюки пруть… Никакими методами к сожалению избавиться не удалось…

                  ЗЫ: Методы из указанного топика не пробовал. Пока.


                  KAV_Invariant



                  Сообщ.
                  #8

                  ,
                  27.08.04, 15:16

                    У меня аналогичная проблема, как у MAX2002!!! :(


                    ADA



                    Сообщ.
                    #9

                    ,
                    27.08.04, 15:21

                      Member

                      **

                      Рейтинг (т): 2

                      Попробуйте виртуальный TListView. У вас будет работать?


                      Adil



                      Сообщ.
                      #10

                      ,
                      27.08.04, 15:32

                        ADA, А что такое «виртуальный TListView»?


                        ADA



                        Сообщ.
                        #11

                        ,
                        27.08.04, 15:41

                          Member

                          **

                          Рейтинг (т): 2

                          Нда… А я с вами о темплейтах рассуждаю…
                          Это TListView, у которого OwnerData = true и запихивание данных в отрисовываемые ячейки происходит в процессе выполнения программы.

                          Добавлено в 27.08.04, 15:43:
                          Конкретнее в событии OnData.


                          Adil



                          Сообщ.
                          #12

                          ,
                          28.08.04, 07:57

                            ADA, за ответ спасибо, конечно, но мое незнание, что такое «виртульный ListView» вовсе не освобождает Вас от ответственности за хамство. Прошу Вас впредь воздерживаться от обсуждения моей личности и критики моей опытности (как это было и здесь тоже)… несмешной Вы наш.


                            KAV_Invariant



                            Сообщ.
                            #13

                            ,
                            28.08.04, 13:10

                              Так никто не знает ответа на этот вопрос? :( Из-за этой ошибки я не могу распространять свою программу! :( :wall:


                              MAX2002



                              Сообщ.
                              #14

                              ,
                              28.08.04, 13:54

                                Member

                                **

                                Рейтинг (т): 3

                                Всем спасибо, обошел я эту проблемму только долго :D
                                кому интересно
                                1. Создаем динамически ListView
                                2. Грузим в него картинки из ресурсов
                                3. Прикрепляем к ToolBar-у

                                И Вуаля с монифестом в ресурсах и под XP и под W2K все работает…. и кнопочки xp-ые и проблем в w2k нету


                                ADA



                                Сообщ.
                                #15

                                ,
                                28.08.04, 15:13

                                  Member

                                  **

                                  Рейтинг (т): 2

                                  Нет, нужно сделать виртуальный TListView. По моим экспериментам глюк происходит из-за того, что приходит на обработку сообщение, в котором указан фантастический номер ячейки — у меня был где то пара миллинов, а ячеек ну всего то тысяч десять. Из-за этого соответственно запрос в никуда и access violation. Исправить не удалось никакими ухищрениями. Ошибка наверное в VCL, потому как MFC в аналогичном случае проконало.

                                  Adil, согласен, это несмешно, это печально. И хамства вы стало быть не встречали.

                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                                  0 пользователей:

                                  • Предыдущая тема
                                  • Borland C++ Builder/Turbo C++ Explorer
                                  • Следующая тема

                                  Рейтинг@Mail.ru

                                  [ Script execution time: 0,0425 ]   [ 16 queries used ]   [ Generated: 9.02.23, 15:06 GMT ]  

                                  Error reading LogImages->Bitmap: Failed to read ImageList data from stream

                                  • Reply to topic
                                  • Log in

                                  Advertisement

                                  Hagner
                                  Joined:
                                  2003-05-11
                                  Posts:
                                  1
                                  Location:
                                  Germany

                                  2003-05-11 08:55

                                  I can’t start winscp2.3. It terminates allways with this message : Error reading LogImages->Bitmap: Failed to read ImageList data from stream

                                  I tryed it with winscp2.3 and the newes version. My OS is win95C

                                  What is the reason for this fault and what can I do?

                                  Thanx a lot

                                  Reply with quote

                                  Advertisement

                                  martin◆

                                  Site Admin
                                  martin avatar
                                  Joined:
                                  2002-12-10
                                  Posts:
                                  38,466
                                  Location:
                                  Prague, Czechia

                                  2003-05-14

                                  Did it ever work on your PC?

                                  Sorry I don’t have Win95 available to test it. WinSCP works fine on Win98 and it used to work on Win95, but I have not tried for at least one year already.

                                  Reply with quote

                                  Guest

                                  2003-05-14 20:09

                                  Did it ever work on your PC?

                                  Sorry I don’t have Win95 available to test it. WinSCP works fine on Win98 and it used to work on Win95, but I have not tried for at least one year already.

                                  I get this same error message on my WinNT4sp3 machine, it works without fail on my win2k machine… Any hints please?

                                  Reply with quote

                                  Guest

                                  2003-05-14 20:09

                                  martin wrote:

                                  Did it ever work on your PC?

                                  Sorry I don’t have Win95 available to test it. WinSCP works fine on Win98 and it used to work on Win95, but I have not tried for at least one year already.

                                  I get this same error message on my WinNT4sp3 machine, it works without fail on my win2k machine… Any hints please?

                                  Reply with quote

                                  Advertisement

                                  • Reply to topic
                                  • Log in

                                  You can post new topics in this forum

                                  Ответить

                                  Расширенный поиск

                                  3 сообщения
                                  • Страница 1 из 1

                                  FantasyBoy

                                  Сообщения: 1
                                  Зарегистрирован: 14:04, 15.09.2015

                                  error ilAttachedFail->Bitmap:Failed to read ImageList data from stream

                                  • Цитата

                                  Сообщение

                                  FantasyBoy » 22:13, 15.09.2015

                                  не могу запустить клиента 5.87d выдает ошибку error ilAttachedFail->Bitmap:Failed to read ImageList data from stream,ось вин7,все работало.почему перестал-не пойму,переустановка не помогла

                                  Вернуться к началу

                                  Maxim Mirgorodsky

                                  Администратор
                                  Сообщения: 6844
                                  Зарегистрирован: 09:56, 27.06.2005
                                  Благодарил (а): 2 раза
                                  Поблагодарили: 9 раз

                                  Re: error ilAttachedFail->Bitmap:Failed to read ImageList data from stream

                                  • Цитата

                                  Сообщение

                                  Maxim Mirgorodsky » 07:36, 16.09.2015

                                  Большая просьба помочь нам с поиском источника проблемы.

                                  1) Скопируйте в отдельную папку все временные файлы, находящиеся в папке %APPDATA%CommFort

                                  2) После этого попробуйте удалить данную папку. Это обнулит все настройки. Если проблема исчезнет, то мы попросим предоставить нам часть заранее скопированных Вами файлов для анализа проблемы.

                                  Вернуться к началу

                                  Maxim Mirgorodsky

                                  Администратор
                                  Сообщения: 6844
                                  Зарегистрирован: 09:56, 27.06.2005
                                  Благодарил (а): 2 раза
                                  Поблагодарили: 9 раз

                                  Re: error ilAttachedFail->Bitmap:Failed to read ImageList data from stream

                                  • Цитата

                                  Сообщение

                                  Maxim Mirgorodsky » 08:32, 18.09.2015

                                  Спасибо за помощь, CommFort обновлен до версии 5.87e, в которой данная проблема исправлена.

                                  Вернуться к началу

                                  Ответить

                                  Показать:
                                  Поле сортировки:
                                  Порядок:


                                  3 сообщения
                                  • Страница 1 из 1

                                  Вернуться в «Ошибки»

                                  Понравилась статья? Поделить с друзьями:
                                • Error reading from source device
                                • Error program review
                                • Error program mingw32 make exe not found in path
                                • Error prog renault
                                • Error reading from rom ошибка atiwinflash что делать