|
DelphiXE3 [FMX]「開く」画面(OpenDialog)2013/10/19 |
前頁で[System]内の「Timer」(タイマー)について書きました。これで[System]内については終了となります。次は[Win3.1]内ですが、この中には何もありませんので更に次。[Dialogs]内の「OpenDialog」(「開く」画面)について見ていきます。
【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 に値が割り当てられていない場合、ダイアログのタイトル は[開く]になります。 |
|
(ヘルプより)
TOpenDialog は、ファイル選択ダイアログを表示するためのクラスです。
TOpenDialog を使用すると、ファイルを選択し開くためのダイアログボックスを表示できます。
ユーザーが[開く]ボタンをクリックすると、ダイアログが閉じて、選択されたファイルが Files プロパティに格納されます。
メモ:実行時に、このダイアログは、Execute メソッドの呼び出しで起動されるまでは表示されません。 |
VCLアプリケーション作成時にあった Filterプロパティの設定画面は、FireMonkey(FMX)には無い様子です。ですのでフィルターの文字列は全部手入力しないといけません。
これまでにも既に OpenDialog は使用していましたが、VCLとほぼ同様に使えるのではないかと思います。例えば下図のように配置し、下記のようにボタンのクリックイベントハンドラを記述します。
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.InitialDir := ExtractFilePath(Label1.Text);
OpenDialog1.FileName := ExtractFileName(Label1.Text);
if (OpenDialog1.Execute) then begin
Label1.Text := OpenDialog1.FileName ;
end;
end; |
保存・コンパイル・実行をします。
画面そのものは、OSの種類・バージョンによって異なると思います。
次に、複数ファイル選択も確認しておきます。下図のように配置しなおして、ボタンのクリックイベントハンドラを下記のようにします。
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Options := [TOpenOption.ofHideReadOnly,
TOpenOption.ofEnableSizing];
OpenDialog1.InitialDir := ExtractFilePath(Label1.Text);
OpenDialog1.FileName := ExtractFileName(Label1.Text);
if (OpenDialog1.Execute) then begin
Label1.Text := OpenDialog1.FileName ;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i : integer ;
begin
OpenDialog1.Options := [TOpenOption.ofHideReadOnly,
TOpenOption.ofAllowMultiSelect,
TOpenOption.ofEnableSizing];
OpenDialog1.InitialDir := ExtractFilePath(Label1.Text);
OpenDialog1.FileName := ExtractFileName(Label1.Text);
if (OpenDialog1.Execute) then begin
Label1.Text := OpenDialog1.FileName ;
Memo1.Lines.Clear ;
for i := 0 to OpenDialog1.Files.Count-1 do begin
Memo1.Lines.Add(OpenDialog1.Files[i]);
end;
end;
end; |
保存・コンパイル・実行をします。
というわけで、これまでと同様に扱えるようです。
非ビジュアルコンポーネントですので、スタイルは無関係ですからそれについては記述しません。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/19
2013/10/19
▼2013/10/20
シェアウェア
Script!World
データベース
|