Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

TreeNode   Найти похожие ветки 

 
DimonNew ©   (2004-05-21 16:10) [0]

Привет, подскажите пож-та. Есть следующий код:
Node:TTreeView;
NewNode,NodePar:TTreeNode;
MyRecPtr:PInteger;

процедура1()
 MyRecPtr^:=10;
 NewNode:=Node.AddObject(nil,"test1",MyRecPtr);
 процедура2(Node,NewNode)

процедура2(Node,NodePar)
 MyRecPtr^:=20;
 NewNode:=Node.AddChildObject(NodePar,"test.test",MyRecPtr);

Далее в событии TreeView.OnClick:
 label2.Caption:=IntToStr(PInteger(trvTurs.Selected.Data)^); - это для примера.

Проблема - при переходе с узла на узел, отображается данные, которые я записал в Data, только первого узла, в главном дереве, и первого узла поддерева при просмотре любого узла.
Какую я допустил ошибку.


 
DimonNew ©   (2004-05-21 16:16) [1]

Прошу прощения
Node:TTreeNodes;


 
inic ©   (2004-05-21 16:24) [2]

Лень залезать в Delphi, но ты попробуй сделать
NewNode локальной переменной в каждой из процедур


 
DimonNew ©   (2004-05-21 16:29) [3]

NewNode,NodePar:TTreeNode; MyRecPtr:PInteger;
Они у меня локальные, определены в обеих процедурах, как докальные переменные.


 
DimonNew ©   (2004-05-21 16:32) [4]

Node и NodePar - передаются как параметры процедуры, и NodePar, не локальный параметр(опять ошибся).


 
Clickmaker ©   (2004-05-21 16:32) [5]

Память выделяешь под каждый MyRecPtr ?
Кстати, если достаточно integer, то проще так

var Data: integer;
Data := 10;
NewNode:=Node.AddObject(nil,"test1",Pointer(Data));

label2.Caption:=IntToStr(Integer(trvTurs.Selected.Data));


 
inic ©   (2004-05-21 16:46) [6]

Не знаю сократил ты для наглядности код или просто забыл это сделать:
перед MyRecPtr^:= ...
поставить New(MyRecPtr),
ну и конечно при удалении Node нужно
Dispose(PInteger(Node.Data))


 
DimonNew ©   (2004-05-21 17:12) [7]

Спасибо за помощь. Заработал вариант Clickmaker и мой, т.к. памать, да я выделяю не под каждый MyRecPtr перед циклом.Я понял свою ошибку. Но вариант Clickmaker мне понравился больше, спасибо.



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
6-1082103558
Иксик
2004-04-16 12:19
2004.06.06
Html парсер


1-1085507296
td
2004-05-25 21:48
2004.06.06
большой вопрос про DLL


1-1085235331
svsergei
2004-05-22 18:15
2004.06.06
Проблема с объемом используемой памяти


1-1085323590
Jymmi
2004-05-23 18:46
2004.06.06
String[n] & ShortString


3-1084514809
lightix
2004-05-14 10:06
2004.06.06
Компоненты прямого доступа к Oracle 8 (9)