我在Delphi7中的後臺編譯器出現問題:在我的項目中有一行代碼導致後臺編譯器停止並顯示一條錯誤消息,因此無法執行CodeCompletion。正常的編譯器和語法檢查對此代碼沒有問題,並且生成的應用程序是正確的。在後臺跳過源代碼(kibitz)編譯器
我的問題是,如果在執行後臺編譯時有任何方法跳過此代碼行(例如編譯器指令)。
實施例的代碼重現該錯誤:
procedure ProduceKibitzError;
var
v : Variant;
begin
v.End; // This line stops kibitz compiler
end;
此代碼放置在其在主單元中使用的單位「Error.pas」。 如果您嘗試在主單元中調用CodeCompletion,它會停止並顯示消息「Error.pas could not be compiled」(真實消息是德語)。
有趣的是,只有在編譯項目或首次執行語法檢查時纔會出現錯誤。 編譯後CodeCompletion正在工作,Delphi必須重新啓動才能重現錯誤。
更新: 添加一個空的彙編程序塊與一個結束標籤是一個問題的解決方案。 這裏是改變的示例代碼,不停止後臺編譯:
procedure ProduceKibitzError;
var
v : Variant;
begin
asm
@@END:
end;
v.End;
end;
非常感謝,
基督教
護理後什麼代碼*一行*和* errormessage的*是什麼樣子? – 2009-08-10 10:56:47
您可以嘗試在此例程中添加一個空的asm/end塊。它可以防止kibitz編譯器跳過程序分析。 Graphics.pas有一個帶有@@ end標籤的asm/end塊,編譯器專門處理asm/end塊。 – 2009-08-10 15:51:03