Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Как отобразить дерево в DbGridEh?   Найти похожие ветки 

 
Mishenka   (2006-09-19 14:50) [0]

Есть в таблица, в которой записи может соответствовать другая запись из той же таблицы (что-то типа дерева). Как сделать отображение всего этого в DBGridEh (из EHLib) как в проводнике, тобишь жмёшь на крестик слева и открывается список дочерних записей и т.д. ?


 
Sergey13 ©   (2006-09-19 15:09) [1]

> [0] Mishenka   (19.09.06 14:50)

А ЕхЛиб может дерево отображать?


 
ANB ©   (2006-09-19 15:12) [2]


> Mishenka   (19.09.06 14:50)

Поставь DevExpress. Он умеет нечто подобное.


 
sniknik ©   (2006-09-19 15:14) [3]

какая разница может или нет? не об этом же спрашивали. ты давай отвечай как отображать!... ;)


 
sniknik ©   (2006-09-19 15:14) [4]

а вот про DevExpress не спрашивали.


 
Mishenka   (2006-09-19 15:16) [5]

А что такое DevExpress и где его взять?


 
ANB ©   (2006-09-19 15:18) [6]


> ты давай отвечай как отображать!... ;)

Значится, перехватываешь отрисовку грида. Заставляешь рисоваться слева крестик. Перехватываешь обработку событий мыши (достаточно клика), ловишь момент нажатия на крестик. По этому нажатию лезешь в БД, достаешь список дочерних элементов и заставляешь грид рисовать их.
Примерно так.


 
ANB ©   (2006-09-19 15:19) [7]


>  что такое DevExpress

Библиотека компонентов. Мне не нравится.


> где его взять?

Можно у них на сайте. Полный комплект стоит не так уж дорого.


 
ANB ©   (2006-09-19 15:19) [8]

Если денег жалко - то лучше задействовать TTreeView


 
без ника   (2006-09-19 16:27) [9]

В EhLib от 4 версии и выше появилась возможность отображать дерево. Пример есть в комплекте поставки.


 
atruhin ©   (2006-09-20 12:38) [10]

> [9] без ника   (19.09.06 16:27)

ДА. Все умеет. Подробная документация.

> [8] ANB ©   (19.09.06 15:19)
> Если денег жалко - то лучше задействовать TTreeView

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


 
Mishenka   (2006-09-21 10:29) [11]

А кто-нибудь пробовал это на практике? А то я настроил всё как в мануале написано, а грид дерево всё равно неотображает ...


 
Johnmen ©   (2006-09-21 10:44) [12]


> без ника   (19.09.06 16:27) [9]
> В EhLib от 4 версии и выше появилась возможность отображать
> дерево. Пример есть в комплекте поставки.


Поподробней, пожалуйста, где и как.


 
alex_*** ©   (2006-09-21 10:46) [13]

а не проще для отображения дерева использовать дерево? то бишь TreeView?


 
zdm ©   (2006-09-21 10:47) [14]

классика, создаешь табличку
ID integer(уникальный идентификатор)
PID integer (кто будет родителем)
NAME string (ну и соотвсетсвенно название)
...
можно добавить еще поле
TREE (это удобно, допустим когда встаешь на ветку которая имеет вложения и хочешь отобразить все содержимое, это, типа 1.,1.1 и т.д. и на событие, например, онклик тривью, select from таблица where TREE LIKE 1.%)
..
А вообще есть компоненты, например JV, очень удобно, весь RXLib + свои.
..
И почитай статью, ну например  
http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=488


 
zdm ©   (2006-09-21 10:48) [15]

ой извини, http://www.soft32.ru/delphi.shtml?topic=comps&title=dbtreeview


 
zdm ©   (2006-09-21 10:57) [16]

Нет компонента "ДЕРЕВО" для всех случаев, поэтому только - классический TreeView, и изголяйся с ним как хочешь :)


 
Ega23 ©   (2006-09-21 11:33) [17]

Я писал свой TDBTreeView, но он узкоспециализирован. Заточен под конкретную задачу. Исходники могу выслать, мне не жалко.


 
dr Gonzo   (2006-09-21 11:54) [18]

2 Johnmen ©

По поводу как отображает Tree EhLib:

описание с сайта :
 ....
 DBGridEh show the hierarchical structure of records in TMemTableEh.
 ....

Вид:

http://ehlib.com/IMAGES/dbgridehform14.gif

Доп-я информация:

http://ehlib.com/dbgrideh1.htm


 
atruhin ©   (2006-09-21 12:23) [19]

> Поподробней, пожалуйста, где и как.

Да некуда там подробнее то. По шагам разжевано.


 
Johnmen ©   (2006-09-21 12:45) [20]


> dr Gonzo   (21.09.06 11:54) [18]


Благодарю.
Лично я не знал, ибо не пользовался TMemTableEh.


 
Rule ©   (2006-09-21 14:18) [21]

ухты сам не знал, присоединяюсь к благодарностям


 
Mishenka   (2006-09-27 09:53) [22]

Вроде всё сделал и вроде заработало. Решил создать индексы, как указано в доке. После этого в момент выполнения MemTableEh.Open вылезает ошибка "TMTIndexEh.FindKeyValueIndex: values is not comparable". Может кто-нибудь пробовал создавать индексы в MemTableEh, с чем это может быть связано?


 
atruhin ©   (2006-09-27 14:31) [23]

А значений NULL в поле нету?



Страницы: 1 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.055 c
4-1152810395
trubin
2006-07-13 21:06
2006.11.26
Как программно переключить раскладку клавиатуры в чужом процессе


15-1162909504
TIF
2006-11-07 17:25
2006.11.26
У кого есть опыт борьбы с троянами-шутдаунерами?


15-1162889015
m-kirill-2003
2006-11-07 11:43
2006.11.26
CGI


15-1162644159
хххх
2006-11-04 15:42
2006.11.26
Microsoft Office


2-1162742452
Gunek
2006-11-05 19:00
2006.11.26
Как SQL-запрос "заставить" правильно считать?