Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

?TreeView Сохранение и загрузка с учётом записанных данных? [D7]


Николай Владимирович ©   (2006-05-19 16:10:00) 

Помогите лыди опытные

  Как  сохранить treeView с даными записанными в свойство data для каждого узла (данные: путь к файлу,..(структура)) в файл.
   А потом загрузить это дерево с данными для каждого узла, соблюдая родительские и дочерние узлы.
                                    Не прозодите мимо


Николай Владимирович   (2006-05-19 19:17:00) [1]

Всё гениальное просто....


vovnuke   (2006-05-19 18:05:00) [2]

2 [11] Николай Владимирович   (19.05.06 17:39)
Node.AbsoluteIndex


Николай Владимирович   (2006-05-19 17:52:00) [3]

Понятно!
Ну а к делу как? я не смог найти!?


Alien1769   (2006-05-19 17:50:00) [4]


> как например обратится к AsoluteIndex в этой процедуре


Мы все учились понемногу, чему нибудь и как нибудь!?!
Так вспомнилось.


Николай Владимирович   (2006-05-19 17:39:00) [5]

Я видел это свойство AsoluteIndex но не смог его найти

procedure TMainForm.TreeView1Changing(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean);
begin

end;

как например обратится к AsoluteIndex в этой процедуре

Спасибо


Ega23   (2006-05-19 17:31:00) [6]

Да нет никаких примеров.
Лично я пошёл бы следующим образом:
Сохранение:
1. В структуру NodeOptions=record добавил бы поле NodeIndex:Integer и при добавлении узла к дереву прописывал бы туда TTreeNode.AbsoluteIndex
2. Создать File of NodeOptions
3. Пробежаться по всем узлам дерева и записать последовательно каждую структуру в файл.
4. Сохранить дерево.

Загрузка:
1. Загрузить дерево.
2. Открыть файл с данными.
3. Последовательно прочитать все данные из файла, создавая в памяти структуру
4. При создании каждой из структур будет определено поле NodeIndex.
5. Найти в дереве узел с AsoluteIndex=NodeIndex
6. Проставить в поле Data полученного узла указатель на соответствующую структуру

Вот таким бы образом я действовал. Насчёт AbsoluteIndex я не совсем уверен, но попробуй, может получится.
Если я не прав, то мастера меня поправят.


Николай Владимирович   (2006-05-19 17:23:00) [7]

Конечно не вызывает!

Скажи пожалуйста
где посмотреть примеры на эти  "сохраняторы" и свой "загружаторы"?


Ega23   (2006-05-19 17:11:00) [8]


> где посмотреть примеры на эти  "сохраняторы" и свой "загружаторы"
> не знаешь?
> Может даш ссылку полезную?
>
> "Можно Data для каждого узла в отдельном файле хранить"
> - интересная идея, но не для большого дерева.


Дык, самому придумывать надо.
Сохранение самого дерева, без Data проблемы вызывает, или нет?


Николай Владимирович   (2006-05-19 17:06:00) [9]

где посмотреть примеры на эти  "сохраняторы" и свой "загружаторы" не знаешь?
Может даш ссылку полезную?

"Можно Data для каждого узла в отдельном файле хранить" - интересная идея, но не для большого дерева.


Ega23   (2006-05-19 17:00:00) [10]

Ой, способов, на самом деле - тьма. Можно всё в один неструктурированый бинарник пихать, с указанием смещения внутре. Можно Data для каждого узла в отдельном файле хранить. Можно в одном, ибо структура имеет фиксированный размер.

Но в любом случае придётся делать свой "сохранятор" и свой "загружатор".


vovnuke   (2006-05-19 16:41:00) [11]

2 [4] Николай Владимирович   (19.05.06 16:38)
> Может совет дашь? =)
может код приведешь, вот на эту тему:
> Пытался из неё сохранять.....Не могу.....


Николай Владимирович   (2006-05-19 16:38:00) [12]

Может советдашь? =)


Сергей М.   (2006-05-19 16:33:00) [13]


> Пытался из неё сохранять.....Не могу.....
>


Ув. Николай Владимирович !

Судя по отсутствию комментариев к "пытался" Вы - сексот, а судя по отсутствию к "не могу" Вы - импотент. Что мне думать по этому поводу ?)


Николай Владимирович   (2006-05-19 16:20:00) [14]

Секрета нету....

PnodeOptions=^nodeOptions; //Указатель на структуру
 NodeOptions=record
   way:string[255]; //к файлу
   typeK:integer;   //нужный мне признак
 end;

Я использую указатель на структуру записывая её в котейнер типа tlist.
Пытался из неё сохранять.....Не могу.....


Сергей М.   (2006-05-19 16:13:00) [15]

Ув. Николай Владимирович !

Мы бы и рады тебе помочь, но ты в свойсве data держишь инф-цию под грифом "Совершенно секретно"..


Наверх

Титульная страница Поиск, карта сайта Написать письмо