−トップへ−

オープンダイアログ
セーブダイアログ

 オープンダイアログはファイルを開くときに使い,開くファイルの選択をすることができるコンポーネントで,セーブダイアログはファイル保存のときに使い保存するファイルの選択ができるコンポーネントです。このコンポーネントを開くと左の図のようになります。この2つのコンポーネントはファイルの選択ができるだけで,ファイルを開いたり保存したりする機能はありません。





 このコンポーネントの開くための書式は下のようになります。

  if opendaialog1 . excute then
  begin
    (処理);
  end;

  if savedaialog1 . excute then
  begin
    (処理);
  end;

 上の書式の中に出てくる「excute」は,オープンダイアログの[開く]ボタンや,セーブダイアログの[保存]ボタンが押されると「true」を返し,それ以外は「false」を返すメソッドです。なので正しくは…

  if opendaialog1 . excute = true then ……

 と書かないといけないようですが,普通は「 = true 」はつけません。

 このオープンダイアログとセーブダイアログを使って,ファイルを開いたり保存したりするソースコードを書いてみます。用意するものはボタンコンポーネント2個とメモコンポーネント1個,そしてオープンダイアログとセーブダイアログ1個ずつです。このダイアログコンポーネントは下の図のように,「 Dialogs 」の場所にあります。  それぞれのコンポーネントの配置は自由ですが,オープンダイアログとセーブダイアログは[実行]すると見えなくなります。配置が終わったら,ボタンの[OnClick]イベントを呼び出し,以下のように記述してください。ここでは[Button1]が「開く」ボタンで,[Button2]が保存ボタンとなります。

procedure TForm1.Button1Click(Sender: TObject);
begin
  if opendialog1 . Execute then begin
    memo1 . Lines . LoadFromFile ( opendialog1 . FileName ) ; //@
  end ;
end ;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if savedialog1 . Execute then begin
    memo1 . Lines . SaveToFile ( savedialog1 . FileName ) ; //A
  end ;
end ;
赤い表示は//

@はオープンダイアログで選択したファイルの内容をメモコンポーネントに書き出す処理を行い,Aはメモコンポーネントの内容を,セーブダイアログで選択したファイルに書き込む処理を行います。

 記述が終わったら,ファイルを開いたり保存したりできるか試してみてください。
 ここで保存したファイルを見ると,拡張子がないことに気づくかと思います。拡張子がないと混乱する原因になるので,このファイルにも拡張子を付けたいと思います。このファイルに付ける拡張子は,「 .txt 」です。

 保存するファイルに拡張子をつけるだけなら,
  memo1 . Lines . SaveToFile ( savedialog1 . FileName + '.txt') ;
とすればいいだけなのですが,この「 savedialog1 . FileName 」にすでに拡張子がついている場合があります。そこで,ファイル名に「 .txt 」がなければつけ,「 .txt 」があればつけない,というように場合分けをします。このソースコードは以下の通りです。

procedure TForm1.Button2Click(Sender: TObject);
begin
  if savedialog1 . Execute then begin
    if copy ( savedialog1 . FileName , length ( savedialog1 . FileName ) - 3 , 4 ) <> '.txt' then
      savedialog1 . FileName := savedialog1 . FileName + ' .txt ' ;
    memo1 . Lines . SaveToFile ( savedialog1 . FileName ) ;
  end ;
end;

 これで「 .txt 」という拡張子を付けてファイルを保存することができます。
 なお上のソースコードの中で出てきた「 copy 」と「 length 」については,「書式」の中の「文字列の操作」のページを見てください。


 最後に,オープンダイアログとセーブダイアログのプロパティにある[Filter]について述べておきます。
 ここで作成しているソースコードは,テキストファイルだけを扱っています。そのため他の拡張子のファイルを開かないように制限を掛ける必要がありますが,それをするのが[Filter]です。
 左の図はオープンダイアログを開いた図ですが,赤い四角の中に「All Files」とあります。この部分を編集してテキストファイルだけを表示されるようにします。

 まず,オープンダイアログのプロパティから[Filter]の欄を選択し,右側にある「…」の部分をクリックしてください。
 すると右の図の表が開きます。そこの1行目に,
 「テキスト文書」,「 * . txt 」と入れ,2行目に,
 「すべてのファイル」,「 * . * 」と入れてください。
 これでファイルを開くときにテキストファイルだけが表示されます。

このファイルを掲載しておきます。良ければご覧ください。
→ダウンロード

−トップへ−