Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Delphi: Общие вопросы > TTreeNode и свойство Data |
Автор: newkaz 09.10.18, 10:04 |
Всем добрый день! При работе с TTreeView возник такой вопрос: как правильно очистить Data при удалении узла? Я делаю так: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> type TPRecData = ^TRecordData; TRecordData = record cIndex: String[4]; cQuant: String[4]; cTMark: String[69]; cNote: String[90]; cSS: String[6]; -------------------------- var recData: TPRecData; -------------------------- Создаю переменную и присваиваю её значение свойству Data. New(recData); recData^.cIndex:=cIndexRead; recData^.cQuant:=cQuantRead; recData^.cTMark:=cTMarkRead; recData^.cNote:=cNoteRead; recData^.cSS:=cSSRead; tvNode.Data:=recData; -------------------------- При удалении узла или при закрытии формы отрабатывает событие OnDeletion, в котором прописано: Dispose(TPRecData(Node.Data)); Но значение Node.Data после этого не меняется. |
Автор: MBo 09.10.18, 11:01 |
Dispose и не должно изменять указатель, его дело только освободить память. А вот место, на которое указывает указатель, объявлено свободным, и обращаться к нему не стоит. |
Автор: newkaz 09.10.18, 12:17 |
Т.е.у меня всё корректно сделано? |
Автор: MBo 10.10.18, 02:12 |
Да |
Автор: newkaz 10.10.18, 05:11 |