Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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™

min@y™ (статус: Доктор наук), 15 августа 2011, 09:34 [#1]:

Цитата (Терехин Саша):

Вобщем, кто может детально объяснить как пользоваться Drag&Drop в компоненте Treeview.

Всё это детально написано в хэлпе. Удели внимание таким событиям, как:

  • OnStartDrag;
  • OnDragOver;
  • OnDragDrop;
  • OnEndDrag.

Если у тебя программа большая и тяжёлая, то напиши маленькое тестовое приложение и потренируйся.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:52
Выполнено за 0.02 сек.