source: trunk/Forms/UFormSettings.pas

Last change on this file was 50, checked in by chronos, 4 years ago
  • Added: Support for dark theme.
File size: 2.5 KB
Line 
1unit UFormSettings;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
9 ULanguages, UTheme;
10
11type
12
13 { TFormSettings }
14
15 TFormSettings = class(TForm)
16 ButtonOk: TButton;
17 ButtonCancel: TButton;
18 ComboBoxLanguage: TComboBox;
19 ComboBoxTheme: TComboBox;
20 Label1: TLabel;
21 Label2: TLabel;
22 Label3: TLabel;
23 TrackBar1: TTrackBar;
24 procedure ButtonCancelClick(Sender: TObject);
25 procedure ButtonOkClick(Sender: TObject);
26 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
27 procedure FormCreate(Sender: TObject);
28 procedure FormShow(Sender: TObject);
29 private
30
31 public
32
33 end;
34
35var
36 FormSettings: TFormSettings;
37
38
39implementation
40
41{$R *.lfm}
42
43uses
44 UCore;
45
46resourcestring
47 SLanguageChangeTitle = 'Language change';
48 SLanguageChangeMessage = 'Interface language was changed. It may require restart of application.';
49
50
51{ TFormSettings }
52
53procedure TFormSettings.ButtonCancelClick(Sender: TObject);
54begin
55 Close;
56end;
57
58procedure TFormSettings.ButtonOkClick(Sender: TObject);
59begin
60 Core.Game.AnimationDuration := TrackBar1.Position;
61 if ComboBoxLanguage.ItemIndex <> -1 then begin
62 if (Core.Translator1.Language <> TLanguage(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex])) then
63 MessageDlg(SLanguageChangeTitle, SLanguageChangeMessage, mtInformation, [mbOk], 0);
64 Core.Translator1.Language := TLanguage(ComboBoxLanguage.Items.Objects[ComboBoxLanguage.ItemIndex]);
65 end;
66 if ComboBoxTheme.ItemIndex <> -1 then
67 Core.ThemeManager1.Theme := TTheme(ComboBoxTheme.Items.Objects[ComboBoxTheme.ItemIndex]);
68 ModalResult := mrOk;
69end;
70
71procedure TFormSettings.FormClose(Sender: TObject; var CloseAction: TCloseAction
72 );
73begin
74 Core.PersistentForm1.Save(Self);
75end;
76
77procedure TFormSettings.FormCreate(Sender: TObject);
78begin
79 Core.Translator1.TranslateComponentRecursive(Self);
80 Core.Translator1.LanguageListToStrings(ComboBoxLanguage.Items);
81 Core.ThemeManager1.UseTheme(Self);
82 Core.ThemeManager1.Themes.LoadToStrings(ComboBoxTheme.Items);
83end;
84
85procedure TFormSettings.FormShow(Sender: TObject);
86begin
87 Core.PersistentForm1.Load(Self);
88 TrackBar1.Position := Core.Game.AnimationDuration;
89 ComboBoxLanguage.ItemIndex := ComboBoxLanguage.Items.IndexOfObject(Core.Translator1.Language);
90 if ComboBoxLanguage.ItemIndex = -1 then ComboBoxLanguage.ItemIndex := 0;
91 ComboBoxTheme.ItemIndex := ComboBoxTheme.Items.IndexOfObject(Core.ThemeManager1.Theme);
92 if ComboBoxTheme.ItemIndex = -1 then ComboBoxTheme.ItemIndex := 0;
93end;
94
95end.
96
Note: See TracBrowser for help on using the repository browser.