我正在用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";
}
答案 0 :(得分:6)
您构造TButton
设置其所有者(负责删除它的组件)。
this->chars[i] = new TButton(this);
但是您没有设置其Parent
,这是TButton
会在其中直观显示的组件。因此,添加以下行:
this->chars[i]->Parent = this;
注意:Opacity
和Visible
的默认值为1
和true
,因此您无需明确设置它们。