Здравствуйте, стоит задача сделать открытие формы с подробной информацией по двойному клику в DBGrid. То есть о выделенном информация. Используется SQLite3.
Как понял, нужно сделать модуль данных, но не понял какие именно невизуальные компоненты перенести на него, кроме datasource. Попробовал перенести всё, но не помогло. Сделал также отдельное окно для просмотра подробностей, и туда вставил DBEdit1. В нем в datasource указываю компонент datasource с модуля данных, и как понимаю в поле DataField надо внести от куда брать? то есть заголовок столбца таблицы. Но когда пытаюсь внести он пишет ошибку "Невозможно извлечь определение полей из набора данных".
Также сделал событие двойного клика в DBGrid и в нем showmodal формы для просмотра подробностей.
Заранее благодарен за любую помощь!
DBGrid подробности по двойному клику
Модератор: Модераторы
В директории лазаруса есть examples вней много директорий с примерами, рекомендую просмотреть все.
а искомое найдёте в database
а искомое найдёте в database
А в каком примере? Я просто смотрел и ничего даже близкого не нашёл
Модуль данных нужен если у вас многооконное приложение и некоторые задачи требуется обобщить: логирование, общие данные(справочные данные, настройки), общее подключение к БД..
Для начала можно им не пользоваться а размещать прямо на рабочей форме.
https://www.youtube.com/watch?v=pq2oCiJ ... 6-&index=1
Добавлено спустя 29 минут 8 секунд:
DBGrid переносили?
Data Module в Delphi(с матами - нецензурная лексика)14+
https://www.youtube.com/watch?v=sn8JFGPYHPY
Для начала можно им не пользоваться а размещать прямо на рабочей форме.
https://www.youtube.com/watch?v=pq2oCiJ ... 6-&index=1
Добавлено спустя 29 минут 8 секунд:
mrkaban писал(а):Попробовал перенести всё
DBGrid переносили?
Data Module в Delphi(с матами - нецензурная лексика)14+
https://www.youtube.com/watch?v=sn8JFGPYHPY
У DBGrid просто обрабатывается событие OnDblCkick. У меня так:
То есть сначала в переменную LocateID вызываемой формы заносится ID текущей записи в таблице БД (то есть ту, на которой даблкликнул пользователь), потом в этой форме уже при открытии переменная LocateID используется, чтоб спозиционировать курсор в своей таблице.
Код: Выделить всё
procedure TRutmForm.TMGridDblClick(Sender: TObject);
begin
TMEditorForm.LocateID:=DM1.RUTMQuery.FieldByName('ID').AsInteger;
TMEditorForm.ShowModal;
end;
То есть сначала в переменную LocateID вызываемой формы заносится ID текущей записи в таблице БД (то есть ту, на которой даблкликнул пользователь), потом в этой форме уже при открытии переменная LocateID используется, чтоб спозиционировать курсор в своей таблице.
olegy123 писал(а):Модуль данных нужен если у вас многооконное приложение и некоторые задачи требуется обобщить: логирование, общие данные(справочные данные, настройки), общее подключение к БД..
Для начала можно им не пользоваться а размещать прямо на рабочей форме.
https://www.youtube.com/watch?v=pq2oCiJ ... 6-&index=1
Добавлено спустя 29 минут 8 секунд:mrkaban писал(а):Попробовал перенести всё
DBGrid переносили?![]()
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 используется, чтоб спозиционировать курсор в своей таблице.
Как всё просто!)))) Спасибо большое! Помогло!)
