今回はDelphi/400のアプリケーションで起動している
フォーム情報の取得方法についてご紹介いたします。
Delphi/400で作成するWindowsのアプリケーションでは、
単純に1フォーム(画面)で利用する場合もあれば、複数のフォームを利用する場合もあります。
複数のフォームを起動して利用する場合、フォーム同士での処理連携や同期などが行えると便利です。
そうした場合に便利なクラスがTScreenです。
Screen 変数ではアプリケーションのフォーム情報を取得することができます。
例えばScreen.FormCountで全てのフォーム数が把握できます。
これを応用すれば、起動中のフォーム情報を取得することも可能です。
// 例)
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
// 全てのフォームをループ
for i := 0 to Screen.FormCount - 1 do
begin
// アクティブ(起動中)のフォームのみ処理
if Screen.Forms[i].Visible = True then
begin
Showmessage(Screen.Forms[i].Name); // TFormの情報なら他のプロパティも確認可能
end;
end;
end;
特に動的なフォーム生成などを行い、複数フォームの管理が複雑になる場合には、
汎用的なプログラム制御などにご活用下さい。
(同じFormClassが既に存在する場合は生成前にエラーで止めたい場合にも有効です。)