Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.039 c
14-1134563918
BFG9k
2005-12-14 15:38
2006.01.15
Проблема с design time packages


9-1122972298
Max4
2005-08-02 12:44
2006.01.15
Координаты клика.


4-1131416118
msgipss
2005-11-08 05:15
2006.01.15
Можно ли получить время нахождения процесса в памяти


2-1135245204
RDen
2005-12-22 12:53
2006.01.15
Имя поля "Date".


2-1135265866
St74
2005-12-22 18:37
2006.01.15
Правильное сохранение зашифрованного файла