![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Потеря ссылки на компонент [D7, Win2k]
far © (2004-10-07 15:03:00)Доброго времени суток, уважаемые.
У меня проблема со свойством-ссылкой на компонент.
Выглядит это так:
На форме Main находится компонент A типа TA, используемый другими компонентами типа TB, находящимися на разных формах приложения. Соответственно TB содержит свойство-ссылку на A.
Проблема:
В design-time, при загрузке формы, содержащей TB, ссылка на A восстанавливается правильно не всегда. Часто для нее задается nil.
В dfm все правильно: PropA = frmMain.A
Как ни странно, на тестовом приложении с двумя формами проблема не проявляется. Но зато в большом приложении с десятками форм ссылки на некоторых формах обнуляются со 100% вероятностью. На других формах этого же приложения ссылки могут не обнуляться, если заранее была загружена в редактор форма Main. Это различие меня очень удивляет, ведь в обоих приложениях нет кода, работающего в design-time и затрагиваещего внутренности моих компонентов.
Скажите пожалуйста, является ли эта проблема стандартной для Delphi? Что в принципе можно попробовать сделать?
far (2004-10-08 17:38:00) [1]Спасибо, Юрий, Вы как всегда кстати :)
Юрий Зотов (2004-10-08 02:07:00) [2]> является ли эта проблема стандартной для Delphi?
ИМХО, на больших проектах среда действительно подглюкивает. Например, часто не срабатывает Ctrl+Space.
> Что в принципе можно попробовать сделать?
Написать эксперт, который при открытии любой формы с компонентом B сначала автоматически открывает форму с компонентом A. Но не уверен, что овчинка стоит выделки, потому что можно делать то же самое и вручную.
far (2004-10-07 15:42:00) [3]Должен признать, что я немного ошибся, ссылки правильно восстанавливаются, если заранее была загружена в редактор форма Main, содержащая компонент A.
far (2004-10-07 15:28:00) [4]Судя по Вашему ответу, я делаю вывод, что проблемы такой возникать не должно, верно?
Я уверен, что в моем коде нет операций, влияющих на значение считываемого свойства при загрузке формы.
Я не использую это свойство в фунции DefineProperties и каких
Это просто свойство типа TA, имеющее значение frmMain.A. И все!
Вместе с тем код компонентов занимает несколько тысяч строк. Вы уверены, что Вам захочется его увидеть?
panov (2004-10-07 15:06:00) [5]Думаю, что сделать можно, если увидеть код.