Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-94101
ИМХО
2004-02-10 03:02
2004.02.29
Фотографу


14-94148
Knight
2004-02-04 23:41
2004.02.29
Есть ли место 486-му в современной локалке?


4-94245
chi
2003-12-15 21:55
2004.02.29
сохранение bitmap в файл


14-94185
slivka
2004-02-06 23:20
2004.02.29
А что такое


3-93772
Val12
2004-02-03 17:49
2004.02.29
ExportGrid4ToExcel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский