Я использую следующий код добавлен в мой DBGrid - OnCellClick событиеDBGrid - OnCellClick & OnDblClick, возвращают форму/TBMemo, содержащий значение ячейки/колонки/s
procedure TForm2.DBGrid1CellClick(Column: TColumn);
begin
if dbmodule.comenziDataSet.Active then
begin
if not Assigned(dbgridCelulaForm) then
begin
dbgridCelulaForm := TdbgridCelulaForm.Create(Self);
dbgridCelulaForm.DBMemoCelula.DataSource := dbmodule.comenziSource;
end;
dbgridCelulaForm.Visible := False;
dbgridCelulaForm.Visible := True;
dbgridCelulaForm.DBMemoCelula.DataField := Column.FieldName;
dbgridCelulaForm.Caption := Format('%s/randul: %d',[Column.FieldName, DBGrid1.DataSource.DataSet.RecNo]);
end;
end;
dbgridCelulaForm = имя формы, содержащей TDBMemo
DBMemoCelula = имя из TDBMemo
dbmodule.comenziDataSet = comenziDataSet это имя DataSet
и dbmodule это имя data module
(единицы, подобные формы) - в DataSet
находится на data module
, поэтому, dbmodule.comenziDataSet dbmodule. comenziSource = Такой же, как набор данных, DataSource в модуле данных, источник имени comenziSource
Итак, что делает этот код:
Как только я щелкните ячейку на моем DBGrid
она всплывает form
(названный dbgridCelulaForm) который содержит TBMemo
(названный DBMemoCelula), и он показывает мне информацию, содержащуюся в этой ячейке (например, имя клиента или, что то, что держит ячейка в моем db)
Это хорошо, моя проблема в том, что я не могу выбрать строки сейчас в DBGrid
, ну, я могу, но как только я сделаю первое место, я нажимаю (ячейку, любое) на определенную строку, которую я хочу выбрать с помощью мыши, затем активируется ячейка, и появляется сообщение form
.
Можно ли использовать этот код в DBGrid
- OnDblClick
событие вместо OnCellClick
? Значение, когда я дважды щелкаю строку/ячейку, должен появиться form
и показать мне информацию, но дважды щелкните - не один клик.
Таким образом, я все еще могу выбрать строку и по-прежнему просматривать информацию в ячейке, если мне нужно.
Или любым другим способом/местом использования/получения этой функции. Любые мысли?
Я могу опубликовать видеоролик обо всем, если мое объяснение неоднозначно, и вы думаете, что это поможет, просто скажите мне в комментарии/ответе.
Кроме того, я использую компоненты RAD Studio 10 Seattle и dbexpress для базы данных - если это помогает.
Спасибо!
Нет неоднозначности вообще ... Я так реализован схожую функциональность через кнопку редактирования столбцов сетки - стреляет OnEditButtonClick событие на сетке. Установите стиль кнопки cbsEllipsis, чтобы было очевидно, что при нажатии на него появляется диалоговое окно. Может также запускаться с помощью Alt + Down. –
Здравствуйте, спасибо за ваш ответ. Я уже использую OnEditButtonClick для чего-то другого, поэтому не могу этого использовать. Ответ Мартина помогает, так же, как и ваш комментарий SelectedField, спасибо! – Petzy