Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизTTreeNode Найти похожие ветки
← →
Rel_ (2003-06-11 12:05) [0]Народ, подскажите будет ли корректным сл. приём.
У меня trv : TTreeView.
Необходимо сохранять данные выбранной ноды. Уровней вложенности может быть сколь угодно.
посему я решил сделать т.н. рекурсивное сохранение:
1) объявил тип и в нём 2 процедурки
TMyNode = class(TTreeNode)
private
procedure SaveTask(AFS : TFileStream; ATask : TTask);
public
procedure SaveData(AFS : TFileStream);
end;
procedure SaveTask(AFS : TFileStream; ATask : TTask);
begin
здесь пишу в поток некий класс TTask;
end;
procedure SaveData(AFS : TFileStream);
var i : Integer;
begin
SaveTask(AFS, TTask(Data^));
for i:=0 to Conut-1 do Item[i].SaveData(AFS);
end;
2) Вызываю TMyNode(trv.Selected).SaveData(FS) - и все ноды рекурсивно сохраняют и себя и все вложения.
вопрос: имею ли я право делать такое приведение типов и вызывать проц. SaveData, если я добавляю (т.е. создаю) ноду стандартным способом : trv.AddChild, кот возвращает указатель не на TMyNode, а на TTreeNode ???
← →
Rel_ (2003-06-11 12:20) [1]Ну, сильные мира сего !!!
← →
MBo (2003-06-11 12:21) [2]новый класс не нужен, достаточно такой процедуры:
procedure SaveNode(Node:TTreeNode; Stream:TStream);
← →
Rel_ (2003-06-11 12:42) [3]Не понял! проясни
← →
Юрий Федоров (2003-06-11 12:46) [4]вопрос: имею ли я право делать такое приведение типов и вызывать проц. SaveData, если я добавляю (т.е. создаю) ноду стандартным способом : trv.AddChild, кот возвращает указатель не на TMyNode, а на TTreeNode ???
Имеешь, если ты определил событие OnCreateNodeClass:
procedure TForm1.TreeView1CreateNodeClass(Sender: TCustomTreeView;
var NodeClass: TTreeNodeClass);
begin
NodeClass:= TMyNode
end;
← →
Rel_ (2003-06-11 12:47) [5]Хочешь сказать, что можно написать нечто вроде
procedure SaveNode(Node:TTreeNode; Stream:TStream);
begin
--- процедура сохранения Node.Data;
for i:=0 to Node.Count-1 do
SaveNode(Node.Item[i], Stream)
- т.е. проц-ра будет вызывать сама себя.
end;
- а сработает?
← →
Rel_ (2003-06-11 12:48) [6]to Юрий Федоров - ага, спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.025 c