可以在运行时通过将其类名指定为字符串来创建控件吗?

问题描述 投票:0回答:1

代替,

TButton *button = new TButton(MyForm);

一个人可以做这样的事情吗?

TControl *control = new TControl(MyForm, "TButton");
c++builder rtti
1个回答
0
投票

您可以创建一个辅助函数模板:

template<typename T>
T* CreateWithName(TComponent* AOwner, String name) {
    T* obj = new T(AOwner);
    obj->Name = name;
    return obj;
}

然后称呼它:

TButton* button = CreateWithName<TButton>(MyForm, "TButton");
© www.soinside.com 2019 - 2024. All rights reserved.