我有代码显示特定 DBGrid 的搜索表单,该表单放置在另一种表单(TSearchGridForm 的调用方表单)中:procedure TSearchGridForm.FormDeactivate(Sender: TObject);begin // Pseudo if NewActiveControl <> CallerForm.DBGrid then Close;end;TSearchGridForm 由带有 .Show(不是 Modal)的调用者表单激活,当它被停用时,我只想在新的事件控件 CallerForm.DBGrid 时关闭/隐藏它。只有当用户点击调用者表单上的 DBGrid 时,搜索表单才应该保持可见,否则我需要关闭它。我怎样才能做到这一点? 最佳答案 Delphi 的 TScreen 对象有事件 OnActiveControlChange 和 OnActiveFormChange。您可以为这些设置事件处理程序以监视更改并对其使用react。有关详细信息,请参阅 D7 联机帮助。有使用这两个事件的 Delphi VCL 代码示例。关于delphi - Form OnDeactivate - 需要确定哪个是新的 Activated 控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37721652/
10-11 17:44