【发布时间】:2010-08-22 14:43:39
【问题描述】:
我有一个类定义为:
TfraFrame = class(TFrame);
那么我有几个子类都继承自这个,例如:
TfraUsers = class(TfraFrame);
TfraGroups = class(TfraFrame);
TfraMenus = class(TfraFrame);
在我的主要形式中,我将变量声明为:
var
fraUsers: TfraUsers;
fraGroups: TfraGroups;
fraMenus: TfraMenus;
现在我的问题是,我想要一个函数来控制每个类的实例的生成。每个类应该只有一个实例,但我只想在用户需要时创建实例。
我想这样传递变量:
procedure ShowFrame(Frame: TfraFrame)
begin
if Frame = nil then
begin
Frame := TfraFrame.Create(self);
Frame.Init(Panel1);
end;
Frame.Show;
end;
然后这样称呼它;
ShowFrame(fraUsers);
我期待它创建一个 TfraUsers 的实例(因为这是 fraUsers 被声明的内容),但是,我怀疑它可能正在创建一个 fraFrame 的实例。
有没有办法创建变量声明为的类型的实例?
【问题讨论】: