source: trunk/Forms/FormHistory.pas

Last change on this file was 120, checked in by chronos, 7 months ago
  • Modified: Packaging files update.
File size: 1.7 KB
Line 
1unit FormHistory;
2
3interface
4
5uses
6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
7 StdCtrls, Game, FormEx;
8
9type
10
11 { TFormHistory }
12
13 TFormHistory = class(TFormEx)
14 ButtonClose: TButton;
15 PaintBox1: TPaintBox;
16 Panel1: TPanel;
17 Timer1: TTimer;
18 TrackBar1: TTrackBar;
19 procedure FormCreate(Sender: TObject);
20 procedure FormDestroy(Sender: TObject);
21 procedure FormShow(Sender: TObject);
22 procedure PaintBox1Paint(Sender: TObject);
23 procedure Timer1Timer(Sender: TObject);
24 procedure TrackBar1Change(Sender: TObject);
25 private
26 RedrawPending: Boolean;
27 public
28 Game: TGame;
29 procedure Redraw;
30 end;
31
32
33implementation
34
35{$R *.lfm}
36
37uses
38 Core;
39
40{ TFormHistory }
41
42procedure TFormHistory.FormShow(Sender: TObject);
43begin
44 TrackBar1.Max := Core.Core.Game.History.Moves.Count;
45 Game.Board.Size := Core.Core.Game.Board.Size;
46 Redraw;
47end;
48
49procedure TFormHistory.PaintBox1Paint(Sender: TObject);
50begin
51 Game.Render(PaintBox1.Canvas, Point(PaintBox1.Width, PaintBox1.Height));
52end;
53
54procedure TFormHistory.Timer1Timer(Sender: TObject);
55begin
56 if RedrawPending then begin
57 Game.Assign(Core.Core.Game);
58 Game.Board.Size := Core.Core.Game.Board.Size;
59 Game.Skin := Core.Core.Game.Skin;
60 Game.ColorPalette := Core.Core.Game.ColorPalette;
61 Game.Replay(Core.Core.Game.History, 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 Game := TGame.Create;
80end;
81
82procedure TFormHistory.FormDestroy(Sender: TObject);
83begin
84 FreeAndNil(Game);
85end;
86
87end.
88
Note: See TracBrowser for help on using the repository browser.