小编Jef*_*son的帖子

为什么在通过元类类工厂实例化时不会调用派生的构造函数?

我正在尝试创建我所理解的Delphi 2007中的类工厂.我想将派生类类型传递给函数并让它构造该类类型的对象.

我找到了一些很好的参考资料,例如如何从类引用中创建Delphi对象并确保构造函数执行?,但我还是不能让它工作得很好.在下面的测试中,我无法让它调用派生构造函数,即使调试器告诉我oClass是TMyDerived.

我觉得我对这里的一些基本内容感到困惑,可以使用一些解释.谢谢.

program ClassFactoryTest;
{$APPTYPE CONSOLE}
uses
  SysUtils;

//  BASE CLASS
type
  TMyBase = class(TObject)
    bBaseFlag : boolean;
    constructor Create; virtual;
  end;
  TMyBaseClass = class of TMyBase;

constructor TMyBase.Create;
begin
  bBaseFlag := false;
end;

//  DERIVED CLASS
type
  TMyDerived = class(TMyBase)
    bDerivedFlag : boolean;
    constructor Create;
  end;

constructor TMyDerived.Create;
begin
  inherited;
  bDerivedFlag := false;
end;

var
  oClass: TMyBaseClass;
  oBaseInstance, oDerivedInstance: TMyBase;
begin
  oClass := TMyBase;
  oBaseInstance := oClass.Create;

  oClass := TMyDerived;
  oDerivedInstance := oClass.Create;  // <-- …
Run Code Online (Sandbox Code Playgroud)

delphi constructor class

6
推荐指数
1
解决办法
313
查看次数

如何选择Django表单中的文件夹?

有一种简单的方法允许用户从Django表单中选择一个文件夹吗?我想使用与FileField相同的小部件,但只允许用户选择一个文件夹,以便我可以处理该文件夹中的所有文件.

谢谢.

forms django

5
推荐指数
1
解决办法
1890
查看次数

标签 统计

class ×1

constructor ×1

delphi ×1

django ×1

forms ×1