2010-03-09 48 views
2

我使用的是Delphi 2007,我正在嘗試創建記錄類型文件。在Delphi 7中對我來說沒有問題。記錄文件錯誤

Type 
Kompiuteris = record 
... 
end; 
Failas = file of Kompiuteris; 

但在Delphi 2007中,我遇到了問題。錯誤說:類型「Kompiuteris」需要最終確定。那麼,什麼是錯的?

+1

請告訴我們什麼......真的是有現場。 – 2010-03-09 15:59:08

+0

有很多字符串。現在我得到了問題並解決它 – gedO 2010-03-09 16:07:25

+0

將記錄定義記錄爲'...',然後說記錄定義有問題並沒有幫助。將來,發佈導致問題的代碼的實際定義,幷包括您使用的Delphi版本(因爲不同的版本具有不同的功能),並且您將有更好的獲得幫助的機會。這次你非常幸運,這個錯誤消息對於@glob能夠幫助如此之快已經足夠清晰了。 – 2010-03-10 15:17:31

回答

5

documentation

某些類型在編譯器經過特殊處理的內部基礎上,他們必須被正確最終釋放,他們目前可能擁有的任何資源。由於編譯器無法確定在運行時實際存儲在記錄的變體部分中的類型,因此無法保證這些特殊數據類型能夠正確定位。

字符串是需要完成的數據類型之一,因此它們不能存儲在文件類型中。

+0

ü...現在erethings越來越清晰 – gedO 2010-03-09 16:08:05

+0

如果我使用德爾福2005年,我得到同樣的錯誤? – gedO 2010-03-09 17:30:40

+1

是的。在* all * Delphi版本中,您會得到大於或等於2的相同錯誤。也許您關閉了「long strings」編譯器選項。 – 2010-03-09 17:35:53

0

您需要設置記錄字符串字段大小

爲例:

如果您在記錄叫名字

Type 
Kompiuteris = record 
    name :String[255] ; // Works fine 
end;