我正在用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;
注意:
Opacity
和Visible
的默认值为1
和true
,因此您无需显式设置它们。