3

Delphi では、ActiveX コントロールを作成することが、現在よりも一般的になりました。ただし、Delphi で ActiveX コントロールを作成することは引き続き可能です。この質問はDelphi 2007を想定していますが、使用するDelphiのバージョンに関係なく同じはずです。

ActiveX コントロールを作成すると、Delphi で奇妙なエラーが発生します。私の場合、インポートしてラップしようとしている特定のクラスをインポートできなくなりました.Delphiは、ユニットの「シンボル情報」をロードできなかっただけで、理由を教えてくれません.

この場合、オープン ソース コントロールをラップしています。最初の数回のラップの試みはうまくいきましたが、ActiveX ラッパーが見落とされている方法で記述されたプロパティを見つけた後、インポートをやり直す必要があることがわかりました。手で修正するよりも、ActiveX ラッパーを再生成する方が簡単です。このように冷たく止まるまで:

 Error

 Could not load unit [unit] symbol information for [TClassName]. 
 Do you want to try to find this file yourself?

[はい] をクリックすると、参照 (ファイルを開く) ダイアログが表示され、ファイル フィルターが "DCU" に設定されています。つまり、このユニットの DCU ファイルを見つけてほしいということです。参照してもしなくても、結果は同じです。いくら再コンパイルしても、このエラー状態は解消されません。

このエラーが実際に何を意味するのか、さらに良いことに、それを修正する方法を誰かが知っていますか? この特定のエラー メッセージをグーグルで検索すると、英語以外のフォーラムで出てくることがわかりますが、まだ誰も文書化していないため、あいまいです。

4

1 に答える 1

2

Delphi のライブラリ パスには問題があり、ActiveX コントロール ウィザードが正しく機能するには、パーサーが問題のユニットを解析するために必要なすべてのソースがライブラリ パスにある必要があります。ActiveX コントロール ウィザードはプロジェクトの外部で機能するため、プロジェクトの検索パスは、ラップされて ActiveX コントロールに変換される VCL コントロールのソースを解析するために使用されるフォルダーのリストには含まれません。

解決:

ライブラリ パスを修正します。

于 2013-01-22T16:30:28.047 に答える