source: trunk/Forms/FormHistory.pas

Last change on this file was 86, checked in by chronos, 3 months ago
  • Modified: Remove U prefix from unit names.
  • Modified: Used TFormEx for all forms for code simplification.
  • Fixed: Fullscreen mode switching error.
File size: 1.5 KB
Line 
1unit FormHistory;
2
3interface
4
5uses
6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls,
7 Game, FormEx;
8
9type
10
11 { TFormHistory }
12
13 TFormHistory = class(TFormEx)
14 PaintBox1: TPaintBox;
15 Panel1: TPanel;
16 Timer1: TTimer;
17 TrackBar1: TTrackBar;
18 procedure FormCreate(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 procedure FormShow(Sender: TObject);
21 procedure PaintBox1Paint(Sender: TObject);
22 procedure Timer1Timer(Sender: TObject);
23 procedure TrackBar1Change(Sender: TObject);
24 private
25 RedrawPending: Boolean;
26 public
27 Game: TGame;
28 procedure Redraw;
29 end;
30
31
32implementation
33
34{$R *.lfm}
35
36uses
37 Core;
38
39{ TFormHistory }
40
41procedure TFormHistory.FormShow(Sender: TObject);
42begin
43 TrackBar1.Max := Core.Core.Game.History.Moves.Count;
44 Game.Board.Size := Core.Core.Game.Board.Size;
45 Redraw;
46end;
47
48procedure TFormHistory.PaintBox1Paint(Sender: TObject);
49begin
50 Game.Render(PaintBox1.Canvas, Point(PaintBox1.Width, PaintBox1.Height));
51end;
52
53procedure TFormHistory.Timer1Timer(Sender: TObject);
54begin
55 if RedrawPending then begin
56 Core.Core.Game.History.GetStep(Game, TrackBar1.Position);
57 PaintBox1.Refresh;
58 RedrawPending := False;
59 end;
60end;
61
62procedure TFormHistory.TrackBar1Change(Sender: TObject);
63begin
64 Redraw;
65end;
66
67procedure TFormHistory.Redraw;
68begin
69 RedrawPending := True;
70end;
71
72procedure TFormHistory.FormCreate(Sender: TObject);
73begin
74 Game := TGame.Create;
75end;
76
77procedure TFormHistory.FormDestroy(Sender: TObject);
78begin
79 FreeAndNil(Game);
80end;
81
82end.
83
Note: See TracBrowser for help on using the repository browser.