Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Table to TreeView [D5, Win95/98]


AGN ©   (2004-03-12 13:30:00) 

Добрый день.
Никак не могу осилить простую задачку:
есть таблица, состоящая из двух полей, к примеру:

|Country  | City   |
--------------------
|Россия   |Москва  |
|Беларусь |Минск   |
|Россия   |Питер   |
|Россия   |Саратов |
|Беларусь |Гродно  |
...
...

Как загнать этот список в TreeView, что бы это выглядело примерно так:

+Россия
  - Москва
  - Питер
  - Саратов
+Беларусь
  - Минск
  - Гродно

Посоветуйте что-нить (если можно код поподробней), а то голова пухнет.
Благодарю.


Amoeba   (2004-03-16 18:23:00) [1]


> А конкретные ссылочки на такие бесплатные компоненты можно?

1. TDBTreeView из JVCL или RALib
2. TrDBTreeView из Polaris Library http://polesoft.narod.ru/
3. Такой компонет есть и в VGLib http://www.vglib.com/


Erik   (2004-03-16 17:37:00) [2]

Все очень грустно.
Country := FieldByName('Country').AsString;
Item := AddChield(nil, Country);
where Country = FieldByName('Country').AsString do
begin
 Item.AddChield(Node, FieldByName('City').AsString);
 next;
end;


serge35   (2004-03-16 17:05:00) [3]

В таблицу надо ввести еще 2 числовых поля ID и PID
В первом будет храниться код кождой записи, в PID ссылка
на родительскую запись.
Потом берешь компоненту, потомок от TreeView и устанавливаешь
там все поля. Компонента сама построит дерево.
Но если добавить поля нельзя, и если дерево будет иметь только
один уровень вложенности, то можно построить дерево 2 запросами.
Первый запрос достает страны (без повторения), по нему запускается цикл. В цикле сначала добавляется имя страны в дерево, затем открывается второй запрос, которому в качестве параметра передается название страны. Затем запускается цикл по второму запросу и названия городов добавляются в дерево.
Вот такая петрушка.


DmitryNekl   (2004-03-16 16:53:00) [4]

2 Amoeba

А конкретные ссылочки на такие бесплатные компоненты можно?


AGN   (2004-03-16 15:45:00) [5]

paradox


Соловьев   (2004-03-16 15:14:00) [6]

Еще многое зависит от конкретной СУБД... Какая используется?


Amoeba   (2004-03-16 15:06:00) [7]

Вообще-то для отображения в виде дерева структура таблицы должна быть иной. Подробности в http://delphi.vitpc.com/asp/viewitem.asp?UrlItem=/helloworld/dbtreeview.htm

Между прочим, есть целый ряд бесплатных компонетов - потомков TreeView - непосредственно работающих с такими таблицами (естественно, имеющими правильную структуру)


TUser   (2004-03-16 11:07:00) [8]


> вариантов больше нет???

Есть - 20$


Mitrofan   (2004-03-16 09:57:00) [9]

Пишешь запрос

Select * From Table1
Order By Country, City

Затем идешь по набору данных и
строишь дерево. Что то типа этого

while not Query1.Eof do begin
 ...
 Query1.Next
end;


HSolo   (2004-03-16 09:26:00) [10]

http://delphi.vitpc.com/asp/viewitem.asp?UrlItem=/helloworld/dbtreeview.htm


AGN   (2004-03-16 09:06:00) [11]

вариантов больше нет???


Vitaly   (2004-03-12 16:53:00) [12]

10$


AGN   (2004-03-12 16:49:00) [13]

Признаю - туповат я.
Можно всё-таки на моём примере........
Спасибо.


Alx2   (2004-03-12 13:34:00) [14]

http://delphibase.endimus.com/?action=viewfunc&topic=filenames&id=10257


Наверх

Титульная страница Поиск, карта сайта Написать письмо