2013-03-15 64 views
3

非常基本的C++ Builder问题。我想在运行时创建一个TButton。我本来以为下面的代码将做到这一点,但我看到的形式没有按钮:如何以编程方式在运行时使用C++ Builder构造组件?

__fastcall TForm2::TForm2(TComponent* Owner): TForm(Owner) 
{ 
    TButton* b = new TButton(this); 
    b->Height = 100; 
    b->Width = 100; 
    b->Left = 0; 
    b->Top = 0; 
    b->Caption = "Testing"; 
    b->Visible = true; 
    b->Enabled = true; 
} 

感谢您的帮助!

回答

4

您需要设置按钮的Parent(在它显示在表面):

b->Parent = this; 
+0

卫生署! (我说这是非常基本的)谢谢肯。 – user1643809 2013-03-15 23:52:16

+0

没问题。对于VCL(这意味着Delphi和C++ Builder)的人来说,这是一个常见的问题。 :-) – 2013-03-15 23:53:39

+0

要添加一些解释:VCL控件安排在父子层次结构中(每个控件都有零个或多个子项)。这种关系仅仅是为了绘画的目的:层次结构的顶层是窗口,并且它将有许多控件作为它的子项,并且每个子项都可能有自己的子项等等。所以要绘制窗口,主循环会告诉主窗口绘制自己;然后主窗口自行绘制,然后调用其每个子项的绘图函数。 – 2014-12-21 23:30:19

相关问题