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

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

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

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

Сообщение mrkaban » 15.03.2017 19:49:18

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

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

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

Заранее благодарен за любую помощь!
mrkaban
новенький
 
Сообщения: 46
Зарегистрирован: 28.05.2016 09:48:18

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

Сообщение vitaly_l » 15.03.2017 20:16:59

В директории лазаруса есть examples вней много директорий с примерами, рекомендую просмотреть все.
а искомое найдёте в database
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2696
Зарегистрирован: 31.01.2012 16:41:41

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

Сообщение mrkaban » 16.03.2017 08:51:06

А в каком примере? Я просто смотрел и ничего даже близкого не нашёл
mrkaban
новенький
 
Сообщения: 46
Зарегистрирован: 28.05.2016 09:48:18

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

Сообщение olegy123 » 16.03.2017 10:03:31

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

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
olegy123
постоялец
 
Сообщения: 349
Зарегистрирован: 25.02.2016 12:10:20

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

Сообщение java73 » 16.03.2017 11:38:44

У DBGrid просто обрабатывается событие OnDblCkick. У меня так:
Код: Выделить всё
procedure TRutmForm.TMGridDblClick(Sender: TObject);
begin
  TMEditorForm.LocateID:=DM1.RUTMQuery.FieldByName('ID').AsInteger;
  TMEditorForm.ShowModal;
end;

То есть сначала в переменную LocateID вызываемой формы заносится ID текущей записи в таблице БД (то есть ту, на которой даблкликнул пользователь), потом в этой форме уже при открытии переменная LocateID используется, чтоб спозиционировать курсор в своей таблице.
java73
постоялец
 
Сообщения: 187
Зарегистрирован: 21.11.2013 09:08:10

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

Сообщение mrkaban » 16.03.2017 16:42:49

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 используется, чтоб спозиционировать курсор в своей таблице.


Как всё просто!)))) Спасибо большое! Помогло!)
mrkaban
новенький
 
Сообщения: 46
Зарегистрирован: 28.05.2016 09:48:18


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru
cron