Я думаю, проблема в том, что fNumber
имеет частный доступ.
В зависимости от назначения этого поля, одним из решений может быть создание свойства для получения доступа на запись:
property Number: Integer read FNumber write FNumber;
Тогда вы можете выполнить задание:
form_array[current_form].Number := Number;
О глобальных переменных:
Если это на самом деле проблема, а FNumber
- это «глобальная» переменная, о которой вы говорите, то вы используете неправильные слова. FNumber
является полем и принадлежит форме. Члены формы не являются глобальными.
Посмотрите на источник вашей формы. Если он был сгенерирован в Delphi IDE, под ним находится объявление переменной:
end; // End of TForm1
var
Form1: TForm1;
implementation
Form1
- это настоящая глобальная переменная, потому что она существует в интерфейсе модуля и вне любого класса, и вы можете получить доступ из любого места (в общем, не очень хорошая вещь), как для FNumber
, вам сначала нужен доступ к экземпляр формы.
PS:
Я не знаю, что именно вы пытаетесь достичь, но, возможно, вы можете взглянуть на Screen.Forms
, который предоставляет список активных форм. Это может быть лучше, чем пользовательский список.