我使用添加到我的DBGrid以下代码 - OnCellClick事件的DBGrid - OnCellClick&onfocus此,返回包含一个形式/ TBMemo细胞/列值/秒
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 =相同的数据集,数据模块上的数据源,源被命名为comenziSource
好了,所以这段代码的含义:
当我点击我的DBGrid
它会弹出一个细胞form
(名为dbgridCelulaForm)其中包含一个TBMemo
(名为DBMemoCelula),它向我显示包含在该单元格中的信息(例如,客户名称,例如,或者任何单元格在我的数据库中)
这很好,我的问题是I现在不能在DBGrid
中选择行,嗯,我可以但是一旦我点击我想要用鼠标选择的特定行上的第一个位置(单元格,任何)时,然后单元格激活并弹出form
。
是否有可能在DBGrid
- OnDblClick
事件中使用此代码而不是OnCellClick
? 含义一旦我双击一行/单元form
应弹出并显示我的信息,但双击 - 而不是单击。
这样,我仍然可以选择行,并在需要时仍可查看单元中的信息。
或任何其他方式/地方使用/接收此功能。 有什么想法?
如果我的解释不明确,而且您认为会有所帮助,只需在评论/答案中告诉我,我可以发布所有内容的快速视频。
此外,我使用RAD Studio 10 Seattle和dbexpress组件来完成数据库 - 如果有帮助的话。
谢谢!
没有歧义在所有...我实现类似功能的方法是通过网格列的编辑按钮 - 火灾栅格上的OnEditButtonClick事件。将按钮样式设置为cbsEllipsis,以便在点击时弹出一个对话框。也可以用Alt + Down触发。 –
你好,谢谢你的回复。我已经在使用OnEditButtonClick来做其他事情,所以不能使用它。 Martyn的回答确实有帮助,您的SelectedField评论也一样,谢谢! – Petzy