如何根据编号(从键盘输入)创建可编辑字段?
How to create the editable field's according to their number (is inputted from the keyboard)?
我们决定创建一个矩阵计算器。需要为双数创建字段,这也是从键盘输入的。我们正在使用 Embarcadero® C++Builder 10.2。该程序必须仅使用 C++ 编写。
我的意思的一个例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Delete previous boxes, if any
for (size_t Col = 0; Col < FEdits.size(); Col++)
{
for (size_t Row = 0; Row < FEdits[Col].size(); Row++)
{
delete FEdits[Col][Row];
}
}
FEdits.clear();
// Generate new boxes
int Cols = StrToInt(ColsEdit->Text);
int Rows = StrToInt(RowsEdit->Text);
FEdits.resize(Cols);
for (int Col = 0; Col < Cols; Col++)
{
for (int Row = 0; Row < Rows; Row++)
{
TEdit * Edit = new TEdit(this);
Edit->Parent = this;
Edit->Top = 24 + Row * 32;
Edit->Left = 200 + Col * 64;
Edit->Width = 48;
FEdits[Col].push_back(Edit);
}
}
}
然后您可以使用 FEdits[Col][Row]
访问各个编辑框。 FEdits
应定义为表单字段:
std::vector<std::vector<TEdit *> > FEdits;
您需要在单元顶部包含 "vector":
#include <vector>
我们决定创建一个矩阵计算器。需要为双数创建字段,这也是从键盘输入的。我们正在使用 Embarcadero® C++Builder 10.2。该程序必须仅使用 C++ 编写。
我的意思的一个例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// Delete previous boxes, if any
for (size_t Col = 0; Col < FEdits.size(); Col++)
{
for (size_t Row = 0; Row < FEdits[Col].size(); Row++)
{
delete FEdits[Col][Row];
}
}
FEdits.clear();
// Generate new boxes
int Cols = StrToInt(ColsEdit->Text);
int Rows = StrToInt(RowsEdit->Text);
FEdits.resize(Cols);
for (int Col = 0; Col < Cols; Col++)
{
for (int Row = 0; Row < Rows; Row++)
{
TEdit * Edit = new TEdit(this);
Edit->Parent = this;
Edit->Top = 24 + Row * 32;
Edit->Left = 200 + Col * 64;
Edit->Width = 48;
FEdits[Col].push_back(Edit);
}
}
}
然后您可以使用 FEdits[Col][Row]
访问各个编辑框。 FEdits
应定义为表单字段:
std::vector<std::vector<TEdit *> > FEdits;
您需要在单元顶部包含 "vector":
#include <vector>