Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
2-1135601337
oleggar
2005-12-26 15:48
2006.01.15
hooks


2-1135550887
garald
2005-12-26 01:48
2006.01.15
массив типа BYTE


6-1127897807
Yuran
2005-09-28 12:56
2006.01.15
Расскажите плизз, про gethostbyaddr?


14-1135311825
Ученик чародея
2005-12-23 07:23
2006.01.15
Европа официально признала, что в глюках программ виновата Винда.


2-1135270904
Progger
2005-12-22 20:01
2006.01.15
вложенность записей




   Наверх