我有一個Delphi XE2項目來處理大量的計算。
在我的項目中,我總共有1290個號碼Edit
,340個號碼Label
,330號碼Panel
,16號碼TabSheet
。對於每個Edit
,有OnChange
,OnDblClick
,OnEnter
和OnExit
事件。如何解決Delphi內存不足錯誤?
我必須處理總共1034個數字Variable
。我剛剛設計了Form
,並沒有添加這些計算邏輯。現在我的.pas file
變成62.5MB
具有1815057行和.dfm file
變成1.98 MB
具有65540行。
我想編譯該項目使用Delphi XE2
根據Windows XP Professional SP3 32Bit
,但我得到的錯誤爲**[DCC Fatal Error] Unit1.pas(1815058): F2046 Out of memory**
。
我也試圖編譯它使用Delphi XE5
Windows 8 Enterprise 64Bit
,這裏也是,我遇到了同樣的問題。
我還沒有添加完整的計算邏輯,使用1034個變量數,如果我加上它們,至少4200行將被添加到.pas file
。
那麼,你期望什麼。您有一個包含180萬行代碼的源文件。你需要學習如何抽象事物。不要在.dfm文件中創建1200個編輯控件。在運行時創建它們。只有在顯示標籤頁時才創建它們。對所有編輯使用一個「OnChange」事件處理程序。在'Sender'參數上切換行爲。你需要學習如何抽象行爲,而不是手動編碼每一個選項。想象一下當你想改變某些事情時會發生什麼。 –
你的代碼很臭。 :-)具有1.8M LOC的單個單元是錯誤的,因此具有1290個編輯控件 - 用戶無法看到它們,因此它們不需要一直存在。你需要認真反思你的設計。除非你真的讓你的代碼易於管理,否則什麼都不會解決你的錯誤。我祝你好運,因爲你會需要它。 :-) –
您是如何生成該程序的?你不能手寫它。你寫了一個程序來生成代碼?採取該程序的想法,並在運行時將其發生,而不是作爲預編譯步驟。 –