Текущий архив: 2006.01.15;
Скачать: CL | DM;
Вниз
Динамический список Найти похожие ветки
← →
Новенькая (2005-12-24 14:45) [0]Создаю список, элементы надо добавлять в начало списка. Каждый элемент - запись.
пишуnull
...
var
INFO:TInfoDoc;
begin
New (INFO);
info^.sl := nil;
info^.pr := TreeView1.Selected;
info^.child := nil;
info^.parent := TreeView1.Selected.Parent;
info^.next := head; //Здесь выдает ошибку(если F8 пошаговое выполнение)
head := INFO;
end;null
Почему?вроде с учебника пример брала
← →
Eraser © (2005-12-24 15:31) [1]
> Новенькая (24.12.05 14:45)
Есть специальные объекты для работы со списками - TList, TStringList, TObjectList.
← →
Новенькая (2005-12-24 18:45) [2]а как сохранять полученный List:TList?
← →
Eraser © (2005-12-24 18:57) [3]
> Новенькая (24.12.05 18:45) [2]
Собралась указатели сохранять что-ли? Зачем?
При следующем запуске программы это будет просто набор ничего ни значащих DWORD циферек.
Если нужно сохранять данные, то используй в общем случае TFileStream + записи (структуры) или иногда можно обойтись TIniFile.
Лучше скажи зачем ты затяла всё вот это
> Создаю список, элементы надо добавлять в начало списка.
> Каждый элемент - запись.
> пишу
>
> null
> ...
> var
> INFO:TInfoDoc;
> begin
> New (INFO);
> info^.sl := nil;
> info^.pr := TreeView1.Selected;
> info^.child := nil;
> info^.parent := TreeView1.Selected.Parent;
> info^.next := head; //Здесь выдает ошибку(если
> F8 пошаговое выполнение)
> head := INFO;
> end;
> nullПочему?вроде с учебника пример брала
← →
Новенькая (2005-12-24 19:28) [4]Надо, чтобы пользователь создавал папки и документы в treeview. созданный каталог надо сохранить чтоб остались ссылки на файлы, т к файл при DBLClick должен загружаться в RichEdit. каталог можно сохранить и открыть потом.мне сказали- составляй список. вот я и пытаюсь его составить:)
← →
Eraser © (2005-12-24 19:45) [5]
> Новенькая (24.12.05 19:28) [4]
Ну так список и дерево это разные весчи.
Я бы делал так:
1. Сопроектировать класс, описывающий узел в дереве (TreeView). Ключевым свойством этого класса должен быть уникальный идентификатор, который для каждого узла должен быть различным.
2. При построении дерева создавал для каждого узла свой экземпляр класса (1) и присваивал его вновь созданному узлу через св-во Data.
3. Переопределить или создать новый метод SaveToFile у TreeView, аналогичный существующему, только чтобы вместо Text он сохранял уникальный идентификатор каждого узла.
4. Соответственно переопределить и LoadFromFile.
Надеюсь не сильно запутанно объяснил.
← →
Eraser © (2005-12-24 19:46) [6]
> Eraser © (24.12.05 19:45) [5]
Добавлю, что сами объекты, описывающие узлы, можно сохранять линейно, например с помощью TIniFile или TFileStream или же XML.
← →
Новенькая (2005-12-24 23:05) [7]
> null
не поняла немного. это как написать примерно со свойством Data, если
Data: Pointer? мне просто столько всего наговорили что разобраться сложно:)
← →
Новенькая (2005-12-24 23:06) [8]
> присваивал его вновь созданному узлу через св-во Data.
← →
Eraser © (2005-12-24 23:37) [9]
> Новенькая (24.12.05 23:05) [7]
Дело в том, что идентификатор любого объекта в Delphi есть указатель на этот объект.
т.е. вполне позможно такое выражениеNodeItem.Data := Form1;
теперь NodeItem.Data ссылается на тот же экземпляр формы, что и глобальная переменная Form1.
Соответственно к форме можно обратиться, к примеру, следующим образомTForm1(NodeItem.Data).Show;
Вообще объектную теорию относительно Delphi в двух словах не опишешь. Советую, прежде чем делать проект, почитать умную литературу.
Страницы: 1 вся ветка
Текущий архив: 2006.01.15;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.012 c