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

source: trunk/Forms/UFormMove.pas

Last change on this file was 124, checked in by chronos, 7 years ago
  • Fixed: Do not allow to move from single cell more units when available.
File size: 3.4 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 if SpinEditOnce.MaxValue < SpinEditOnce.Value then begin
93 SpinEditOnce.Enabled := False;
94 SpinEditOnce.Value := 0;
95 TrackBarOnce.Enabled := False;
96 TrackBarOnce.Max := 0;
97 SpinEditRepeat.SetFocus;
98 end else begin
99 SpinEditOnce.Enabled := True;
100 TrackBarOnce.Enabled := True;
101 SpinEditOnce.SetFocus;
102 end;
103 UpdateView;
104end;
105
106procedure TFormMove.ButtonOnceMaxClick(Sender: TObject);
107begin
108 TrackBarOnce.Position := TrackBarRepeat.Max;
109end;
110
111procedure TFormMove.ButtonRepeatMinClick(Sender: TObject);
112begin
113 TrackBarRepeat.Position := TrackBarRepeat.Min;
114end;
115
116procedure TFormMove.FormCreate(Sender: TObject);
117begin
118
119end;
120
121procedure TFormMove.ButtonOnceMinClick(Sender: TObject);
122begin
123 TrackBarOnce.Position := TrackBarOnce.Min;
124end;
125
126procedure TFormMove.ButtonRepeatMaxClick(Sender: TObject);
127begin
128 TrackBarRepeat.Position := TrackBarRepeat.Max;
129end;
130
131procedure TFormMove.FormKeyPress(Sender: TObject; var Key: char);
132begin
133 if Key = #13 then ButtonOk.Click;
134 if Key = #27 then ButtonCancel.Click;
135end;
136
137procedure TFormMove.SpinEditRepeatChange(Sender: TObject);
138begin
139 if SpinEditRepeat.Value <> TrackBarRepeat.Position then
140 TrackBarRepeat.Position := SpinEditRepeat.Value;
141end;
142
143end.
144
Note: See TracBrowser for help on using the repository browser.