我正在C ++ Builder中开发IOS应用程序。我的问题是如何在for循环中构建TImages。我公开宣布了这个载体:
#include <vector>
std::vector<TImage*> Image(c); // public declaration
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for (int i = 0; i < c ; i++){
c = 5 // c should be send to te array
Image[i] = new TImage(this); // I tried it this way but when i click the button i get an acess violence error
Image[i]->Parent = BoardItem ;
Image[i]->Height = 20 ;
Image[i]->Width = 20 ;
}
}
那么如何使用矢量在for循环中创建图像?
Dynamic alocation an array of Images in C++ Builder我查找了该问题的最后一个答案,但没有描述如何在循环中完成。
答案 0 :(得分:2)
// c should be send to te array
如果更改变量c
值,则不会更改数组的大小。
您必须在resize()
向量上调用Image
来更改大小,但它并不适合。更好地写点像
void TForm1::ClearImage() {
for (int i = 0; i < Image.size(); ++i) {
delete Image[i];
}
Image.clear();
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ClearImage();
c=5;
for (int i = 0; i < c ; i++){
Image.push_back(new TImage(this));
Image.back()->Parent = BoardItem ;
Image.back()->Height = 20 ;
Image.back()->Width = 20 ;
}
}