Бесплатно Pascal - Создать массив ранее объявленных элементов / объектов - PullRequest
0 голосов
/ 27 февраля 2020

Использование Lazarus - бесплатно Pascal под Win7 64Bit, Laz Version 2.0.2, fp c 3.0.4, я хотел бы знать, возможно ли создать массив ранее объявленных флажков TCheckBox или TEdit, или любой другой элемент, который мне нужен.

Использование чего-то подобного не компилируется:

var
  myarray: array[1..2] of TCheckBox = (CheckBox1, CheckBox2);  //CheckBox1 has been declared earlier as TCheckBox

В то время как этот компилируется нормально

var
  myarray: array[1..2] of TCheckBox;
begin
  myarray[1]:= CheckBox1;
  myarray[2]:= CheckBox2; 

Если бы у меня было 50 CheckBox, я хотел бы избежать назначения всех из них на myarray по одному в begin.

Возможно ли myarray значения, которые будут даны во время объявления переменной, в секции var?

1 Ответ

3 голосов
/ 27 февраля 2020

В разделе объявлений вы не можете использовать переменные, только константы. Однако вы можете использовать dynamici c конструктор массива :

type
    TCheckBoxArray = array of TCheckBox;
var
    myarray: TCheckBoxArray;
begin
    myarray := TCheckBoxArray.Create(CheckBox1, CheckBox2);
...