Главная страница
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.03 c
3-1084430868
Курдль
2004-05-13 10:47
2004.06.06
Фундаментальный вопрос о правильном использовании транзакций.


3-1084691038
Cherepovets
2004-05-16 11:03
2004.06.06
Параметрический запрос


1-1085639652
ilnarab
2004-05-27 10:34
2004.06.06
Как извлечь имя файла


14-1084961837
Senti
2004-05-19 14:17
2004.06.06
Работа для программиста... Нужна помощь


14-1084666387
IceDog
2004-05-16 04:13
2004.06.06
Угол на который поднимается Солнце