Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


【Delphi】起動しているフォーム情報の取得

今回は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が既に存在する場合は生成前にエラーで止めたい場合にも有効です。)

 

(ミガロ.情報マガジン「MIGARO News!!」Vol.183 2016年2月号より)