Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-15089
Александр
2002-12-22 12:23
2003.01.06
Работа с принтером


3-14940
HazMat
2002-12-13 10:23
2003.01.06
SQLWNTM.DLL


6-15200
ДУБ
2002-10-28 15:42
2003.01.06
Отправка e-mail


4-15363
lds
2002-11-19 14:15
2003.01.06
Как вызвать диалог выбора файлов?


14-15220
Calm
2002-12-15 16:27
2003.01.06
Трассировка. Как выполнить прогу до конца метода?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский