close Warning: Can't synchronize with repository "(default)" (No changeset 184 in the repository). Look in the Trac log for more information.

source: tags/1.0.0/Forms/UFormMove.pas

Last change on this file was 88, checked in by chronos, 10 years ago
  • Modified: Change attack probability calculation to use cache of precalculated values to speed up calculation dramatically.
  • Added: Fallback as computer strategy element to withdraw border cells where enemy is stronger.
  • Modified: Test of polygon canvas method modification.
File size: 3.1 KB
Line 
1unit UFormMove;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Spin,
9 StdCtrls, ComCtrls;
10
11type
12
13 { TFormMove }
14
15 TFormMove = class(TForm)
16 ButtonRepeatMax: TButton;
17 ButtonOnceMin: TButton;
18 ButtonOnceMax: TButton;
19 ButtonOk: TButton;
20 ButtonCancel: TButton;
21 ButtonRepeatMin: TButton;
22 Label1: TLabel;
23 Label2: TLabel;
24 Label3: TLabel;
25 LabelWinProbability: TLabel;
26 SpinEditOnce: TSpinEdit;
27 SpinEditRepeat: TSpinEdit;
28 TrackBarOnce: TTrackBar;
29 TrackBarRepeat: TTrackBar;
30 procedure ButtonOnceMaxClick(Sender: TObject);
31 procedure ButtonRepeatMinClick(Sender: TObject);
32 procedure FormCreate(Sender: TObject);
33 procedure ButtonOnceMinClick(Sender: TObject);
34 procedure ButtonRepeatMaxClick(Sender: TObject);
35 procedure FormKeyPress(Sender: TObject; var Key: char);
36 procedure FormShow(Sender: TObject);
37 procedure SpinEditOnceChange(Sender: TObject);
38 procedure SpinEditRepeatChange(Sender: TObject);
39 procedure TrackBarOnceChange(Sender: TObject);
40 procedure TrackBarRepeatChange(Sender: TObject);
41 private
42 { private declarations }
43 public
44 DefendCount: Integer;
45 AttackCount: Integer;
46 ShowWinProbability: Boolean;
47 procedure UpdateView;
48 end;
49
50var
51 FormMove: TFormMove;
52
53implementation
54
55{$R *.lfm}
56
57uses
58 UCore;
59
60{ TFormMove }
61
62procedure TFormMove.TrackBarOnceChange(Sender: TObject);
63begin
64 if SpinEditOnce.Value <> TrackBarOnce.Position then
65 SpinEditOnce.Value := TrackBarOnce.Position;
66end;
67
68procedure TFormMove.TrackBarRepeatChange(Sender: TObject);
69begin
70 if SpinEditRepeat.Value <> TrackBarRepeat.Position then
71 SpinEditRepeat.Value := TrackBarRepeat.Position;
72end;
73
74procedure TFormMove.UpdateView;
75begin
76 LabelWinProbability.Visible := ShowWinProbability;
77 Label3.Visible := ShowWinProbability;
78 LabelWinProbability.Caption :=
79 IntToStr(Round(Core.Game.AttackProbability(AttackCount + SpinEditOnce.Value,
80 DefendCount) * 100)) + ' %';
81end;
82
83procedure TFormMove.SpinEditOnceChange(Sender: TObject);
84begin
85 if SpinEditOnce.Value <> TrackBarOnce.Position then
86 TrackBarOnce.Position := SpinEditOnce.Value;
87 UpdateView;
88end;
89
90procedure TFormMove.FormShow(Sender: TObject);
91begin
92 SpinEditOnce.SetFocus;
93 UpdateView;
94end;
95
96procedure TFormMove.ButtonOnceMaxClick(Sender: TObject);
97begin
98 TrackBarOnce.Position := TrackBarRepeat.Max;
99end;
100
101procedure TFormMove.ButtonRepeatMinClick(Sender: TObject);
102begin
103 TrackBarRepeat.Position := TrackBarRepeat.Min;
104end;
105
106procedure TFormMove.FormCreate(Sender: TObject);
107begin
108
109end;
110
111procedure TFormMove.ButtonOnceMinClick(Sender: TObject);
112begin
113 TrackBarOnce.Position := TrackBarOnce.Min;
114end;
115
116procedure TFormMove.ButtonRepeatMaxClick(Sender: TObject);
117begin
118 TrackBarRepeat.Position := TrackBarRepeat.Max;
119end;
120
121procedure TFormMove.FormKeyPress(Sender: TObject; var Key: char);
122begin
123 if Key = #13 then ButtonOk.Click;
124 if Key = #27 then ButtonCancel.Click;
125end;
126
127procedure TFormMove.SpinEditRepeatChange(Sender: TObject);
128begin
129 if SpinEditRepeat.Value <> TrackBarRepeat.Position then
130 TrackBarRepeat.Position := SpinEditRepeat.Value;
131end;
132
133end.
134
Note: See TracBrowser for help on using the repository browser.