局所変数を保存、復元する

   
INF_Framework は ONnoji さん作成のフリーのライブラリです。
フォームに便利な機能を追加してくれます。
ここでは INF_Framework が適用されたフォーム の便利機能を、
簡単に利用できるように解説していきたいと思っています。
最新のライブラリ は次の通りです。
※ INF_Framework_第3.3版_改訂版(MkII) 基本セット for 桐9-2012 / 桐9s / 桐10 / 桐10s / 桐sSL
※ INF_Framework_第3.3版_改訂版(MkII) サンプル集 for 桐9-2012 / 桐9s / 桐10 / 桐10s / 桐sSL
ライブラリは 所定のサイト からダウンロードしてください。
※ 桐10 / 桐10s / 桐sSL で使用するには、ファイルのコンバートが必要です。 
更新日:2022年11月6日

INF_Fremework では 局所変数の値を保存、復元することができます。
指定した局所変数の値をフォームを閉じる際に保存し、次に起動する際に値を復元します。


クラシックINF_Framework の場合

1.
保存する局所変数を プロシージャ  INFprcStartup に記載する。
 
  以上のサンプルでは、294行目から続けて追加記載していきます。
292 &INFmSaveVariableNameList = &INFmSaveVariableNameList + #cond( &INFmSaveVariableNameList <> #u, &comma ) + " &EZWmFieldLock, &UTLSORTmDictionaryOrder, &UTLFLDmTextSelect"
293 条件 ( #バージョン番号 >= 10.1 .and #変数( "UImConvertLive" ) ) &INFmSaveVariableNameList = &INFmSaveVariableNameList + #cond( &INFmSaveVariableNameList <> #u, &comma ) + " &UImModernUse"
294 &INFmSaveVariableNameList = &INFmSaveVariableNameList + ", &変数名A, &変数名B, &変数名C"
  といった具合に &INFmSaveVariableNameList に "+" で追加していきます。
また変数名の区切りはコンマ(,)で、半角と全角のどちらでもOKです。 ※(注) 変数名リストの解説を参照

以上の手順だけで、フォームを閉じたときに 指定した局所変数の値が保存されて次回フォームを開いたときはその値が復元されます。

モダンINF_Framework の場合

2.
保存する局所変数を プロシージャ cmdStartupClick に記載して、フォーム起動時に実行させる。
 

2-1.
フォームを定義画面で開いてコマンドボタン "cmdStartup " をワークスペースに配置します。
 
  コマンドボタンの設定は以上の通りです。
 
2-2.
フォームの実行開始時コマンドに登録する。
 
   
 
2-3.
イベントファイルに "手続き定義開始 cmdStartupClick( ) " を準備する。
  記載内容は次の通りです。
 
   
255 手続き定義開始 cmdStartupClick( )
256  * 変数宣言 自動,文字列{ &icon, &title = "cmdStartupClick( )", &msg }
257  変数宣言 自動,数値 { &formWidth }
258  変数宣言 自動,文字列{ &formObjectName = #半角( "フォーム" ) }
259  条件 ( #変数( "INFmKnjForm" ) ) &formObjectName = #全角( &formObjectName )
260  
261  ** 幅を狭くしてフォームスクロールバーが現れ難くする
262  オブジェクト操作 &formObjectName{ &formWidth = フォームの幅 }
263  &formWidth = #int( &formWidth / 4 )
264  オブジェクト操作 &formObjectName{ フォームの幅 = &formWidth }
265  オブジェクト操作 &formObjectName{ &EZWmWfmWidth = フォームの幅 }
266  
267  ** &INFmSaveVariableNameList = &INFmSaveVariableNameList + "," + コンマで区切った変数名リスト
268  &INFmSaveVariableNameList = &INFmSaveVariableNameList + ", &変数名A, &変数名B, &変数名C"
269  
270 手続き定義終了

 


(注)変数名リストの解説

・ 変数名をコンマ(,)で区切った文字列 ※読点(、)は不可

・ コンマ記号(,)は全角でもOK

・ アンパサンド記号(&)は省略してOK ※アンパサンド記号(&)は全角でもOK

・ 配列変数の添え字は省略してOK    ※角カッコ([ ])は全角でもOK

・ 指定した変数が配列変数か否かは自動的に判定します

・ 配列変数と判定した場合には、その配列変数のすべての要素が対象になります

・ 変数名に付けられたアンパサンド記号(&)と添え字"[n]"は無視します

・ 変数名リストの文字列中に空白文字が幾つあってもOK ※trim(空白除去)します