Delphi 2010コンパイラ出力(ヒント)をフィルタリングする方法は?
-
24-10-2019 - |
質問
Delphiコンパイラが発するいくつかのヒント(*)を取り除こうとしています。閲覧 Toolsapi 私は見ます iotatoolsfilter それは私がそれを通知者を通してこれを達成するのに役立つかもしれないように見えますが、これを呼び出す方法はわかりません(xxxServicesを介してフィルターにアクセスできるもの)。
私がここで正しい軌道に乗っているかどうか誰かに教えてもらえますか?ありがとう!
(*)特に、親の場合と一致しないオーバーライドされた方法についてのH2365。 Embarcaderoとはわずかに異なるコード慣習を持つ約500万行のアクティブコードがある場合、それほど良くありません。私たちは数ヶ月間ヒントなしで働いてきました、そして私たちはちょっとミス 'mです。 :-)
解決
IotatoolsfilterのBorlandideervicesを照会できたとしても、そのインターフェイスはあなたが求めていることをするのに役立ちません。そのインターフェイスは、IDEに追加のビルドツール(コンパイラなど)を追加するメカニズムの一部として導入されました(IDEがMSBuildを使用する前)。特定のビルドツールからの出力を処理するカスタム「フィルター」を作成することができましたが、ビルトインツールのいずれかにフィルターを適用することはできません(Delphiコンパイラなど)。
理由 Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter)
Delphi2010のコールが失敗するのは、MSBuildサポートがIDEに追加されると、IDEにビルドツールを追加する古い方法が無効になり、BorlandideervicesインターフェイスがIoTatoolsFilterをサポートしなくなったことです。
Iotatoolsfilterの宣言は、おそらくToolsapi.pasで削除されたはずです(または、少なくともソースコードのコメントで、サポートされていないことが記載されているはずです)。
特定のヒントをフィルタリングしたいというあなたの欲求に関しては、ツールサピを介してそれを行う方法を知りません。 Iotamessageservicesに追加できる合理的なもののように思えます(IDEのメッセージビューでメッセージを列挙、フィルタリング、および場合によっては変更する機能)。そのためにQualityCentralでリクエストを入力します。
また、QC#35774に投票してください(http://qc.embarcadero.com/wc/qcmain.aspx?d=35774)、それが実装されているかのように、この種のものにToolsapiを使用する必要はありません。
他のヒント
によると http://docwiki.embarcadero.com/radstudio/en/obtaining_tools_api_services Borlandideervicesを使用して直接アクセスできるはずです。
var
OTAToolsFilter: IOTAToolsFilter;
begin
if Supports(BorlandIDEServices, IOTAToolsFilter, OTAToolsFilter) then
ShowMessage('supports IOTAToolsFilter')
else
ShowMessage('IOTAToolsFilter NOT supported');
end;
ただし、これはDelphi 2010の目的のインターフェイスを返しません(サポートされていないメッセージが表示されます)。そのため、ドキュメントにエラーがあり、Borlandideervicesのエラーが正しいインターフェイスを返さないことがあります。