AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]「保存」画面(SaveDialog)2013/10/20
 
前頁で[Dialogs]内の「OpenDialog」(「開く」画面)について書きました。次に同じく[Dialogs]内の「SaveDialog」(「保存」画面)について見ていきます。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
 


(ヘルプより)
DefaultExt
デフォルトのファイル拡張子を示します。
DefaultExt は選択したファイル名に自動的に付加されるファイル拡張子を指定します。ただし選択ファイル名に対して既に拡張子が登録されている場合は除きます。
3 文字より長い拡張子はサポートされていません。ファイル名と拡張子を区切るピリオド(.)は、含まれません。
FileName
最後に選択されたファイルへの絶対パスを示します。
FileName は、ダイアログからもっとも最近選択されたファイルの絶対(完全)パスを表します。FileName の値は、Files プロパティの最初の項目と同じになります。
Filter
ダイアログのファイルマスク(フィルタ)を表します。
ファイル選択ダイアログには、[ファイル名]編集ボックスの左に、ファイルのタイプのドロップダウンリストがあります。ユーザーがリストからファイルのタイプを選ぶと、選択したタイプのファイルのみが、ダイアログに表示されます。1度に 1つのフィルタしか選択できません。
Filter が正しく動作するようにするには、割り当てる文字列が次のような形式でなければなりません:
 
'<1番目の表示名>|<1番目のファイル拡張子>|<2番目の表示名>|<2番目のファイル拡張子>|...|<n番目の表示名>|<n番目のファイル拡張子>'
例:
Applications (*.exe)|*.EXE|
Text files (*.txt)|*.TXT
FilterIndex
ダイアログを開いたときに、デフォルトで選択されているフィルタを指定します。
FilterIndex は、ダイアログを開いたときに、Filter のどのファイルタイプがデフォルトで選択されるかを指定します。 FilterIndex に 1 を設定すると、リスト内の最初のファイルタイプがデフォルトで選択されるようになり、2 を設定すると、2番目のファイルタイプがデフォルトで...となります。FilterIndex の値が範囲外だった場合には、Filter にリストされている最後のファイルタイプがデフォルトとなります。
InitialDir
ダイアログを開いたときに、デフォルトで選択されているディレクトリを指定します。
InitialDirは、ファイル選択ダイアログが開いたときに表示される、デフォルトディレクトリを決定します。
InitialDir に値が割り当てられていない場合、もしくは指定されたディレクトリが存在しない場合、初期ディレクトリは、アプリケーションに割り当てられている特殊レジストリキーによって制御されます。
Title
ダイアログのタイトルバーに表示されるテキストを示します。
Title を使用すると、ファイル選択ダイアログのタイトル バーに現れるテキストを設定することができます。Title に値が割り当てられていない場合、ダイアログのタイトル は[開く]になります。
SaveDialogですので[開く]ではなくて[名前を付けて保存]ですね。
 
(ヘルプより)
TSaveDialog は、[名前を付けて保存]のようなダイアログ ボックスを表示するためのクラスです。
 
TSaveDialog を使用すると、ファイルを保存するためのダイアログ ボックスを表示できます。
 
メモ:実行時に、このダイアログは、Execute メソッドの呼び出しで起動されるまでは表示されません。
 
VCLアプリケーション作成時にあった Filterプロパティの設定画面は、OpenDialogと同様、FireMonkey(FMX)には無い様子です。ですのでフィルターの文字列は全部手入力しないといけません。
 
これまでにも既に SaveDialog は使用していましたが、VCLとほぼ同様に使えるのではないかと思います。例えば下図のように配置し、下記のようにボタンのクリックイベントハンドラを記述します。

procedure TForm1.Button1Click(Sender: TObject);
var
 fn : string ;
begin
 OpenDialog1.InitialDir := ExtractFilePath(Label1.Text);
 OpenDialog1.FileName := ExtractFileName(Label1.Text);
 if (OpenDialog1.Execute) then begin
  fn := OpenDialog1.FileName ;
  Label1.Text := '' ;
  Memo1.Lines.Clear ;
  try
   Memo1.Lines.LoadFromFile(fn);
   Label1.Text := fn ;
  finally
   ;
  end;
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
 fn : string ;
begin
 SaveDialog1.InitialDir := ExtractFilePath(Label1.Text);
 SaveDialog1.FileName := ExtractFileName(Label1.Text);
 if (SaveDialog1.Execute) then begin
  fn := SaveDialog1.FileName ;
  try
   Memo1.Lines.SaveToFile(fn);
   Label1.Text := fn ;
  finally
   ;
  end;
 end;
end;
保存・コンパイル・実行をします。

「開く」(Button1)をクリック


OpenDialog1 「開く」で「a.txt」を選択


Memo1でテキストファイルを開きます。
 
「保存」(Button2)をクリック


SaveDialog1 「保存」画面


ファイル名を「b」に変えて「保存」
DefaultExtプロパティに「txt」と指定しているので、自動的に「b.txt」と拡張子が付加されて、保存を行います。「.txt」と指定すると「b..text」となってしまうので小数点(ピリオド)は指定しないようにして下さい。
 
画面そのものは、OSの種類・バージョンによって異なると思います。
 
Optionsプロパティの ofOverwritePrompt を「True」にしておくと、既に存在するファイルを指示した場合に注意文の画面が表示されます。

この辺りも、VCLアプリケーションと同様の動作が行われます。
 
 
非ビジュアルコンポーネントですので、スタイルは無関係ですからそれについては記述しません。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/19
 2013/10/20
▼2013/10/20
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.