以另一种形式使用来自主窗体的DBGrid命令

时间:2011-05-04 17:54:48

标签: delphi dbgrid tform

我正在制作一个用于汽车零件店的简单程序。以下是它的外观:Link

问题是左边的小窗口。双击主窗口中DBGrid中的任何行时应该打开它,它应该在DBEdit字段中显示所有选定项的特征。如果单击“保存”按钮,则应将DBEdit字段中的更改保存到数据库中,否则应忽略更改。

我通过使用以下代码双击DBGrid中的字段来成功打开另一个表单:

    procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
    if not Assigned(Form2)
            then Form2 := TForm2.Create(Application);
    Form2.Show;
    end;

现在唯一的问题是如何让程序检测DBGrid中的哪一行被选中,然后在较小的窗口中的DBEdit字段中显示其内容。

有人能告诉我怎么做吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

只需将TDBEdits添加到TForm2,然后将其与DataSource正在使用的DBGrid相关联即可。它们会自动显示DBGrid中所选行的同一行的内容,您可以编辑或插入DataSource's DataSet,并在DBGrid中显示新的或更改的数据{1}}自动。

答案 1 :(得分:1)

有很多方法可以实现这一目标。我将描述两个:

  • 如果您将小窗口中的DBEdits链接到与DBGrid相同的DataSource,那么您已全部设置

OR

  • 您可以将DBGrid1DblClick内的任何信息从Form1传递到Form2。这个选项本身就有很多种可能性。

<强>更新

要使Form2中的DataSource可见,请使Form2的单元使用Form1的单元。