Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 22.12.2010, 17:32   #1
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
Репутация: 10
По умолчанию Как связать дерево TreeView с таблицей StringGrid

Добрый день.
Помогите пожалуйста реализовать такой момент. Мне надо, чтоб при выборе элемента дерева в таблицу вводились какие-то данные которые характеризуют этот элемент дерева. При этом, если повторно выбрать элемент дерева, чтоб введенные данные снова отображались в таблице.
К примеру, справа на форме TreeView является перечнем автомобилей. При выборе кокретного автомобиля в этом дереве, слеве на форме в StringGrid показывается информация с датами когда этот автомобиль проходил техобслуживание.
Serebah вне форума   Ответить с цитированием
Старый 22.12.2010, 18:15   #2
Прик
Участник клуба
 
Регистрация: 08.09.2010
Сообщений: 871
Репутация: 266
По умолчанию

А данные по автомобилям и датам их обслуживания где находятся?
Прик вне форума   Ответить с цитированием
Старый 22.12.2010, 18:19   #3
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
Репутация: 10
По умолчанию

Название автомобиля находится в дереве, а даты обслуживания находятся в таблице. При выборе конкретного автомобиля в дереве, видим в таблице даты обслуживания и описание этого обслуживания. При выборе другого автомобиля в дереве, в таблице видим уже другие даты и описания по выбранному автомобилю.
Serebah вне форума   Ответить с цитированием
Старый 22.12.2010, 18:25   #4
Прик
Участник клуба
 
Регистрация: 08.09.2010
Сообщений: 871
Репутация: 266
По умолчанию

Цитата:
Мне надо, чтоб при выборе элемента дерева в таблицу вводились какие-то данные которые характеризуют этот элемент дерева
Я спрашиваю не про то что должно быть, а откуда вы берете (из какого источника) или откуда намереваетесь брать даты обслуживания, которые должны появляться в таблице?
Прик вне форума   Ответить с цитированием
Старый 22.12.2010, 18:27   #5
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
Репутация: 10
По умолчанию

Эти данные должны вводится вручную с клавиатуры в эту же таблицу. Таким образом, нужно чтоб данные в таблице были привязаны к конкретному элементу дерева.
Serebah вне форума   Ответить с цитированием
Старый 22.12.2010, 18:50   #6
Прик
Участник клуба
 
Регистрация: 08.09.2010
Сообщений: 871
Репутация: 266
По умолчанию

В каждом ноуде TreeView есть свойство Data (собственно, указатель на любой объект).
Не зная, конечно, всех тонкостей проекта решение обрисовать можно только примерно.
Объявить простой класс:
Код:

TAuto = class
  Dates : array of string; //если даты будут использоваться только в таблице, то 
        //хранить их в элементамх типа TDateTime нет необходимости
  Notes : array of string;
  procedure Add(aDate, aNote);
  destructor Destroy; //в деструкторе освобождаем память от элементов динамического массива
end;

После ввода даты и описания в таблицу в первую строку создается вышеописанный объект в его поля (массивы) добавляются данные, а ссылка (указатель) на сам объект заносится в свойство Data соответствующего ноуда.
Код:

TreeView1.Selected.Data := Auto; //Auto - здесь переменная нашего класса var Auto : TAuto;

Если нужно добавить дату обслуживания (с описанием), то проверяется привязан ли объект Auto к ноуду:
Код:

if TreeView1.Selected.Data <> nil then begin
  Auto := TAuto(TreeView1.Selected.Data);
  Auto.Add(date, note); 
end;

В общем, здесь нужен навык работы с дин.массивами.
И не забыть при закрытии приложения (или формы, как там в проекте должно быть) уничтожать созданные ранее объекты класса TAuto.
Прик вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как связать форму поиска с таблицей (Связь форм) Microshema Microsoft Office Access 1 24.06.2010 23:12
обьясните как связать TreeView и WebBrowser Above_men Помощь студентам 5 30.04.2010 14:41
как связать с главной таблицей другие таблицы Droid БД в Delphi 7 24.07.2008 13:36
Как работать с TreeView и таблицей базы данных? Ксюша Помощь студентам 2 24.05.2007 09:02
Как связать кнопку с таблицей Таня84 БД в Delphi 1 31.01.2007 15:02


10:51.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru