我正在用c++ Builder社区版制作一个简单的子手游戏,我的游戏由代表字母的按钮组成,如果字母没有出现在单词中,则您将失去生命,等等,等等。
但是,如果我为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";
    }

最佳答案

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

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

但是,您无需设置其Parent,即TButton将在其中直观显示的组件。因此,添加以下行:
this->chars[i]->Parent = this;

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

09-09 19:19