X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Ff_options.pas;h=aebf686a6d997e511dd08db58578fb4b8e4d7f3f;hb=4c87d715a2cbbad04f3e785be4012422d675dca3;hp=a663bb20d5fc1200c972a87c0cb26eaec9636122;hpb=aac9a5a0163636f33249acf6ce27ea770818c6cb;p=d2df-editor.git diff --git a/src/editor/f_options.pas b/src/editor/f_options.pas index a663bb2..aebf686 100644 --- a/src/editor/f_options.pas +++ b/src/editor/f_options.pas @@ -7,7 +7,7 @@ interface uses LCLIntf, LCLType, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, - ExtCtrls, ComCtrls, Registry, Math, Types; + ExtCtrls, ComCtrls, ActnList, Registry, Math, Types; type @@ -19,6 +19,7 @@ type cbCheckerboard: TCheckBox; cbCompress: TCheckBox; cbBackup: TCheckBox; + cbLanguage: TComboBox; PageControl: TPageControl; TabGeneral: TTabSheet; TabFiles: TTabSheet; @@ -54,8 +55,6 @@ type eRecent: TEdit; UpDown3: TUpDown; LabelLanguage: TLabel; - rbRussian: TRadioButton; - rbEnglish: TRadioButton; LabelGridSize: TLabel; cbDotSize: TComboBox; // Map testing: @@ -83,7 +82,7 @@ type procedure bGridClick(Sender: TObject); - procedure FormActivate(Sender: TObject); + procedure FormShow(Sender: TObject); procedure bOKClick(Sender: TObject); procedure bCancelClick(Sender: TObject); procedure bBackClick(Sender: TObject); @@ -105,7 +104,7 @@ procedure RegisterFileType(ext: String; FileName: String); implementation uses - f_main, StdConvs, CONFIG, g_language, g_resources, g_options; + LazFileUtils, f_main, StdConvs, CONFIG, g_language, g_resources, g_options; {$R *.lfm} @@ -145,7 +144,8 @@ begin edD2dExe.Text := FindD2dDialog.FileName; end; -procedure TOptionsForm.FormActivate(Sender: TObject); +procedure TOptionsForm.FormShow(Sender: TObject); + var list: TStringList; begin sDotColor.Brush.Color := DotColor; cbShowDots.Checked := DotEnable; @@ -168,17 +168,17 @@ begin cbDotSize.ItemIndex := 0; eRecent.Text := IntToStr(RecentCount); -// Язык: - if gLanguage = LANGUAGE_RUSSIAN then - begin - rbRussian.Checked := True; - rbEnglish.Checked := False; - end - else - begin - rbRussian.Checked := False; - rbEnglish.Checked := True; - end; + try + cbLanguage.Items.BeginUpdate; + cbLanguage.Items.Clear; + cbLanguage.Items.Add(MsgLabEsLanguageAuto); + list := g_Language_GetList(); + cbLanguage.Items.AddStrings(list); + list.Free(); + cbLanguage.ItemIndex := IfThen(gLanguage = '', 0, cbLanguage.Items.IndexOf(gLanguage)); + finally + cbLanguage.Items.EndUpdate; + end; if TestGameMode = 'TDM' then rbTDM.Checked := True @@ -211,20 +211,16 @@ var begin // General tab - if rbRussian.Checked then - str := LANGUAGE_RUSSIAN - else - str := LANGUAGE_ENGLISH; - -// Нужно сменить язык: - if gLanguage <> str then + if cbLanguage.ItemIndex >= 0 then begin - gLanguage := str; - //e_WriteLog('Read language file', MSG_NOTIFY); - //g_Language_Load(EditorDir+'\data\'+gLanguage+LANGUAGE_FILE_NAME); - g_Language_Set(gLanguage); + if cbLanguage.ItemIndex = 0 then str := '' else str := cbLanguage.Items[cbLanguage.ItemIndex]; + if (str = '') or (gLanguage <> str) then + begin + gLanguage := str; + g_Language_Set(gLanguage); + end; end; - + DotColor := sDotColor.Brush.Color; DotEnable := cbShowDots.Checked;