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

Вниз

Интересное поведение Delphi7 + Frames   Найти похожие ветки 

 
Sergey_Masloff   (2003-10-23 20:07) [0]

Небольшое введение. Есть у меня программа написаная с использованием D5. Не слишком сложная но и не так чтобы совсем простая. Используется наследование форм, а кроме того интенсивно используются фреймы (TFrame) в которых не только накиданы компоненты но и написана логика и они используются как "кирпичики" при создании составных форм. Появилось немного свободного времени (отпуск) и решил ее под D7 скомпилировать. Дело нехитрое - подточил компоненты нестандартные и скомпилировал. И вот при работе при открытии некоторых форм (MDIChild) в которых в свою очередь есть фреймы вылетает AV в ntdll. То что с программой все в порядке я уверен - эксплуатируется несколько лет несколько сот установок - полет нормальный.
Начал копать, понял что AV происходит в момент когда компоненты которые на фрейме читают себя из ресурса при создании формы.
Начал копать дальше - только компоненты конкретного одного фрейма. Потом круг подозреваемых сократился до парочки невинных комбобоксов. При их удалении все стало работать. Потом на их место поставил 2 новых - все работает никаких AV. Спрашивается - что это было?
P.S. Проверял на 3 компьютерах под Win2000 Pro и Server, весь софт (операционки, D5, D7) - лицензионные.


 
Юрий Федоров ©   (2003-10-23 20:16) [1]

Никогда бы не рискнул использовать фреймы при наследовании форм :-)) Да и без наследования стараюсь от них отказаться, если нужно - вставляю другую форму с присвоением Parent
Причина - их крайняя глючность


 
Sergey_Masloff   (2003-10-23 20:28) [2]

Юрий Федоров © (23.10.03 20:16) [1]
>вставляю другую форму с присвоением Parent
Я так делал до появления D5

>Причина - их крайняя глючность
Программа про которую идет речь установлена в нескольких сотнях точек (сейчас за 500 перевалило). В программе есть подсистема протоколирования ошибок и логи я получаю регулярно. Могу на основании статистики утверждать что за полтора-два года эксплуатаци глюков связаных с использованием фреймов не было. Вообще. Кстати про глючность фреймов стали говорить в основном после выхода D6 - то ли до этого их не начинали интенсивно применять толи глючить они только начиная с 6 стали.


 
vuk ©   (2003-10-23 20:36) [3]

Некоторые глюки с фреймами, действительно, имеют место быть. Но только в режиме дизайна. Малость перемудрили в Borland... Но, тем не менее, плюсы перевешивают минусы.


 
Sergey_Masloff   (2003-10-23 20:55) [4]

vuk ©
В моем случае глюк не в design-time. Кстати сейчас написал специально для тестирования кусочек, дергает ы цикле все формы в которых фреймы - все работает. То есть был какой-то коварный глюк местного значения. Но он мне не приснился - код работающий в D5 и не работающий в D7 остался и ошибка воспроизводима 100%


 
MBo ©   (2003-10-23 20:59) [5]

Не эта ли ошибка случайно?

One higly stinky bug is that if you have a null value first in a combobox
you get an AV in ntdll when running D7 apps on any other OS than WinXP.


 
Sergey_Masloff   (2003-10-23 21:01) [6]

MBo ©
С меня причитается. 100% оно.


 
MBo ©   (2003-10-23 21:02) [7]

тогда
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=18872


 
vuk ©   (2003-10-23 21:08) [8]

to Sergey_Masloff:

>ошибка воспроизводима 100%
То есть имеется минимальный код, который воспроизводит ошибку? Если имеется, то такому коду самое место в QualityCentral и "Подводных камнях" на delphikingdom.com


 
vuk ©   (2003-10-23 21:11) [9]

Ну вот, пока отвлекался, оказывается уже все нашлось. :o)



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-8427
angel2000
2003-10-22 11:06
2003.11.03
Прерывание выполнения цикла


1-8367
UPR
2003-10-23 02:16
2003.11.03
Об интерфейсе


1-8381
Djoniki
2003-10-22 21:49
2003.11.03
Почему это не работает веть это так просто..............


3-8317
Sodom
2003-10-13 10:08
2003.11.03
Проблема с русскими буквами в Firebird.


6-8580
Sural
2003-09-07 09:27
2003.11.03
Отправка формы на сервер