delphi - 查找来电者表单名称
问题描述
我创建了一个自定义表单,用于重新启动一个对话框。然后我在一个特殊的单元中重载了MessageDlg函数来调用这个表单。太好了,它的工作正常。当我调用表单时,它显示为模态,在这个模态中我需要调用者表单名称。
示例:FormA 调用重载 MessageDlg 的单元 U_Functions。然后 U_Functions 调用 FormDLG 并显示出来。在 FormDLG 中,我执行函数“GetParentFormName”并返回“FormA”。
我已经尝试过 GetForegroundWindow,但它返回与 Self 相同的东西。Self.Parent 为空。如何获取模态调用者的参考(TForm)?
流程示例
甲型:
procedure TFormA.Button1Click(Sender: TObject);
begin
MessageDlg('Call Dialog', mtWarning, [mbOK], 0);
end;
U_Functions
function MessageDlg(Msg: String; Icone: TMsgDlgType; Botoes: TMsgDlgButtons): Integer; overload;
begin
Result := FormDialog.fn_ShowMessage(msg, Icone, Botoes);
end;
窗体对话框
function FormDialog.fn_ShowMessage(Msg: String; Icone: TMsgDlgType; Botoes: TMsgDlgButtons): Integer;
begin
// Get FormA's name
end;
解决方案
Remy Lebeau 的方法 (Screen.ActiveForm) 完全符合我的要求。非常感谢您的参与。
由于有一个中间单元,它收集调用者姓名,并通过参数发送到第三种形式(对话框)。
推荐阅读
- php - php 变量值就像零一样
- r - 如何创建包含点组的超帧,每个点都与 R 中的唯一窗口相关联
- r - 向带有两个 y 轴的绘图的一个 y 轴添加刻度线
- javascript - 代表 Highchart 的第二个弹出窗口不适用于传单 geojson 多边形
- php - 新的 CentOS 7 服务器,PHP 不只在索引页上执行
- sockets - 什么是 .sock 文件以及如何与它们通信
- pytest - 传递多个参数以在 Pytest 中实例化多个对象
- ruby-on-rails - 打印显示空白对角线截止
- node.js - Confluence-api 查询
- mqtt - 打开端口时,Mosquitto 状态错误权限被拒绝