Показать сообщение отдельно
Старый 21.08.2024, 07:24   #4  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
По сути, вы сами всё расписали. Надо заново найти контрол по id.
X++:
    formStringControl  = element.design().control(id);
    if (formStringControl) // безопасная проверка - точно можно понять контрол еще жив или нет
Если же вы не хотите терять связь через локальную переменную, то кроме явного присваивания null, я других вариантов не вижу. Пути сборщика мусора неисповедимы.
Попробуем углубиться в детали.
У вас переменная ссылается на объект, контрол, который пока что существует. Метод removeControl() находит объект по id и удаляет его из памяти. Будет ли метод обновлять все ссылки на удаленный объект? Думаю нет. Соответственно, у вас останется ссылка на некую область в памяти, обращение к которой даст сбой. Однако проверка на неравенство null завершится успешно.
Плюс, я думаю, что дебаггер немного доработан с тем, чтобы не показывать тот фарш, который может отобразить переменная, если она ссылается не туда, куда надо.
__________________
// no comments