![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
?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 держишь инф-цию под грифом "Совершенно секретно"..