【问题标题】:Using commands concerning DBGrid from the main form in another form以另一种形式在主窗体中使用有关 DBGrid 的命令
【发布时间】:2011-05-04 17:54:47
【问题描述】:

我正在制作一个用于汽车零件店的简单程序。以下是它的外观: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 字段中显示其内容。

谁能告诉我怎么做?

谢谢!

【问题讨论】:

    标签: delphi dbgrid tform


    【解决方案1】:

    只需将TDBEdits 添加到TForm2,并将它们连接到DBGrid 所使用的相同DataSource。它们将自动显示在DBGrid 中选择的同一行的内容,您可以编辑或插入DataSource's DataSet 并让新的或更改的数据自动出现在DBGrid 中。

    【讨论】:

    • 感谢您的回答!我尝试这样做,但是当我将 TDBEdit 添加到 TForm2 并尝试为其分配与 TDBgrid 相同的 DataSource 时,它​​不会出现在数据源列表中。我使用的是 Delphi 6,这可能是个问题吗?
    • 您必须将包含DataSource 的单元添加到TForm2 的uses 子句(interface,或top,uses 子句)。它在 Delphi 中一直运行良好,一直到版本 1。
    【解决方案2】:

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

    • 如果您将小窗口中的 DBEdits 链接到与 DBGrid 相同的 DataSource,则一切就绪

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

    更新

    为了使数据源在 Form2 中可见,unit 使 Form2 的单位使用 Form1 的单位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 2019-03-09
      • 2021-05-13
      • 2019-05-30
      相关资源
      最近更新 更多