在我的项目中,我尝试连接另一个名为Lang_Unit.pas的UNIT和一些类和过程,但是,在编译项目时,Delphi会发出未知错误,称为" [dcc32致命错误] Lang_Unit.pas (5):F2084内部错误:AV07953449-R26D7474C-0"。
关键是,如果我将关闭我的项目,或删除这个连接的UNIT,错误就不会消失
如果我将创建明确的默认VCL应用程序,它仍然会出现此错误
只有当我重新启动我的Delphi 2010时,错误才会消失
但是,如果我将尝试编辑代码中的某些内容,则会再次出现此错误...
有什么问题?一切都很好,我什么也没碰过
我刚刚关闭了我的电脑,然后经过一段时间将其打开并打开我的项目并编辑了我的代码,然后我看到了这个错误......
如果它有帮助,这是我的Lang_Unit.pas代码:
unit Languages_UNIT;
interface
Uses
System.Generics.Collections, IniFiles;
Type
TLanguages_List = Class
private
LangType:string;
LangDescription:string;
LangFile:TIniFile;
public
Constructor Create(LType,LDes:string; LFile:TiniFile);
Function GetLangType:string;
Function GetDescription:string;
Function GetStructure:TIniFile;
End;
TLanguages_Controller = Class
public
Function GetStructureByType(RequestedType:string; LangList:TObjectList<TLanguages_List>):TIniFile;
Function TypeExists(RequestedType:string; LangList:TObjectList<TLanguages_List>):Boolean;
Procedure LoadLanguage(RequestedType:string; LangList:TObjectList<TLanguages_List>);
End;
implementation
uses Unit1;
Constructor TLanguages_List.Create(LType,LDes:string; LFile:TiniFile);
Begin
LangType:=LType;
LangDescription:=LDes;
LangFile:=LFile;
End;
Function TLanguages_List.GetLangType:string;
Begin
Result:=LangType;
End;
Function TLanguages_List.GetDescription:string;
Begin
Result:=LangDescription;
End;
Function TLanguages_List.GetStructure:TIniFile;
Begin
Result:=LangFile;
End;
Function TLanguages_Controller.GetStructureByType(RequestedType:string; LangList:TObjectList<TLanguages_List>):TIniFile;
var
i:integer;
Begin
For i := 0 to LangList.Count-1 Do
Begin
IF(LangList[i].GetLangType=RequestedType) Then
Begin
Result:=LangList[i].GetStructure;
Break;
End;
End;
End;
Function TLanguages_Controller.TypeExists(RequestedType:string; LangList:TObjectList<TLanguages_List>):Boolean;
var
i:integer;
GOTYA:Boolean;
Begin
GOTYA:=False;
For i := 0 to LangList.Count-1 Do
Begin
IF(LangList[i].GetLangType=RequestedType) Then
Begin
GOTYA:=True;
Break;
End;
End;
IF(GOTYA) Then
Result:=True
Else
Result:=False;
End;
Procedure TLanguages_Controller.LoadLanguage(RequestedType:string; LangList:TObjectList<TLanguages_List>);
var
i:integer;
SLS:TIniFile;//SELECTED LANGUAGE STRUCTURE
CS:string;//CURRENT SECTION
Begin
//GET SELECTED LANGUAGE STRUCTURE
For i := 0 to LangList.Count-1 Do
Begin
IF(LangList[i].GetLangType=RequestedType) Then
Begin
SLS:=LangList[i].GetStructure;
Break;
End;
End;
//START LOADING SELECTED LANGUAGE
//TABS SECTION LOAD
CS:='TABS';
SD_DEFNAME:=SLS.ReadString(CS,'Speed_Dials','Speed_Dials');
Form1.goleft.Hint:=SLS.ReadString(CS,'Back','Back');
Form1.goright.Hint:=SLS.ReadString(CS,'Forward','Forward');
REFLESHBTN_TEXT:=SLS.ReadString(CS,'Reflesh','Reflesh');
STOPBTN_TEXT:=SLS.ReadString(CS,'Stop','Stop');
//PAGE_POPUP SECTION LOAD
CS:='PAGE_POPUP';
Form1.ChromiumPopup.Items[0].Caption:=SLS.ReadString(CS,'Forward','Forward');
Form1.ChromiumPopup.Items[1].Caption:=SLS.ReadString(CS,'Back','Back');
Form1.ChromiumPopup.Items[2].Caption:=SLS.ReadString(CS,'Reflesh','Reflesh');
Form1.ChromiumPopup.Items[3].Caption:=SLS.ReadString(CS,'Copy_Link','Copy Link');
Form1.ChromiumPopup.Items[4].Caption:=SLS.ReadString(CS,'Save','Save');
Form1.ChromiumPopup.Items[5].Caption:=SLS.ReadString(CS,'Print','Print');
Form1.ChromiumPopup.Items[6].Caption:=SLS.ReadString(CS,'view_source','View Source');
Form1.ChromiumPopup.Items[7].Caption:=SLS.ReadString(CS,'code_debug','Code Debug');
End;
end.
答案 0 :(得分:3)
内部错误意味着编译器本身处于“混乱”状态 摆脱这种情况的方法是:
将您的代码保存在安全的位置以供日后参考
重启Delphi
通过撤消上次编辑或加载临时保存文件,将源代码恢复到上次已知的良好状态。
您可以在_backup
文件夹中找到以前的文件。
确保将文件类型设置为any file
。
为了让Delphi在编译时生成保存文件,您需要启用自动保存
让Delphi保持超过默认的10次保存是个好主意。我喜欢将它设置为最大值:90。
继续重启Delphi,编译以前的版本,直到内部错误消失 然后,您只需稍微不同的方式重新创建代码。 (你确实保存原始代码吗?)
答案 1 :(得分:0)
我也有这个问题(在Delphi 10柏林)。它在我更改了框架中组件的名称后不久就开始了。它似乎也很持久。但是我找到了右击项目并选择&#39; Clean&#39;接下来是“建立”&#39;解决了这个问题。
答案 2 :(得分:0)
我的系统驱动器的内存不足300mb时遇到此问题。在缓存文件夹中尤其令人窒息。在尝试出现此错误之前,当我尝试将已经异步的函数递归到大型多线程应用程序中的更大的异步函数中时,出现了一个明智的错误(致命错误DBG)。编译器只是放弃了!(可能是循环引用和一个函数的太多子函数)这两个错误可能无关。但是在重新启动后将系统驱动器释放到大约2 Gigs并纠正了上述错误之后,我进行了清除,然后编译就可以了。
答案 3 :(得分:0)
就我而言,F2084 错误代码的解决方案是将编码从 ANSI 更改为 UTF8。