我正在尝试创建我所理解的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) 有一种简单的方法允许用户从Django表单中选择一个文件夹吗?我想使用与FileField相同的小部件,但只允许用户选择一个文件夹,以便我可以处理该文件夹中的所有文件.
谢谢.