ソフトウェア起動時に思う事といえば、最後の状態をそのまま次の起動時に適応出来れば良いのになどと思う事はないでしょうか?他には、画像など外部から呼び出す時に自分の環境ではキチンと表示出来ているけど、配布先でもキチンと表示できてるのか心配な時ってありますよね。しかし、このような事はINIファイルやレジストリなどを使えば情報を保存できたり復元できたりします。理由がない限りレジストリへの保存はお勧めできませんので、ここではINIファイルを取り扱う事にします。
設定ファイルは 「○○.ini」
上の○○の部分には、拡張子が「.ini」
のフルパス(推奨*1)を指定します。しかし、既に思うのがフルパスで指定すると他の人のパソコンと自分の環境が違うから駄目ではないかなどと思いますよね?その通りです。自分の環境のパスを指定しても他の人のパソコンでは全く同じルートとは限りません。そんな時に使用するのが、「今の位置」関数を利用します。「今の位置」とは、ソフトを起動した「.exe」のあるパスを返してくれる関数なのです。つまり、作成したソフトウェアの「.exe」のある場所までのルートをフルパスでこの関数の中に入っているのです。それなので、この関数を使う事で自分の環境だろうと相手の環境であろうと「.exe」のあるディレクトリを正確に知ることが出来ます。
*1 相対パスなどでは知識がないと作業フォルダが変わった瞬間に読み込めなくなるおそれがあります。
設定ファイルは 「[今の位置]test.ini」
もし 設定ファイルは "存在する" なら
’存在する時の処理
変数は 設定(設定ファイルの「キー名」の「項目名」)
他なら
’存在しない時の処理
設定ファイルの「キー名」の「項目名」に、「値」を設定
もし終わり
基本的なINIファイルの取り扱いは上のようになります。良く見かけるのが、INIファイルがあるかないかを確認してないのが多いです。当然のことながら、存在しないファイルから設定を読み込もうとしても設定などはないのです。保存時には存在しない場合は自動で作成されますが、読込時には存在しないファイルは作成されないはずです。仮に出来たとしても、自分で決めたキー名、項目名、値などコンピュータに分かるはずもないのです。次は実際に使えるサンプルを載せてみます。
設定ファイルは 「[今の位置]set.ini」
もし 設定ファイルは "存在する" でないなら
’INIが存在しない時、初回起動時の設定 ※削除されても自動で復元する。
設定ファイルの「Img」の「Dir」に、「[今の位置]ico\」を設定
設定ファイルの「Window」の「Pos」に、「中央」を設定
設定ファイルの「Window」の「Size」に、「640,480」を設定
もし終わり
もし 設定(設定ファイルの「Img」の「Dir」)は "存在する" でないなら
「必要なイメージディレクトリが存在しません。終了します。」を警告で表示
終了
もし終わり
ウィンドウ1を使う
その大きさを設定(設定ファイルの「Window」の「Size」)に変えろ
その位置を設定(設定ファイルの「Window」の「Pos」)に変えろ
その表示をオンへ変えろ
待機
手順は ウィンドウ1を閉じる
設定ファイルの「Window」の「Size」に、「[ウィンドウ1の大きさ]」を設定
設定ファイルの「Window」の「Pos」に、「[ウィンドウ1の位置]」を設定
終了
終わり
上のサンプルを実行するには、コピペしてTTSneoデザイナへ貼り付けて適当な所に保存して実行して下さい。そのまま実行すると、ログインディレクトリのドキュメント内へ設定ファイルが保存されます。それでは説明します。INIファイルは「set.ini」の名目で起動したディレクトリの中に作成されます。初回起動時には存在しないので、適当な値を設定してINIファイルを作成、キーなどを設定しています。キーとは、設定の読込や保存したいグループみたいな物です。項目名とはグループの中の「どれ」と同じような物です。値は実際に保存や読み込む内容の事です。
設定ファイルの「Window」の「Size」に、「[ウィンドウ1の大きさ]」を設定とは、WindowというグループのSizeという項目に現在のウィンドウの大きさを保存します。という意味になります。同じグループ内には同じ項目名がダブってはいけない事に注意して下さい。このような意味なので、当然ながらウィンドウの大きさを読み込むには、「Window」の「Size」とすればその中の値が読み込まれます。設定ファイルの保存は、起動時に存在しなかった場合とウィンドウを閉じる時に設定ファイルへ再保存していますが、起動時の保存とウィンドウを閉じる際の保存とでは違う箇所があるのに注意してもらいたい。
イメージフォルダの場所の保存は起動時のみ確認出来れば良いので、一度設定されていたら内容が変化しない物については再度保存し直す必要はないのです。例外として、そのイメージフォルダが移動した時の状態を設定し直す場合はそれらの処理を行った後に、その対象の部分のみを保存し直せば良いのである。つまり、設定に変化のある物のみ設定ファイルへ再保存すれば良いという事なのです。上のサンプルを実際に動かして、出来上がったINIファイルを開いてみる事で説明するよりも分かりやすいと思います。 ※
「ico」というディレクトリを自分で作成しない限り、ダイアログが出て起動できないはずです。簡単な説明用に作った物であり、画像ディレクトリなどの確認はもう少し処理を工夫しないといけません。