Тема: Іні вайл (мовний файл) у Delphi
Доброго всім дня.
В мене виникла проблема з мовними вайлами.
Щоби змінювати мовний інтерфайс додатку я написав наступний код:
unit Main;
...
    { Public declarations }
  end;
    TLangList = record
      LangName: string;
      LangFileName: string;
    end;
var
  Main_Fr: TMain_Fr;
  SettIniFile, LangIniFile: TIniFile;
  IniDefLang:integer;
  LangSrcRec: TSearchRec;
  LangList: array of TLangList;
  TimerFunction, TimerExitFunc:byte;
implementation
...
procedure CreateLangMenu;
var
  i: integer;
  NewLangMenu: TMenuItem;
begin
  try
    try
      i:=1;
      if FindFirst(ExtractFilePath(Application.ExeName)+'Lang\*.ini', faAnyFile, LangSrcRec) = 0 then
        begin
          repeat
            LangIniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Lang\'+LangSrcRec.Name);
            SetLength(LangList,i+1);
            LangList[i].LangFileName:=LangSrcRec.Name;
            LangList[i].LangName:=LangIniFile.ReadString('Language Info','LangName','? Language');
            NewLangMenu:=TMenuItem.Create(Main_Fr.English_MIt);
            NewLangMenu.Caption:=LangList[i].LangName;
            NewLangMenu.GroupIndex:=1;
            NewLangMenu.RadioItem:=True;
            NewLangMenu.OnClick:=Main_Fr.LanguagesClick;
            Main_Fr.Languages_MIt.Add(NewLangMenu);
            Inc(i);
          until FindNext(LangSrcRec) <> 0;
        end;
        finally
          FindClose(LangSrcRec);
          LangIniFile.Free;
        end;
  except
    MessageDlg('ERROR! Language *.ini file corrupt',mtError,[mbYes],0);
  end;
end;
...
procedure TMain_Fr.FormCreate(Sender: TObject);
begin
  SettIniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Sett\Sett.cfg');
  IniDefLang:=SettIniFile.ReadInteger('options','Language',0);
  try
    CreateLangMenu;
    except
    MessageDlg('ERROR! Main config file corrupt!',mtError,[mbYes],0);
  end;
  Main_Fr.LanguagesClick(Main_Fr.Languages_MIt.Items[IniDefLang]);
end;           
...
procedure TMain_Fr.FormDestroy(Sender: TObject);
begin
  try
    SettIniFile.Free;
  except
  end;
end;
...
procedure TMain_Fr.LanguagesClick(Sender: TObject);
begin
  if (Sender is TMenuItem) then
    begin
      (Sender as TMenuItem).Checked:=True;
        try
          try
            LangIniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Lang\'+LangList[Languages_MIt.IndexOf(Sender as TMenuItem)].LangFileName);
            File_MIt.Caption:=LangIniFile.ReadString('Main Menu','File','File');
            NewDatabase_MIt.Caption:=LangIniFile.ReadString('Main Menu','New Database','New Database');
            OpenDatabase_MIt.Caption:=LangIniFile.ReadString('Main Menu','Open Database','Open Database');
            SaveAsDatabase_MIt.Caption:=LangIniFile.ReadString('Main Menu','Save As Database','Save As Database');
            Exit_MIt.Caption:=LangIniFile.ReadString('Main Menu','Exit','Exit');
...
            RiderBase_Fr.Is_ChBx.Caption:=LangIniFile.ReadString('Rider Form','Is','Is');
            RiderBase_Fr.Fruiting_ChBx.Caption:=LangIniFile.ReadString('Rider Form','Fruiting','Fruiting');
            RiderBase_Fr.Desirable_ChBx.Caption:=LangIniFile.ReadString('Rider Form PanelForm','Desirable','Desirable');
            RiderBase_Fr.Cancel_Bt.Caption:=LangIniFile.ReadString('Rider Form','Cancel','Cancel');
            RiderBase_Fr.Apply_Bt.Caption:=LangIniFile.ReadString('Rider Form','Apply','Apply');
...
            SettIniFile.WriteInteger('options','Language',(Sender as TMenuItem).MenuIndex);
          finally
            LangIniFile.Free;
          end;
        except
          MessageDlg('ERROR! Lang *.ini file corrupt',mtError,[mbYes],0);
        end;
    end;
end;Проблема в тому що основну форму перекладає, а інші не хоче.
При запуску додатку випливає наступне вікно з повідомленням:
Після закриття даного діалогу додаток відкривається де основна фома(Main_Fr) перекладена а інші неперекладені.
Та коли я видаляю з проекту частину коду, що відповідає за переклад інших форм (У даному коді 92-96 рядки) і компілюю проект то після цього при запуску додатку діалогове вікно не зявляєтья.
Чесно сказати, що я зайшов в глухий кут і не можу вирішити цієї помилки тому звертаюся до усіх за допомогою.
