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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 5 057

/ вопрос открыт /

Здравствуйте!
У меня на форме есть TreeView и DBGrid. На главной форме есть TTreeView(рабочий, добовляет, удаляет,редактирует записи дерева) и на дочерной форме DBGrid, и общая база данных access, как сделать так что бы при выделении определённого узла в TTreeView отображалась соответсвующая запись в DBGrid???

strannik23 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: strannik23 (статус: Посетитель)
Вопрос отправлен: 28 февраля 2011, 21:50
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 17; последнее сообщение — 1 марта 2011, 16:16; участников в обсуждении: 2.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 14:24 [#1]:

кто нибудь помочь может???
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 14:44 [#2]:

можем. Задача решаемая.
Напишите такой код для кнопки

Table.first;
while not table.eof do begin
  sleep(1);
  Application.ProcessMessagel
  table.next;
end;
где table - это либо TTable или TQuery, который привязан к гриду.
Потом посмотрите на результат. Увидите, что "курсор" перемещается по записям. Дальше попробуйте сами.
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 14:53 [#3]:

что такое Application.ProcessMessagel ??? Delphi выдаёт ошибку, может это поможет понять проблему лучше, пример создания дерева я брал вот здесь http://www.intuit.ru/department/se/dbpdelphi/10/1.html
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 15:01 [#4]:

Цитата (strannik23):

что такое Application.ProcessMessagel

там в конце должна быть точка с запятой, а не l. опечатался.
Галочка "подтверждения прочтения" - вселенское зло.
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 15:03 [#5]:

хотя может я не до конца прочувствовал вопрос. Нужно что бы нужная запись становилась активной, или в гриде оставалась только она одна?
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 15:10 [#6]:

нужно сделать так что, при выделении узла(ветки) TTreeView, в DBGrid выделилась именно та строка которая соответсвует выделенному узлу, к примеру в дереве есть ветка "отделы",соответственно при выделении этой ветки в гриде отобразилась запись которая принадлежит именно этому отделу
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 15:12 [#7]:

записи в гриде и записи в дереве должны объединять ключи, не так ли?
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 15:17 [#8]:

это если разные таблицы, а у меня одна таблица в которой стоится дерево и в ней же храняться записи, дерево и грид подключены к ADOTable
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 15:23 [#9]:

я всё делал по примеру в интуите, мне лишь нужно сделать так что бы, когда я встаю на узел дерева, то в гриде отображаласть запись относящяяся к узлу на котором стою в данный момент
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 15:31 [#10]:

Цитата (strannik23):

это если разные таблицы, а у меня одна таблица в которой стоится дерево и в ней же храняться записи, дерево и грид подключены к ADOTable

А это не имеет никакого значения. Когда мышкой выделяем запись в дереве, нужно знать, что это за запись, что бы потом ее найти в базе. То есть, в treeview нодах нужно сохранять id записи. тогда и выделить нужную запись будет банально просто.
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 15:33 [#11]:

а по подробнее можно? каким образом это реализовать? в этом я совсем не разбираюсь, а нужно так сделать
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 15:36 [#12]:

как сделать - есть много способов. можно например сохранять id в свойстве data ноды.
А можно просто-просто. так как текст ноды для дерева известен и в таблице он есть, то пользуемся
AdoTable1.Locate('Name','Zoom',[]);
где Name - это имя поля, хранящего эти имена, а zoom - это значение поля, в данном случае node.caption
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 15:42 [#13]:

на событие onChange???
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 15:51 [#14]:

наверное.
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 16:01 [#15]:

что то не получается
strannik23

strannik23 (статус: Посетитель), 1 марта 2011, 16:08 [#16]:

можете подкинуть ещё пару идей? или как нибудь помочь ещё
Вадим К

Вадим К (статус: Академик), 1 марта 2011, 16:16 [#17]:

я не знаю, что именно там не получается, поэтому не могу подкинуть никаких идей.
Галочка "подтверждения прочтения" - вселенское зло.

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

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