Delphi7のバックグラウンドコンパイラに問題があります。私のプロジェクトには、バックグラウンドコンパイラがエラーメッセージで停止してCodeCompletionが実行できないコードが1行あります。通常のコンパイラと構文チェックではこのコードに問題はなく、結果のアプリケーションは正しいです。バックグラウンド(キビッツ)コンパイラのソースコードをスキップ
私の質問は、バックグラウンドコンパイルが実行されたときにこのコードラインをスキップする方法があるかどうかです(コンパイラ指令など)。エラーを再現する
例コード:
procedure ProduceKibitzError;
var
v : Variant;
begin
v.End; // This line stops kibitz compiler
end;
このコードは、本体に使用される「Error.pas」ユニット内に配置されます。 メインユニットでCodeCompletionを呼び出そうとすると、「Error.pasをコンパイルできませんでした」というメッセージで停止します(実際のメッセージはドイツ語です)。
興味深いことに、このエラーは、プロジェクトがコンパイルされるか、構文チェックが初めて実行されるまで発生します。 コンパイル後、CodeCompletionが機能しており、エラーを再現するためにDelphiを再起動する必要があります。
更新: エンドラベル付きの空のアセンブラブロックを追加することは、問題の解決方法です。
ケア*のように見えますか? –
空のasm/endブロックをこのルーチンに追加してみてください。それはキビッツコンパイラが手続き解析をスキップするのを防ぎます。 Graphics.pasには、@ endラベル付きのasm/endブロックがあり、コンパイラは特別にasm/endブロックを処理します。 –