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

Вниз

TreeView и Data в узлах   Найти похожие ветки 

 
Pahan_   (2004-02-17 14:51) [0]

Доброго времени суток, Мастера. Как сохранить/загрузить содержимое TreeView"a вместе с Data в узлах? Спасибо.


 
Семен Сорокин ©   (2004-02-17 14:57) [1]

Как сохранить/загрузить содержимое TreeView"a вместе с Data в узлах?
с указателями что-ли? а зачем?


 
Pahan_   (2004-02-17 15:09) [2]

> с указателями что-ли? а зачем?

Имеется ввиду TTreeNode.Data. Затем, чтобы даные там хранить.


 
Pahan_   (2004-02-17 15:33) [3]

up


 
Digitman ©   (2004-02-17 15:38) [4]


> Затем, чтобы даные там хранить


какие ?


 
VLAD-MAL   (2004-02-17 15:49) [5]

Ну, типа, 32-разрядное целое, что ли? Или ты имеешь в виду объекты, на которые могут ссылаться указатели в этих Data?


 
SergP ©   (2004-02-17 15:50) [6]

Digitman © (17.02.04 15:38)

Ну может человек собирается хранить там не указатели а что-нить другое... Мало ли чего можно в 4 байта засунуть....

Помню мне когда-то было нужно хранить число типа cardinal (т.е. не указатель, а просто допустим значение поля в БД, которому должен соотв. узел, или еще чего можно придумать).. Просто тогда я до другого способа не смог додуматься.

Ну и хранил cardinal так:

var i:cardinal;

...

//Сохранение в node.data
node.data:=pointer(i);
...
// Извлечение
i:=cardinal(node.data);


 
Pahan_   (2004-02-17 15:55) [7]

2 Digitman [4]

Ну к примеру что-то вроде:

type
PMyData=^TMyData;
TMyData=record
mystr:string[255]
mypoint:tpoint;
end;


 
Digitman ©   (2004-02-17 16:02) [8]


> Pahan_


без переделки классов, имеющих отношение к TreeView, очевидно, никак

для этого необходимо хотя бы сделать это св-во published
сделать это можно только в своем наследнике TTreeNode (или добавить некое дополнительное аналогичное св-во в секцию published наследника), а чтобы задействовать своего наследника придется наследовать еще и ряд других классов, которые отныне будут ссылаться на наследника TTreeNode везде где это требуется


 
Семен Сорокин ©   (2004-02-17 16:02) [9]

Pahan_ (17.02.04 15:55) [7]
тогда ручками, см. метод
procedure TTreeStrings.SaveTreeToStream(Stream: TStream);
в ComCtrls


 
Digitman ©   (2004-02-17 16:06) [10]

упс ... соврал ..

TTreeNode не есть наследник TComponent, и published здесь не поможет

только с пом. DefineProperties/Defineproperty


 
Digitman ©   (2004-02-17 16:11) [11]

ну уж коль "ручками", можно и так поступить в данном случае :

Stream.WriteComponent(TreeView);
for i:= 0 to TreeView.Items.Count - 1 do
Stream.WriteBuffer(PMyData(TreeView.Items[i].Data)^, SizeOf(TMyData));

...

Stream.ReadComponent(TreeView);
for i:= 0 to TreeView.Items.Count - 1 do
Stream.ReadBuffer(PMyData(TreeView.Items[i].Data)^, SizeOf(TMyData));

но это, конечно, способ через задницу



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
3-93770
Шоломицкий
2004-02-04 11:41
2004.02.29
Как связать ADOConnection


14-94124
MPS
2004-02-08 10:30
2004.02.29
Драйвер модема для линукс! help!!!


14-94108
Nick-From
2004-02-09 20:20
2004.02.29
Не могу настроить Outlook


6-94080
vs_flash
2003-11-01 12:53
2004.02.29
как узнать mac


14-94162
sucer
2004-02-09 16:56
2004.02.29
Кто знает Сколько человек пишут LONGHORN?