source: trunk/Forms/FormSettings.pas

Last change on this file was 89, checked in by chronos, 3 months ago
  • Added: Allow to select color palette in new game dialog.
  • Fixed: Use scrollboxes in options dialogs.
File size: 2.2 KB
Line 
1unit FormSettings;
2
3interface
4
5uses
6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
7 Languages, Theme, FormEx;
8
9type
10
11 { TFormSettings }
12
13 TFormSettings = class(TFormEx)
14 ButtonOk: TButton;
15 ButtonCancel: TButton;
16 ComboBoxLanguage: TComboBox;
17 ComboBoxTheme: TComboBox;
18 Label1: TLabel;
19 Label2: TLabel;
20 Label3: TLabel;
21 ScrollBox1: TScrollBox;
22 TrackBar1: TTrackBar;
23 procedure ButtonCancelClick(Sender: TObject);
24 procedure ButtonOkClick(Sender: TObject);
25 procedure FormCreate(Sender: TObject);
26 procedure FormShow(Sender: TObject);
27 end;
28
29
30implementation
31
32{$R *.lfm}
33
34uses
35 Core;
36
37resourcestring
38 SLanguageChangeTitle = 'Language change';
39 SLanguageChangeMessage = 'Interface language was changed. It may require restart of application.';
40
41{ TFormSettings }
42
43procedure TFormSettings.ButtonCancelClick(Sender: TObject);
44begin
45 Close;
46end;
47
48procedure TFormSettings.ButtonOkClick(Sender: TObject);
49begin
50 Core.Core.Game.AnimationDuration := TrackBar1.Position;
51 if ComboBoxLanguage.ItemIndex <> -1 then begin
52 if (Core.Core.Translator1.Language <> TLanguage(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex])) then
53 MessageDlg(SLanguageChangeTitle, SLanguageChangeMessage, mtInformation, [mbOk], 0);
54 Core.Core.Translator1.Language := TLanguage(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex]);
55 end;
56 if ComboBoxTheme.ItemIndex <> -1 then
57 Core.Core.ThemeManager1.Theme := TTheme(ComboBoxTheme.Items.Objects[ComboBoxTheme.ItemIndex]);
58 ModalResult := mrOk;
59end;
60
61procedure TFormSettings.FormCreate(Sender: TObject);
62begin
63 Core.Core.Translator1.LanguageListToStrings(ComboBoxLanguage.Items);
64 Core.Core.ThemeManager1.Themes.LoadToStrings(ComboBoxTheme.Items);
65end;
66
67procedure TFormSettings.FormShow(Sender: TObject);
68begin
69 TrackBar1.Position := Core.Core.Game.AnimationDuration;
70 ComboBoxLanguage.ItemIndex := ComboBoxLanguage.Items.IndexOfObject(Core.Core.Translator1.Language);
71 if ComboBoxLanguage.ItemIndex = -1 then ComboBoxLanguage.ItemIndex := 0;
72 ComboBoxTheme.ItemIndex := ComboBoxTheme.Items.IndexOfObject(Core.Core.ThemeManager1.Theme);
73 if ComboBoxTheme.ItemIndex = -1 then ComboBoxTheme.ItemIndex := 0;
74end;
75
76end.
77
Note: See TracBrowser for help on using the repository browser.