为什么我的代码没有显示TButton的数组?

时间:2019-07-04 21:52:03

标签: c++ c++builder

我正在用c ++ Builder社区版制作一个简单的hangman游戏,我的游戏由代表字母的按钮组成,如果字母没有出现在单词中,则您将失去生命,等等,等等。 .. 但是,如果我为abced中的每个字母都创建一个TButton,那我的代码会有些重复。因此,我决定制作一个TButton数组,令我惊讶的是,当我对所有代码进行编码并且其中任何一个以我的形式出现时:c。 如果有人可以帮助我,我会很高兴哈哈。

Tgame课...

class Tgame : public TForm
{
__published:    // IDE-managed Components
    TText *word;
private:    // User declarations
    TButton* chars[23];
public:     // User declarations
    __fastcall Tgame(TComponent* Owner);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
};

还有构造函数的实现...

for(int i = 0; i < 23; ++i) {
        this->chars[i] = new TButton(this);
        this->chars[i]->Height = 33;
        this->chars[i]->Width = 49;
        this->chars[i]->Position->X = startX;
        this->chars[i]->Position->Y = startY;
        startX += difX;
        startY += difY;
        this->chars[i]->Opacity = 1;
        this->chars[i]->Visible = true;
        this->chars[i]->Text = "A";
    }

1 个答案:

答案 0 :(得分:6)

您构造TButton设置其所有者(负责删除它的组件)。

this->chars[i] = new TButton(this);

但是您没有设置其Parent,这是TButton会在其中直观显示的组件。因此,添加以下行:

this->chars[i]->Parent = this;

注意:OpacityVisible的默认值为1true,因此您无需明确设置它们。