fNumber
問題は、プライベートアクセスがあることだと思います。
このフィールドの目的に応じて、1 つの解決策として、書き込みアクセスを取得するためのプロパティを作成することができます。
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
、アクティブなフォームのリストを提供するものを見ることができるかもしれません。これは、カスタム リストよりも適している可能性があります。