|
Вопрос # 5 574/ вопрос открыт / |
|
Здравствуйте, эксперты! Может вопрос простой, но пока что не могу его решить.
Суть задачи такая: нужно сформировать сложный запрос к базе данных, причем этот запрос формирует сам пользователь визуально с помощью компонента Treeview.
Как должен работать алгоритм: на форме есть список существующих полей таблицы базы данных, из этого списка любые поля мы можем перетягивать в компонент Treeview. В Treeview все поля, которые находятся в корне объединяются в запрос по логике "и". А если нам надо условие, например "или", то мы создаем его в подкаталоге, типа так:
| поле 1
| поле3
| поле 4
- (хотя бы одно выполняется)
/ поле 2
/ поле5
| поле 7
или если в текстовом варианте: (поле1)and(поле3)and(поле4)and((поле2)or(поле5))and(поле7)
Так вот, вся сложность (по крайней мере для меня) организовать правильно метод перетаскивания (Drag&Drop). Как это должно работать:
1) возможность перетаскивать поля из корня в подкаталог и наоборот.
2) Если из подкаталога вытягиваем последнее поле, то он (см. выше: "хотя бы одно выполняется") должен исчезнуть.
Вобщем, кто может детально объяснить как пользоваться Drag&Drop в компоненте Treeview.
За ранее благодарен.
 |
Вопрос задал: Терехин Саша (статус: Посетитель)
Вопрос отправлен: 14 августа 2011, 23:35
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 15 августа 2011, 09:34; участников в обсуждении: 1.
|
min@y™ (статус: Доктор наук), 15 августа 2011, 09:34 [#1]:
Цитата (Терехин Саша):
Вобщем, кто может детально объяснить как пользоваться Drag&Drop в компоненте Treeview.
Всё это детально написано в хэлпе. Удели внимание таким событиям, как:
- OnStartDrag;
- OnDragOver;
- OnDragDrop;
- OnEndDrag.
Если у тебя программа большая и тяжёлая, то напиши маленькое тестовое приложение и потренируйся.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|