Topic: Открытие определенной формы в одной строке TableGrid.

Всем доброго дня!)
Есть вопрос.
У меня на форме есть Table Grid.
На нем есть три столбца.
К примеру - "имя", "телефон", "комментарий".
Я хочу реализовать такой функционал, чтобы:
При двойном клике на строку из столбца "имя" открывалось окно "1",
При  двойном клике на строку "телефон" открывалось окно "2"
А при  двойном клике на строку "комментарий" открывалось окно 3.
Важно:
Имена "имя", "телефон", "комментарий" я сделал для примера. На самом деле в строке есть главная строчка "имя",  а остальные две строки - это связи из других таблиц с этим именем.
Я не мастер объяснений, поэтому, что лучше объяснит суть скриншот.

In English:
Good day to all!)
There is a question.
I have a "Table Grid" on my form.
There are three columns on it.
For example - "name", "phone", "comment".
I want to implement such functionality so that:
When double-clicking on a row from the "name" column, the "1" window opened,
Double-clicking on the line "phone" opened window "2"
And double-clicking on the line "comment" opened window 3.
Important:
The names "name", "phone", "comment" I made for an example. In fact, there is a mainline "name" in the crown, and the other two rows are links from other tables with this name.
I'm not a master of explanations, so it's better to explain the essence in screenshot.

Post's attachments

Attachment icon Снимок экрана 2023-10-30 в 09.50.52.png 88.19 kb, 20 downloads since 2023-10-30 

Re: Открытие определенной формы в одной строке TableGrid.

Для открытия окон используйте обработчик события у таблицы OnCellDoubleClick (Sender: TObject; ACol, ARow: Integer);
Анализируйте ACol (номер колонки) и открывайте нужные окна:

case ACol of
1: Form1.Show;
2: Form2.Show;
3: Form3.Show;
else Form4.Show; 
end;
Визуальное программирование: блог и телеграм-канал.

Re: Открытие определенной формы в одной строке TableGrid.

k245 wrote:

Для открытия окон используйте обработчик события у таблицы OnCellDoubleClick (Sender: TObject; ACol, ARow: Integer);
Анализируйте ACol (номер колонки) и открывайте нужные окна:

case ACol of
1: Form1.Show;
2: Form2.Show;
3: Form3.Show;
else Form4.Show; 
end;

Большое спасибо! А не подскажите как я могу вызвать не просто другую форму, а связанные данные выделеной строки?
К примеру:
Строка содержит в себе данные из таблицы "1", а так же связана с таблицей "2" (В которой хранятся картинки, например)
И нужно, чтобы при клике на столбец 1 строки 1, открывалась форма с данными из таблицы "1", при клике на столбец 2 строки 1, открывалась форма со связанными с этой строкой данными - к примеру форма с отображением картинки, связанной с записью.
Надеюсь, что понятно объяснил и Вы сможете направить меня...

Re: Открытие определенной формы в одной строке TableGrid.

sidhillsaid wrote:

Большое спасибо! А не подскажите как я могу вызвать не просто другую форму, а связанные данные выделеной строки?
К примеру:
Строка содержит в себе данные из таблицы "1", а так же связана с таблицей "2" (В которой хранятся картинки, например)
И нужно, чтобы при клике на столбец 1 строки 1, открывалась форма с данными из таблицы "1", при клике на столбец 2 строки 1, открывалась форма со связанными с этой строкой данными - к примеру форма с отображением картинки, связанной с записью.
Надеюсь, что понятно объяснил и Вы сможете направить меня...

Сложно ответить что-то конкретно на абстрактный вопрос.
Скорей всего вам поможет процедура ShowRecord, в качестве параметров передаётся форма редактирования, имя таблицы и ID записи.
ID записи можно извлечь функцией dbIndexToID, для связанных таблиц применить соответствующий SQL-запрос
Подробней про свойства и методы таблицы можно прочитать здесь: http://myvisualdatabase.com/help_ru/scr … egrid.html

Визуальное программирование: блог и телеграм-канал.