读书人

Delphi MDI程序 父窗体怎么调用当前活

发布时间: 2013-01-28 11:49:56 作者: rapoo

Delphi MDI程序 父窗体如何调用当前活动子窗体的函数/过程
一个MDI文本文件编辑器
打开了N个子窗体
子窗体的.pas文件有一些public的过程和函数
我想在父窗体调用当前活动的子窗体函数
我用Self.ActiveChildForm无法调用
直接frmEdit.xxxx运行出错
求大家指导,谢谢! delphi mdi
[解决办法]
将子窗口的函数定义为类函数
calss function a(const s: string): Boolean;
[解决办法]
有两种解决办法,一种就是上楼说的,定义成class function静态方法,第二种就是普通的方法:

var
AForm : TForm;
begin
AForm := Self.ActiveMDIChild;
if AForm <> nil then
(AForm as TForm2).func('Hello');
end;

这两种方法都必须在MDI窗体中uses子窗体。
[解决办法]
静态方法就一句话:
  TForm2.func2(1);

form2窗体两个被调方法
  TForm2 = class(TForm)
private
{ Private declarations }
public
function func(Astring : string) : Boolean;
class function func2(AInteger : Integer) : Boolean;
{ Public declarations }
end;

读书人网 >.NET

热点推荐