X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Feditor%2Ff_options.pas;h=588d9c49a8c807e34d42960c4fdf9c762f977ff1;hb=cd1d110f20a449413d8bce030b23847770d75d40;hp=51f2ea698f63a1d6e8f62ebf069195e0fc95923e;hpb=3360cb5c3e96b591451afa67a0f8a281db79e8c5;p=d2df-editor.git diff --git a/src/editor/f_options.pas b/src/editor/f_options.pas index 51f2ea6..588d9c4 100644 --- a/src/editor/f_options.pas +++ b/src/editor/f_options.pas @@ -82,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); @@ -104,7 +104,7 @@ procedure RegisterFileType(ext: String; FileName: String); implementation uses - LazFileUtils, StrUtils, f_main, StdConvs, CONFIG, g_language, g_resources, g_options; + LazFileUtils, f_main, StdConvs, CONFIG, g_language, g_resources, g_options; {$R *.lfm} @@ -144,8 +144,8 @@ begin edD2dExe.Text := FindD2dDialog.FileName; end; -procedure TOptionsForm.FormActivate(Sender: TObject); - var info: TSearchRec; s: String; i: Integer; +procedure TOptionsForm.FormShow(Sender: TObject); + var list: TStringList; begin sDotColor.Brush.Color := DotColor; cbShowDots.Checked := DotEnable; @@ -172,17 +172,9 @@ begin cbLanguage.Items.BeginUpdate; cbLanguage.Items.Clear; cbLanguage.Items.Add('Auto'); - if FindFirst(LangDir + DirectorySeparator + '*.mo', faAnyFile, info) = 0 then - begin - repeat - s := ExtractFileNameWithoutExt(info.Name); - // TODO: check encoding part in name (editor.ru_RU.UTF-8.mo) - i := Max(RPos('.', s), 1); - s := Copy(s, i + 1, Length(s) - i); - cbLanguage.Items.Add(s); - until FindNext(info) <> 0; - FindClose(info); - end; + list := g_Language_GetList(); + cbLanguage.Items.AddStrings(list); + list.Free(); cbLanguage.ItemIndex := IfThen(gLanguage = '', 0, cbLanguage.Items.IndexOf(gLanguage)); finally cbLanguage.Items.EndUpdate; @@ -219,13 +211,16 @@ var begin // General tab - if cbLanguage.ItemIndex <= 0 then str := '' else str := cbLanguage.Items[cbLanguage.ItemIndex]; - if (str = '') or (gLanguage <> str) then + if cbLanguage.ItemIndex >= 0 then begin - gLanguage := str; - 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;