Полное удаление динамического объекта
Созрел у меня ещё один вопрос, сложные у меня вопросы... =)
Я динамически создаю кнопку, храню её id и потом по id обращаюсь... Почему после вроде как удаления кнопки, по её id, её свойства всё равно доступны!? Ну а кнопка вроде с формы удаляется, визуально и вернуть вроде не получается, визуально... А к свойствам могу обращаться и они ещё содержат те свойства, которые я задал ранее! Т.е. получается в памяти висят данные кнопки... Вот только свойства доступны только для чтения, а для записи вроде уже не доступны... Кто мне подскажет как удалить эти данные? А то за каждой динамически созданной и удалённой кнопкой будут висеть данные... Код:
unit Unit1; |
Ответ: Полное удаление динамического объекта
Дело в том, что удаление объекта производится внутри обработчика события этого же объекта. То ли это баг, то ли фича, но объект остается доступен вплоть до завершения обработчика (фактическое удаление производится только в конце обработчика или сохраняется некая локальная копия). Если же попытаться обратиться к тому же id после завершения обработчика, то будет выдано какое-то левое значение (хотя, как ни странно, исключение все равно не получим, несмотря на обращение к несуществующему объекту).
|
Часовой пояс GMT +4, время: 01:57. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot