我有一箇舊的Delphi 7應用程序,經過一些更改後,給出消息「訪問衝突...在'ntdll.dll'...」該消息重複4次,並可能意味着Windows無法繪製一些東西:然後,一切正常。錯誤設置家長
觸發的消息的實際線路是:
Tester.FormTester.Parent := main.FormMain.TesterSheet;
錯誤消息後,父設置是否正確,並
Tester.FormTester.Align := alClient;
工作正常,對準FormTester到TesterSheet客戶區。
FormTester是以前創建的,但不可見。首先使其可見並不能解決問題。 TesterSheet先前已創建,但不可見。使用任何其他父(不包括Nil)不能解決問題。等待不能解決問題。在Win7和WinXP之間移動不會改變問題。
在Delphi IDE中運行時,我只得到了相同的錯誤,IDE捕獲並顯示爲異常。當我繼續處理異常(跟蹤到)時,我得到了和以前一樣的錯誤消息框。 (重複例外/留言)
這個問題的原因是什麼?建議的解決方案是什麼?
您能否包含更完整的複製/粘貼代碼,以便我們知道您正在使用哪種類型的東西? –
檢查設置「Parent」屬性前後可觸發的包含的兩個表單和組件上的每個事件。另外,通過調試器運行應用程序,並查看是否會在沒有IDE的情況下在運行時阻止其他異常。 – LightBulb
我並不認爲檢查每一個表單和組件都是一個現實的解決方案,但它的工作原理:我立即注意到兩個組合框,我認爲已經被刪除,當我檢查它們時,我發現它們包含幾個空字符串在字符串列表中。從字符串列表中刪除空字符串解決了問題。 – david