DBGrid подробности по двойному клику

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

DBGrid подробности по двойному клику

Сообщение mrkaban »

Здравствуйте, стоит задача сделать открытие формы с подробной информацией по двойному клику в DBGrid. То есть о выделенном информация. Используется SQLite3.

Как понял, нужно сделать модуль данных, но не понял какие именно невизуальные компоненты перенести на него, кроме datasource. Попробовал перенести всё, но не помогло. Сделал также отдельное окно для просмотра подробностей, и туда вставил DBEdit1. В нем в datasource указываю компонент datasource с модуля данных, и как понимаю в поле DataField надо внести от куда брать? то есть заголовок столбца таблицы. Но когда пытаюсь внести он пишет ошибку "Невозможно извлечь определение полей из набора данных".

Также сделал событие двойного клика в DBGrid и в нем showmodal формы для просмотра подробностей.

Заранее благодарен за любую помощь!
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

В директории лазаруса есть examples вней много директорий с примерами, рекомендую просмотреть все.
а искомое найдёте в database
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Сообщение mrkaban »

А в каком примере? Я просто смотрел и ничего даже близкого не нашёл
olegy123
долгожитель
Сообщения: 1643
Зарегистрирован: 25.02.2016 11:10:20

Сообщение olegy123 »

Модуль данных нужен если у вас многооконное приложение и некоторые задачи требуется обобщить: логирование, общие данные(справочные данные, настройки), общее подключение к БД..
Для начала можно им не пользоваться а размещать прямо на рабочей форме.

https://www.youtube.com/watch?v=pq2oCiJ ... 6-&index=1

Добавлено спустя 29 минут 8 секунд:
mrkaban писал(а):Попробовал перенести всё

DBGrid переносили? :D

Data Module в Delphi(с матами - нецензурная лексика)14+
https://www.youtube.com/watch?v=sn8JFGPYHPY
java73
постоялец
Сообщения: 257
Зарегистрирован: 21.11.2013 09:08:10

Сообщение java73 »

У DBGrid просто обрабатывается событие OnDblCkick. У меня так:

Код: Выделить всё

procedure TRutmForm.TMGridDblClick(Sender: TObject);
begin
  TMEditorForm.LocateID:=DM1.RUTMQuery.FieldByName('ID').AsInteger;
  TMEditorForm.ShowModal;
end;

То есть сначала в переменную LocateID вызываемой формы заносится ID текущей записи в таблице БД (то есть ту, на которой даблкликнул пользователь), потом в этой форме уже при открытии переменная LocateID используется, чтоб спозиционировать курсор в своей таблице.
mrkaban
новенький
Сообщения: 55
Зарегистрирован: 28.05.2016 08:48:18
Контактная информация:

Сообщение mrkaban »

olegy123 писал(а):Модуль данных нужен если у вас многооконное приложение и некоторые задачи требуется обобщить: логирование, общие данные(справочные данные, настройки), общее подключение к БД..
Для начала можно им не пользоваться а размещать прямо на рабочей форме.

https://www.youtube.com/watch?v=pq2oCiJ ... 6-&index=1

Добавлено спустя 29 минут 8 секунд:
mrkaban писал(а):Попробовал перенести всё

DBGrid переносили? :D

Data Module в Delphi(с матами - нецензурная лексика)14+
https://www.youtube.com/watch?v=sn8JFGPYHPY


DBGrid в дата модуль не переносил))))))))) во второй форме пытался мучать DBEdit)))

Спасибо, буду изучать видео!)

Добавлено спустя 29 секунд:
java73 писал(а):У DBGrid просто обрабатывается событие OnDblCkick. У меня так:

Код: Выделить всё

procedure TRutmForm.TMGridDblClick(Sender: TObject);
begin
  TMEditorForm.LocateID:=DM1.RUTMQuery.FieldByName('ID').AsInteger;
  TMEditorForm.ShowModal;
end;

То есть сначала в переменную LocateID вызываемой формы заносится ID текущей записи в таблице БД (то есть ту, на которой даблкликнул пользователь), потом в этой форме уже при открытии переменная LocateID используется, чтоб спозиционировать курсор в своей таблице.


Спасибо, очень интересно! Попробую=)

Добавлено спустя 32 минуты 1 секунду:
java73 писал(а):У DBGrid просто обрабатывается событие OnDblCkick. У меня так:

Код: Выделить всё

procedure TRutmForm.TMGridDblClick(Sender: TObject);
begin
  TMEditorForm.LocateID:=DM1.RUTMQuery.FieldByName('ID').AsInteger;
  TMEditorForm.ShowModal;
end;

То есть сначала в переменную LocateID вызываемой формы заносится ID текущей записи в таблице БД (то есть ту, на которой даблкликнул пользователь), потом в этой форме уже при открытии переменная LocateID используется, чтоб спозиционировать курсор в своей таблице.


Как всё просто!)))) Спасибо большое! Помогло!)
Ответить