source: trunk/Forms/UFormHistory.pas

Last change on this file was 50, checked in by chronos, 4 years ago
  • Added: Support for dark theme.
File size: 1.9 KB
Line 
1unit UFormHistory;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls, UGame;
9
10type
11
12 { TFormHistory }
13
14 TFormHistory = class(TForm)
15 PaintBox1: TPaintBox;
16 Panel1: TPanel;
17 Timer1: TTimer;
18 TrackBar1: TTrackBar;
19 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
20 procedure FormCreate(Sender: TObject);
21 procedure FormDestroy(Sender: TObject);
22 procedure FormShow(Sender: TObject);
23 procedure PaintBox1Paint(Sender: TObject);
24 procedure Timer1Timer(Sender: TObject);
25 procedure TrackBar1Change(Sender: TObject);
26 private
27 RedrawPending: Boolean;
28 public
29 Game: TGame;
30 procedure Redraw;
31 end;
32
33var
34 FormHistory: TFormHistory;
35
36implementation
37
38{$R *.lfm}
39
40uses
41 UCore;
42
43{ TFormHistory }
44
45procedure TFormHistory.FormShow(Sender: TObject);
46begin
47 Core.PersistentForm1.Load(Self);
48 TrackBar1.Max := Core.Game.History.Moves.Count;
49 Game.Board.Size := Core.Game.Board.Size;
50 Redraw;
51end;
52
53procedure TFormHistory.PaintBox1Paint(Sender: TObject);
54begin
55 Game.Render(PaintBox1.Canvas, Point(PaintBox1.Width, PaintBox1.Height));
56end;
57
58procedure TFormHistory.Timer1Timer(Sender: TObject);
59begin
60 if RedrawPending then begin
61 Core.Game.History.GetStep(Game, TrackBar1.Position);
62 PaintBox1.Refresh;
63 RedrawPending := False;
64 end;
65end;
66
67procedure TFormHistory.TrackBar1Change(Sender: TObject);
68begin
69 Redraw;
70end;
71
72procedure TFormHistory.Redraw;
73begin
74 RedrawPending := True;
75end;
76
77procedure TFormHistory.FormCreate(Sender: TObject);
78begin
79 Core.Translator1.TranslateComponentRecursive(Self);
80 Core.ThemeManager1.UseTheme(Self);
81 Game := TGame.Create;
82end;
83
84procedure TFormHistory.FormDestroy(Sender: TObject);
85begin
86 FreeAndNil(Game);
87end;
88
89procedure TFormHistory.FormClose(Sender: TObject; var CloseAction: TCloseAction
90 );
91begin
92 Core.PersistentForm1.Save(Self);
93end;
94
95end.
96
Note: See TracBrowser for help on using the repository browser.