この記事で扱っていること
- 最後に実行していたウィンドウの状態で新規に実行する方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
プログラムを実行していて、何かの理由で一旦終了させ、後でもう一度再開する場合に、以前終了させていた状態と同じ表示状態にしたいということがあります。
恐らく一番やりやすい実装としてはiniファイルにこういった情報を残しておく方法であり、本記事ではそんなiniファイルへの状態の保存を介して、前回の実行状態を保持するようなプログラムの例を紹介しています。
どんな結果になるか
組み方の例なので、フロントパネルはどんなものでも構いません。
今回は、チャート表示器に適当な乱数を表示しているだけのプログラムとしています。
プログラムを実行して、ウィンドウのサイズを変更したりあるいはウィンドウの表示を最小化にした状態で右クリックして閉じたりします。
その後再びプログラムを実行すると、最後に実行していた状態のウィンドウサイズだったり最小化表示の状態で再度開くことができます。
プログラムの構造
iniファイルにウィンドウについての状態を記録しておくのがミソです。
iniファイルの操作はサブVIに任せ、iniファイルの読み書きを一つのサブVIで実行するようにしてメインのVIのブロックダイアグラムはだいぶすっきりした感じの見た目になります。
タイムアウトイベント以外のイベントは以下のようにしています。
ここで出てきたサブVIが今回の操作の中で重要で、iniファイルに設定を書き込んだり読み取ったりします。
以下は設定を書き込むためのプログラムです。(サブVIへの入力の「read?」がFalseの場合)
以下は設定を読み取るためのプログラムです。(サブVIへの入力の「read?」がTrueの場合)
VIとEXEの区別について
Iniファイルの扱いを考えるとき、特別こだわりがなければ、VIの状態であってもApplication.iniという名前でiniファイルを用意しておくのでいいと思います。
VIをプロジェクトエクスプローラのビルド仕様によってビルド、EXE化した場合についてもデフォルトではApplication.iniという名前でiniファイルが作成されます。
もし、VIの状態とEXEの状態とで動作を変えたい場合には、条件無効ストラクチャを駆使すれば対応できます。
無効ストラクチャにおいて、VIかEXEかの設定はRUN_TIME_ENGINEがTrueかFalseかで決まります。
これがTrueとなっているケースの中身は、そのプログラムがEXEとして実行している場合にのみ実行されます。
無効ストラクチャについては以下を参考にしてもらえると思います。
本記事では、最後に実行していたウィンドウの状態で新規に実行する方法を紹介しました。
Iniファイルを有効活用することで、プログラムの実行開始時の制御器やパラメタの設定だけでなく、実行の状態も定義できる例として参考になればうれしいです。
ここまで読んでいただきありがとうございました。
コメント