Как создать редактируемые поля в соответствии с их количеством (вводится с клавиатуры)? - PullRequest
0 голосов
/ 16 ноября 2018

Мы решили создать матричный калькулятор.Необходимо создать поля для двойных чисел, которые также вводятся с клавиатуры.Мы работаем в Embarcadero® C ++ Builder 10.2.Программа должна быть написана только на C ++.

Пример того, что я имею в виду: An example

1 Ответ

0 голосов
/ 16 ноября 2018
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;

Вы должны включить «вектор» в верхней части вашего блока:

#include <vector>

enter image description here

...