【发布时间】:2016-08-19 14:21:18
【问题描述】:
我需要我的一些表单类实现相同的功能。
(我已经放弃了将这个函数添加到普通锚定表单的想法,因为我不想添加对我的大多数表单无用的函数。)
所以...我考虑过使用接口。
IMyInterface = interface
procedure ShowHello();
end;
var
MyForm : TMyForm;
MyInterface : IMyInterface;
begin
MyForm := TMyForm.Create(Self);
MyInterface := MyForm;
//...
end;
在这样的简单情况下,它可以正常工作,但我的应用程序使用动态包,并且我正在使用“GetClass”函数来获取表单类。 我尝试如下:
var
MyForm : TForm;
MyInterface : IMyInterface;
begin
MyForm := TForm(GetClass('TMyForm').Create());
MyInterface := MyForm;
end;
它会导致“不兼容的类型:'IMyInterface' and 'TForm'”错误。 有没有办法使用接口来实现我的目标,或者尝试其他方式会更好?
【问题讨论】: