首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi MDI程序 父窗体怎么调用当前活动子窗体的函数/过程

2013-01-28 
Delphi MDI程序 父窗体如何调用当前活动子窗体的函数/过程一个MDI文本文件编辑器打开了N个子窗体子窗体的.

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;

热点排行