Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Доступ к виз. комп. из других юнитов [D6]


Skywalker ©   (2002-06-28 12:40:00) 

Я объявляю в общем юните UnitCom.pas переменную (напрмер ComLab:TLabel)
при активации главного окна присваиваю ей адрес MyLab:TLabel,
которая находится в главном юните UnitCom.ComLab:=MyLab
Впоследствии все действия с переменной ComLab, инициированные
функциями из общего юнита протекаю нормально, НО!
Делаю такую же фигню в BCPP и получаю AV!
Кто знает почему?


Skywalker   (2002-06-28 17:11:00) [1]

Ну как тогда объявить объект, чтоб он была общий для всех, например, юнитов?


Digitman   (2002-06-28 15:14:00) [2]

Раз получаешь AV, значит, времена жизни одной и той же переменной различны в обеих этих средах.
Значит, не "такая же фигня" и вообще - не "фигня".
Значит, в BCPP твоя переменная "жила" какое-то время в стеке и была уже "мертва" на момент обращения к ней. В то время как в Delphi та же переменная - статическая и время ее жизни равно времени жизни модуля в АП занрузившего его процесса.
Отсюда и пляши)


Наверх

Титульная страница Поиск, карта сайта Написать письмо