Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.06;
Скачать: CL | DM;

Вниз

Баг в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-15050
Fury
2002-12-24 22:04
2003.01.06
Печать в Делфи


14-15237
Виктор Щербаков
2002-12-15 15:02
2003.01.06
Обеденный перерыв


1-15043
Delphin
2002-12-23 20:24
2003.01.06
?????? вместо кириллицы!


1-15012
tester1
2002-12-24 11:09
2003.01.06
люди, как выйти из цикла?


3-14958
4x4
2002-12-12 13:32
2003.01.06
Query в Query?