2017-05-01 11 views
-1

フォームにTOPenDialogコンポーネントを追加し、それを操作するメニューメソッドを記述しました。私はVCLプロジェクトのコードopenDialog1.Options := [ofReadOnly];を含むコードをコピーしました。Delphi FMX OpenDialogは、OPリストのリストです

ofReadOnly(および他のオプション)が認識されないので、コンパイラはそれを拒否します。 TopenOptionsタイプはVCL.Dialogに含まれていますが、FMXバージョンには表示されません。

私は現在、FMX.dialogs.pasファイルのテキストを含まないDelphiのスターターバージョンを使用しているため、オプションをユニットに追加することはできません。使用セクションのVCL.dialogsファイルを含めてこれを修正しますか?同じプログラムでVCLとFMXを混在させるのは良い考えではないと聞いています。

+1

なぜFMXとVCLを混ぜると思いますか?それは意味をなさない。明白なことをしてドキュメントを読んでみませんか? FMX列挙型がSCOPENENUMSコンパイラ指令を有効にして宣言されているという事実を補ってください。 –

+0

@DavidHeffernan少し戻って簡単に!私はこれに新しいですし、私はドキュメントを読んでいます。私が何かを理解していないときは、このサイトなどを知っている人の質問をします。 – Ashlar

答えて

2

あなたはエンバカデロのドキュメントを読んでいる場合は、FMX.Dialogs.TOpenDialog.OptionsプロパティがVCL.Dialogs.TOpenDialog.Optionsプロパティが使用するのと同じSystem.UITypes.TOpenOptionsタイプを使用するため、両方のダイアログボックスが使用可能な同じオプションを持っていることがわかります。

TOpenOption enumがディレクティブを有効にして宣言されているため(Scoped Enumerations参照)、コードがコンパイルされていないのが原因です。スコープ付き列挙型の値に、列挙型の名前を含める必要があります。たとえば、

uses 
    ..., System.UITypes; 

OpenDialog1.Options := [TOpenOption.ofReadOnly]; 
+0

コンパイルエラーが発生しました - [dcc32エラー] FmxMain.pas(343):E2010互換性のないタイプ: 'TOpenOptions'と 'Set'。 – Ashlar

+0

このエラーは再現できません。私はXE2とシアトルでテストしました(私はBerlin +がインストールされていません)。私が示したコードは、どちらのバージョンでもうまくコンパイルできます。どのバージョンのDelphiを使用していますか? –

+0

いいえ、それは動作します、私はTopenoptionsとtopenoptionの間で読むことができません。初心者を助けてくれてありがとう。 – Ashlar

関連する問題