−トップへ−

フォームの変更を保存する

 ソフトを実行し,そのフォームの位置や大きさを変更しても,再起動すると最初の設定に戻ってしまします。ここでは終了した状態を「ini」ファイルに保存し,ソフトを起動するときにファイルを読み込んで,前回と同じ設定で開く方法を述べてみます。
 なお,ここで保存に使うファイルはテキストファイルです。

 まず,フォームにButtonコンポーネントと,ColorDialogを配置します。これは本当はなくても良いのですが,わかりやすいようにフォームの色を変えるために配置します。
そして,
   Button1.Click
   FormClose
   FormCreate

の,3つのイベントハンドラを作成します。

 フォームの変更を保存する手順としては,フォームの設定を変更した後,フォームを閉じるときに「hozon.ini」ファイルに位置や大きさなどの情報を書き込みます。
 そして,ファイルを起動するときに「hozon.ini」ファイルの情報を読み込んで,フォームを開きます。

procedure TForm1.Button1Click(Sender: TObject);
begin
 if colordialog1.Execute then begin //ボタンを押すとカラーダイアログを開く
  form1.Color:=colordialog1.Color; //カラーダイアログで選択した色を,フォームの色にする
 end;
end;

//フォームを閉じるときの手続き
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
 fi:textfile; //テキスト型を宣言
begin
 assignfile(fi,getcurrentdir + '\hozon.ini'); //fiと「hozon.ini」ファイルを関連づける※1
 rewrite(fi); //fiを開き,書き込めるようにする
 writeln(fi,form1.Left); //フォームのX座標を,fiに書き込む※2
 writeln(fi,form1.Top); //フォームのY座標を,fiに書き込む
 writeln(fi,form1.Width); //フォームの横の大きさを,fiに書き込む
 writeln(fi,form1.Height); //フォームの縦の大きさを,fiに書き込む
 writeln(fi,form1.Color); //フォームの色を,fiに書き込む
 closefile(fi); //ファイルを閉じる。これで「hozon,ini」ファイルが作成される
end;

 //フォームを起動するときの手続き
procedure TForm1.FormCreate(Sender: TObject);
 var
  fi:textfile; //テキスト型を宣言
  i::array[1..5] of string; //文字列型の配列を宣言
begin
 if FileExists(getcurrentdir + '\hozon.ini')=true then begin //もし「hozon.ini」ファイルがあれば以下のソースを実行
  assignfile(fi,getcurrentdir + '\hozon.ini'); //fiと「hozon.ini」ファイルを関連づける
  reset(fi); //ファイルを開く
  readln(fi,i[1]); //i[1]からi[5]に「hozon.ini」ファイルに書かれたものを代入する※3
  readln(fi,i[2]);
  readln(fi,i[3]);
  readln(fi,i[4]);
  readln(fi,i[5]);
  closefile(fi); //ファイルを閉じる

  form1.Left:=strtoint(i[1]); //フォームのX座標をi[1]にする
  form1.Top:=strtoint(i[2]); //フォームのY座標をi[2]にする
  form1.Width:=strtoint(i[3]); //フォームの横の大きさを,i[3]にする
  form1.Height:=strtoint(i[4]); //フォームの縦の大きさを,i[4]にする
  form1.Color:=strtoint(i[5]); //フォームの色を,i[5]にする
 end;
end;

※1
 「hozon.ini」ファイルの前にある「getcurrentdir」はEXEファイルが存在するフォルダを表します。ですから「getcurrentdir + '\hozon.ini'」とすることで,EXEファイルと同じフォルダにある「hozon.ini」ファイルを表します。これを「C:\Windows\hozon.ini」とすると,Cドライブの「Windows」のフォルダの中に「hozon.ini」ファイルを作成します。
(ただしこれをすると,Windowsフォルダに不要ファイルが溜まることになります。)
※2
 「writeln」はファイルに書き込んだ後,改行をします。同じような働きをするものに「write」がありますが,こちらは書き込んだ後改行をしないので,複数個書き込むと一行にすべて書き込まれてしまいます。

※3
 「readln」はファイルから一行(改行マークまで)読み込んだ後,セルが一行下に移動します。同じような働きをするものに「read」がありますが,こちらは読み込んだ後セルは移動しません。ですから,「read」で読み込みを複数回行うと,セルが移動しませんので同じ行のデータを読み込んでしまいます。


−トップへ−