ファイルがプロジェクト内にあり、他のユニットの uses 句にあることを確認するなど、常識的な提案をすべて試しました。
誰も解決策を投稿していないので、Ken WhiteとWouter van Nifterick の提案を試しました。
- プロジェクトを閉じて IDE を再起動しました - 変化なし
- システム上のすべてのドライブで Events.pas または Events.dcu を検索しました - 私のプロジェクトのドライブは 1 つだけでした。
うまくいった唯一の方法は、理由はわかりませんが、Events.pa の名前を別の名前に変更することでした。Project Manager を使用して名前を変更し、再コンパイルしました。すべてのUndeclared Identifier
エラーが単に消えました。名前を に戻したところEvents
、エラーが再発しました。誰かわかったね?
好奇心から、システム上のすべての pas および inc ファイルをテキスト検索して、Events
がどこかで識別子として使用されているかどうかを確認しました (違いがないことはわかっていますが、わかりません)。何もない。と呼ばれる変数、型、または関数はありませんEvents
。
健全性チェックとして、少数のユニットを含む単純なプロジェクトを作成しました。そのうちの 1 つはEvents
、いくつかの型宣言で呼び出されました。他のすべてのユニットは、それを uses 句に含めました。コンパイラは型識別子を問題なく解決できました。Events
他のプロジェクトでユニットが詰まった理由がまったくわかりません。
アップデート
なぜこのエラーが発生したのか、ようやくわかりました。私が書いていたパッケージはオープンツールの api(OTA) を使用していたので、DesignIDE
パッケージが必要でした。DesignIDE
プリコンパイル済みの dcp および bpl としてのみ提供されているため、IDE の拡張ポイントとして公開されている少数のインターフェイス ユニットを除いて、すべてのソースが欠落しています。にコンパイルされた隠しユニットの 1 つDesignIDE
が呼び出されていることがわかりEvents
ます。パッケージを新しいバージョンの Delphi に移行し、E2200 Package 'designide' already contains unit 'Events'
. このエラー メッセージは、Delphi 2007 では表示されませんでした。
より単純なパッケージで問題を切り分けようとしても、DesignIDE
パッケージを依存関係から除外していたため、それがエラーの原因であることに気づかずに、問題を再現できませんでした。