Я предполагаю, что проблема в том, что 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
, который содержит список активных форм. Это может быть лучше, чем пользовательский список.
person
Daniel Rikowski
schedule
25.08.2009
current_form < max_forms
, чтобы предотвратить проблему проверки границ массива. - person Mark Pim   schedule 25.08.2009