2013-07-26 1 views
3


В моем проекте, я пытаюсь соединить один больше единицы, названные Lang_Unit.pas с некоторыми классами и процедурами, но, при компиляции проекта, Delphi дает неизвестную ошибку «[dcc32 Fatal Error] Lang_Unit.pas (5): F2084 Внутренняя ошибка: AV07953449-R26D7474C-0».
И дело в том, что если я закрою свой проект или удалю этот подключенный UNIT, ошибка не исчезнет.
И если я создам прозрачное приложение VCL по умолчанию, оно все равно даст эту ошибку.
И только когда я перезапускаю свой Delphi 2010, ошибка уходит.
Но если я попытаюсь что-то изменить в коде, эта ошибка снова появится ...
Что такое проблема? Все было прекрасно, им ничего не трогало.
Я просто выключил свой компьютер, а затем через некоторое время включил его и открыл свой проект и редактировать свой код, то я вижу эту ошибку ...
Delphi F2084 Внутренняя ошибка: AV07953449-R26D7474C-0

Если Его поможет, вот мой Lang_Unit. pas code:

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

Если я создаю прозрачное приложение VCL по умолчанию без какого-либо кода, оно также дает эту ошибку ... – Priler

+0

В более ранних версиях Delphi имя файла должно соответствовать имени юнита.В вашем примере выше они отличаются –

+0

Я пытался сделать то же самое, но его не помогло – Priler

ответ

3

Внутренняя ошибка означает, что сам компилятор находится в состоянии «смущения».
Способ устранения этого вопроса:

Сохраните код в надежном месте для последующего использования.
Restart Delphi
Восстановить исходный код до последнего известного состояния, отменив последние изменения или загрузив файл сохранения temp.

Вы можете найти файлы предыдущих времен в папке _backup.

backup files

Убедитесь, что установлен тип файла any file.

Для того, чтобы иметь Delphi генерировать сохранить файл при компиляции Вам необходимо включить Автосохранение

enable autosave

Это хорошая идея, чтобы иметь Delphi держать больше, чем по умолчанию 10 сэйвов. Я хотел бы установить его на максимум: 90.

enter image description here

Просто продолжайте перезапуск Delphi и скомпилировать предыдущую версию, пока внутренняя ошибка не исчезнет.
Затем вы просто заново создаете код несколько иначе. (Вы сделал сохранить исходный код правильно?)

0

Я также имел эту проблему (в Delphi 10 Берлин). Это началось вскоре после того, как я изменил имя компонента в кадре. Это также казалось очень настойчивым. Однако я нашел, щелкнув правой кнопкой мыши проект и выбрав «Очистить», а затем «Build» решил проблему.

Смежные вопросы