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

Вниз

баги VCL - продолжение   Найти похожие ветки 

 
Толик ©   (2003-07-28 16:53) [0]

Уважаемые мастера. Существует ли возможность исправления ошибок в коде VCL?
Такая ситуация: Есть некий класс VCL, который в своём коде содержит ошибки. В случае компиляции пакета с опцией build with runtime package всё работает как надо (оно и понятно - код пакета формируется внутри exe). А существует ли возможность перекомпиляции runtime пакета, например vcl60.bpl, содержащего этот класс, чтобы не включать этот пакет в тело своего exe-файла?

Существует ли вообще какоё-нибудь механизм исправления ошибок VCL? (ну кроме обращения в службу тех. поддержки)


 
ZeroDivide ©   (2003-07-28 17:03) [1]

Интересно что за класс.

А вообще попробуй создать свой пакет с классами, которые ты используешь, и в инсталяху его добавь, а не vcl60.bpl.

Вобще то я с такими глюками не встречался - единственное что точно знаю в build with runtime package пакеты должны в определенной последовательности быть записаны. Может ты там поотключал чего, а потом не смог вернуть все как было?


 
AlexRush ©   (2003-07-28 17:05) [2]

> В случае компиляции пакета с опцией build with runtime package всё работает как надо (оно и понятно - код пакета формируется внутри exe) - ты сам понял, что написал ?? Вот как раз наоборот :))
А ошибки в большинстве случаев не в VCL... Они чаще в DNA.... (по себе знаю :)


 
KSergey ©   (2003-07-28 17:11) [3]

AlexRush © (28.07.03 17:05)
А ошибки в большинстве случаев не в VCL... Они чаще в DNA.... (по себе знаю :)


Ошибки - да. Хотя, с другой стороны, есть же признанные ошибки, заничит они все же есть ;) (да их не может не быть по определению)
Но ведь вопрос можно переформулировать так: есть желание подправить реализацию класса в VCL (сталкивался сам с модулем Pronters - они там все позапрятали в приват - как с ними бороться после этого? и потомок не спасет...)


 
Толик ©   (2003-07-28 17:32) [4]

to ZeroDivide © (28.07.03 17:03)
THeaderControl - ф-я DoSectionEndDrag
вместо

for i := 0 to Sections.Count - 1 do
SectionOrder[i] := Sections[i].ID;

должно быть

for i := 0 to Sections.Count - 1 do
SectionOrder[i] := Sections[i].Index;
Sections.Update(FromSection);
Sections.Update(ToSection);


to AlexRush © (28.07.03 17:05)
Ну смысл-то понятен. :)
В данном случае проблемы как раз в VCL.


 
AlexRush ©   (2003-07-28 20:06) [5]

Перекомпилить VCL - дело, мягко говоря, непростое. Я как то пытался. Можно подправить исходники в ComCtrls.PAS, можно его скомпилять... НО, при компиляции проги с использованием "подправленного" класса компилятор выдает что-то типа "юнит ХХХ и юнит YYY содержат разные версии класса ZZZ". Компилишь другие юниты - опять.... и так до уср#4ки. Потом окажется, что ДАЛЕКО НЕ ВСЯ VCL в исходниках.... геморойно это все. лучше уж свой клас написать. Сtrl+C / Ctrl+V из ComCtrls.PAS всего, что касается THeaderControl в отдельный юнит, так правь его аки фантазии хватит.. И делай новый компонент. IMHO самый простой путь.


 
Толик ©   (2003-07-29 10:17) [6]

А есть ещё какие-нибудь варианты, кроме как создавать свой компонент?


 
pasha_golub ©   (2003-07-29 11:51) [7]

Я уж не знаю, но я именно делал как описал AlexRush. Копи/Пасте и в новом модуле переписываешь чего надо. Неплохо получается, опять же не сможешь себе геморроя заработать, неверно исправив исходник.


 
Calm ©   (2003-07-29 13:28) [8]


> Перекомпилить VCL - дело, мягко говоря, непростое.

Да, подчас бывает тяжеловато сделать Project\Build All

:-))


 
Толик ©   (2003-07-29 13:31) [9]

Calm © (29.07.03 13:28)
Ну если всё запихнуть в один exe-шник, то да, а вот если с runtime пакетами?



Страницы: 1 вся ветка

Текущий архив: 2003.08.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
14-33371
bug008
2003-07-21 23:29
2003.08.11
Печать таблицы


14-33328
iXuSs
2003-07-23 00:00
2003.08.11
Почему?


4-33398
IKvasnitsky
2003-06-10 11:41
2003.08.11
Вопрос о функции AdjustTokenPriveleges


14-33325
Карелин Артем
2003-07-23 11:53
2003.08.11
Хочу фичу!!


14-33343
AlexRush
2003-07-24 18:28
2003.08.11
Ставим на работе новую винду, и вдруг она