ユニットファイル内のユニットファイルパスとともに使用します
-
22-09-2019 - |
質問
問題があります。説明してみます。
私はクラスを持っており、新しい機能を持つ可能性のあるユニットを持っています。
D3BF4E849ACC45249B990F802EFB1F15 UNITFILE1.PAS 8DC8977E7A7B469AACFE3CC77CA7075E UNITFILE1.PAS
両方とも同じクラスを持ちます。IClass_1 = クラス
このファイルのさまざまなバージョンにコード番号を使用しています。
別のユニット ファイル (UnitFile2.pas) は、そのユニット ファイル (UnitFile1.pas) を使用します。
また、2 番目のユニット ファイル (UnitFile2.pas) のバージョンが異なります。
F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FFUnitFile2.pas
両方とも同じクラスを持ちます。IClass_2 = クラス(IClass_1)
ここで問題が始まります。
"F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas" ニーズ "D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas"
"14CEEFAFF1D64DDD8CBDEDD334D4A3FF\UnitFile2.pas" ニーズ "8DC8977E7A7B469AACFE3CC77CA7075E\UnitFile1.pas"
ただし、ファイル名は同じです(このようなシステムが必要です。したがって、それらは同じです)。そして、ユニットファイルでは、delphi ではそのように書くことはできません。
ファイル F94C439C822E490DB228F2C16EF2C190\UnitFile2.pas;「D3BF4E849ACC45249B990F802EFB1F15\UnitFile1.pas」の UnitFile1 を使用します。
私の問題を伝えることができれば幸いです。どのユニットファイルをそのパスとともに使用したいかをコンパイラに伝えるにはどうすればよいですか?(私は Delphi-7 を使用しています)
解決
あなたのユニット名に異なる名前を付け、あなたは、単にプロジェクトに両方のユニットを含めることができます。
次に、1つまたは複数のこれらの実際の単位の他に解決「仮想ユニット名」を作成するプロジェクトのオプションでユニットの別名を使用します。単位である「使用」とは、一又は単位エイリアスによるこれらの参照それらの他の - 「仮想名」
例えば。 DPRでます:
uses
...
UnitFile1a in '....\UnitFile1a.pas',
UnitFile1b in '....\UnitFile1b.pas',
...
あなたのユニットで
uses
UnitFile1;
プロジェクトオプションのいずれかである単位別名:
UnitFile1=UnitFile1a
または
UnitFile1=UnitFile1b
これで、どちらかとプロジェクト構築することができます「UnitFile1の?」ユニットは、単にユニットの別名を変更することにより適切である。
他のヒント
あなたは、検索パスに「D3BF4E849ACC45249B990F802EFB1F15」と「F94C439C822E490DB228F2C16EF2C190」を入れて、あなたのプロジェクトオプションを設定する必要があります。あなたは、コード内のユニットのパスを指定することはできません。
私は、これはあなたの問題を解決するかどうかわかりませんが、あなたは、このようなユニット名にドットを配置することができます名前空間の概念、があります:
はというよりも異なるディレクトリに同じファイル名を持つ...
D3BF4E849ACC45249B990F802EFB1F15 \ UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E \ UnitFile1.pas
F94C439C822E490DB228F2C16EF2C190 \ UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF \ UnitFile2.pas
は、ファイル名の接頭辞を使用することができます:
D3BF4E849ACC45249B990F802EFB1F15.UnitFile1.pas 8DC8977E7A7B469AACFE3CC77CA7075E.UnitFile1.pas
F94C439C822E490DB228F2C16EF2C190.UnitFile2.pas 14CEEFAFF1D64DDD8CBDEDD334D4A3FF.UnitFile2.pas
あなたはその後、例えば、uses節で完全なファイル名を使用することができます。
uses
D3BF4E849ACC45249B990F802EFB1F15.UnitFile1;
はい、Delphiでこの作品7ます。
私の知る限り、同じ名前の 2 つのユニットをプロジェクトに追加することはできません。
正しいフォルダーをプロジェクト オプションに追加することも、必要なユニットをプロジェクト オプションに追加することもできます。 「表示 - プロジェクトマネージャー」 画面 (プロジェクト名を右クリックし、 '追加'. 。を選択してください 正しい単位 の中に 正しいフォルダ, これ以降、プロジェクト内のすべてのフォームや他のユニットでユニット名だけを使用できるようになります。
なぜそのような不可解なフォルダー名を使用する必要があるのか、私には理解できません。あなたがこれをしたい理由がまったく思いつきません。