我有一个代码,显示特定DBGrid的搜索表单,该表格放在另一个表单中(TSearchGridForm
的调用者表单):
procedure TSearchGridForm.FormDeactivate(Sender: TObject);
begin
// Pseudo
if NewActiveControl <> CallerForm.DBGrid then
Close;
end;
TSearchGridForm
由具有.Show
(而非模态)的呼叫者表单激活,当它被停用时,我想仅在新的活动控件&lt;&gt;时才关闭/隐藏它。 CallerForm.DBGrid
。
只有当用户点击来电者表单上的DBGrid
时,搜索表单仍然可见,否则我需要关闭它。
我该怎么做?
答案 0 :(得分:5)
Delphi的TScreen
对象包含事件OnActiveControlChange和OnActiveFormChange。您可以为这些设置事件处理程序以监视更改并对其作出反应。
有关详细信息,请参阅D7在线帮助。有两个事件的Delphi VCL代码示例。