- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做这样的事情:
function CreateIfForm ( const nClass : TClass ) : TForm;
begin
if not ( nClass is TFormClass ) then
raise Exception.Create( 'Not a form class' );
Result := ( nClass as TFormClass ).Create( Application );
end;
这会产生错误“运算符不适用于此操作数类型”。我使用的是 Delphi 7。
最佳答案
首先,您应该检查是否可以更改函数以仅接受表单类:
function CreateIfForm(const nClass: TFormClass): TForm;
并绕过类型检查和转换的需要。
如果这不可能,您可以使用 InheritsFrom
:
function CreateIfForm(const nClass: TClass): TForm;
begin
if not nClass.InheritsFrom(TForm) then
raise Exception.Create('Not a form class');
Result := TFormClass(nClass).Create(Application);
end;
关于delphi - 如何判断一个 TClass 是否派生自另一个 TClass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228581/
我正在尝试做这样的事情: function CreateIfForm ( const nClass : TClass ) : TForm; begin if not ( nClass is TFo
遇到问题,其中 MyObj.classnameis(TMyClass.classname) 为 true 并且 TMyClass(MyObj) 有效,但 (MyObj as TMyclass).doS
我正在尝试创建一个通用的“更新表达式构建器”——一个可以传递的对象,用于指示需要为哪些字段分配什么值。我所做的是: public class UpdateExpression : Dictionary
我对抽象类和接口(interface)具有相同签名方法的这种情况感到困惑。派生类中会有多少个定义?调用将如何解决? public abstract class AbClass { public
我需要我的一些表单类实现相同的功能。 (我已经放弃了将此函数添加到通用锚定表单的想法,因为我不想添加一个对我的大多数表单都无用的函数。) 所以...我考虑使用接口(interface)。 IMyInt
我有以下方法,使用“经典”bcc32 编译器可以很好地编译,但无法使用 Rad Studio 10 Clang 编译器进行编译。 TPersistentClass & __fastcall TServ
我是一名优秀的程序员,十分优秀!