Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.239.119.159] |
|
Сообщ.
#1
,
|
|
|
Всем добрый день!
При работе с TTreeView возник такой вопрос: как правильно очистить Data при удалении узла? Я делаю так: 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 после этого не меняется. |
Сообщ.
#2
,
|
|
|
Dispose и не должно изменять указатель, его дело только освободить память.
А вот место, на которое указывает указатель, объявлено свободным, и обращаться к нему не стоит. |
Сообщ.
#3
,
|
|
|
Т.е.у меня всё корректно сделано?
|
Сообщ.
#4
,
|
|
|
Да
|
Сообщ.
#5
,
|
|
|
|