Форум: "Основная";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
ВнизБаг в Delphi 5 Найти похожие ветки
← →
Дмитрий К.К. (2002-12-23 08:16) [0]Грят, в пятерке имеется баг в модуле graphics.pas. В процедуре TBitmap.ReadDIB вместо строки
RLEStream.Seek(ImageSize, soFromEnd);
должна быть строка
RLEStream.Seek(-ImageSize, soFromEnd);
(между прочим, в шестой версии этот баг пофиксен)
И етот баг дает ошибку чтения потока.
Вопрос такой: какова последовательность действий при исправлении ошибок в сырцах Delphi?
← →
Дмитрий К.К. (2002-12-23 14:39) [1]Подымем веточку...
← →
msts (2002-12-23 15:13) [2]Если компилишь прогу в режиме "с пакетами"(бпл) - ни как (или правь бинарник :) ), в обычном же - скопируй в каталог с проектом нужный файл и исправь его, к результирующему екзе прилинкуется нужный.
← →
Дмитрий К.К. (2002-12-24 06:28) [3]Спасибо... еще будут мнения?
Юрий Зотов, обратите, пожалуйста, внимание на сию ветку.
← →
Юрий Зотов (2002-12-24 07:40) [4]Во как, прям персонально...
Я бы все же не стал перекомпилировать VCL. Опасное это дело, IMHO. Уже хотя бы потому, что в сырцах есть не все - они даются нам все же для справки, а не перекомпиляции. Скажем, встречал я в них вот такие вещи.
Объявляется запись, состоящая из двух целых полей. А в одной из процедур идет работа с этой записью - но так, что происходит явный выход за ее пределы. Вывод - на самом деле полей в этой записи больше, но в сырцах показаны только первые два.
Что получится в результате перекомпиляции по таким сырцам? Вряд ли что-то хорошее.
Хотя встречал то, о чем говорил msts - нужный файл копируется (даже не обязательно в каталог самого проекта), копия правится и ее каталог прописывается в путях поиска проекта РАНЬШЕ "родных" каталогов Delphi. Вроде бы, работало - хотя не факт, что эта метода сработает для ЛЮБЫХ файлов (почему - см. выше).
Если есть уверенность, что баг действительно есть, а патча на него нет, то я постарался бы обойти его - не использовать те места где он может проявиться, а вместо них написать свой код, либо использовать API.
← →
Дмитрий К.К. (2002-12-24 08:22) [5]Спасибо, Юрий... имеется компонент... и имеется желание его установить именно в пятую версию. Устанавливаться-то он устанавливается, даже появляется на палитре, но когда бросаю его на форму, выдается сообщение Stream read error :(
Автор говорит, что это из-за ошибки разработчиков в модуле graphics.pas.
Получается, никак?
← →
Юрий Зотов (2002-12-24 08:37) [6]Странно. У меня D5. Только что заглянул в исходники TBitmap.ReadDIB и там в строке 5724 вижу:
RLEStream.Seek(-ImageSize, soFromEnd);
Во всем файле Graphics.pas подстрока RLEStream.Seek более нигде не встречается, это единственное место. Так что непонятно, о какой ошибке идет речь. Может быть, у Вас не пропатчена Delphi?
← →
Дмитрий К.К. (2002-12-24 08:48) [7]Строка 5724:
RLEStream.Seek(ImageSize, soFromEnd);
Версия 5.0 (Build 5.62)
А у Вас? ;)
← →
Юрий Зотов (2002-12-24 08:53) [8]Version 5.0 (Build 6.18) Update Pack 1.
← →
Дмитрий К.К. (2002-12-24 08:55) [9]А в информационном окне IDE пишется "Update Pack 1"?
← →
Юрий Зотов (2002-12-24 08:58) [10]Конечно, оттуда и списал, один-в-один.
← →
Дмитрий К.К. (2002-12-24 09:01) [11]Все ясно, огромное спасибо, бум обновлятьси!
← →
MentatXX (2002-12-24 11:55) [12]Хмм ... я перекомпилял VCL ... все нормально ....
ЗЫ. там же есть MakeFile ... так что все ОК.
только компайлеры к нему подогнать надо ...
помнится Асм + Дельфовый компайлеры.
← →
Дмитрий К.К. (2002-12-25 07:04) [13]Юрий!!!
У меня сейчас, как и у Вас
> Юрий Зотов © (24.12.02 08:53)
Компонент не глючит, graphics.pas у полном у порядке, проекты компилятся.
Спасибо, шо с Вашей помощью удалось докопаться до истины!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c