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

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

Баг в Delphi 5 [D5, Win95/98, WinME, NT4, Win2k, WinXP]


Дмитрий К.К. ©   (2002-12-23 08:16:00) 

Грят, в пятерке имеется баг в модуле graphics.pas. В процедуре TBitmap.ReadDIB вместо строки
RLEStream.Seek(ImageSize, soFromEnd);
должна быть строка
RLEStream.Seek(-ImageSize, soFromEnd);

(между прочим, в шестой версии этот баг пофиксен)

И етот баг дает ошибку чтения потока.

Вопрос такой: какова последовательность действий при исправлении ошибок в сырцах Delphi?


Дмитрий К.К.   (2002-12-25 07:04:00) [1]

Юрий!!!
У меня сейчас, как и у Вас

> Юрий Зотов © (24.12.02 08:53)


Компонент не глючит, graphics.pas у полном у порядке, проекты компилятся.

Спасибо, шо с Вашей помощью удалось докопаться до истины!


MentatXX   (2002-12-24 11:55:00) [2]

Хмм ... я перекомпилял VCL ... все нормально ....
ЗЫ. там же есть MakeFile ... так что все ОК.
только компайлеры к нему подогнать надо ...
помнится Асм + Дельфовый компайлеры.


Дмитрий К.К.   (2002-12-24 09:01:00) [3]

Все ясно, огромное спасибо, бум обновлятьси!


Юрий Зотов   (2002-12-24 08:58:00) [4]

Конечно, оттуда и списал, один-в-один.


Дмитрий К.К.   (2002-12-24 08:55:00) [5]

А в информационном окне IDE пишется "Update Pack 1"?


Юрий Зотов   (2002-12-24 08:53:00) [6]

Version 5.0 (Build 6.18) Update Pack 1.


Дмитрий К.К.   (2002-12-24 08:48:00) [7]

Строка 5724:

RLEStream.Seek(ImageSize, soFromEnd);

Версия 5.0 (Build 5.62)


А у Вас? ;)


Юрий Зотов   (2002-12-24 08:37:00) [8]

Странно. У меня D5. Только что заглянул в исходники TBitmap.ReadDIB и там в строке 5724 вижу:

RLEStream.Seek(-ImageSize, soFromEnd);

Во всем файле Graphics.pas подстрока RLEStream.Seek более нигде не встречается, это единственное место. Так что непонятно, о какой ошибке идет речь. Может быть, у Вас не пропатчена Delphi?


Дмитрий К.К.   (2002-12-24 08:22:00) [9]

Спасибо, Юрий... имеется компонент... и имеется желание его установить именно в пятую версию. Устанавливаться-то он устанавливается, даже появляется на палитре, но когда бросаю его на форму, выдается сообщение Stream read error :(

Автор говорит, что это из-за ошибки разработчиков в модуле graphics.pas.

Получается, никак?


Юрий Зотов   (2002-12-24 07:40:00) [10]

Во как, прям персонально...

Я бы все же не стал перекомпилировать VCL. Опасное это дело, IMHO. Уже хотя бы потому, что в сырцах есть не все - они даются нам все же для справки, а не перекомпиляции. Скажем, встречал я в них вот такие вещи.

Объявляется запись, состоящая из двух целых полей. А в одной из процедур идет работа с этой записью - но так, что происходит явный выход за ее пределы. Вывод - на самом деле полей в этой записи больше, но в сырцах показаны только первые два.

Что получится в результате перекомпиляции по таким сырцам? Вряд ли что-то хорошее.

Хотя встречал то, о чем говорил msts - нужный файл копируется (даже не обязательно в каталог самого проекта), копия правится и ее каталог прописывается в путях поиска проекта РАНЬШЕ "родных" каталогов Delphi. Вроде бы, работало - хотя не факт, что эта метода сработает для ЛЮБЫХ файлов (почему - см. выше).

Если есть уверенность, что баг действительно есть, а патча на него нет, то я постарался бы обойти его - не использовать те места где он может проявиться, а вместо них написать свой код, либо использовать API.


Дмитрий К.К.   (2002-12-24 06:28:00) [11]

Спасибо... еще будут мнения?

Юрий Зотов, обратите, пожалуйста, внимание на сию ветку.


msts   (2002-12-23 15:13:00) [12]

Если компилишь прогу в режиме "с пакетами"(бпл) - ни как (или правь бинарник :) ), в обычном же - скопируй в каталог с проектом нужный файл и исправь его, к результирующему екзе прилинкуется нужный.


Дмитрий К.К.   (2002-12-23 14:39:00) [13]

Подымем веточку...


Наверх

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