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/UFormPlayer.pas

Last change on this file was 183, checked in by chronos, 6 years ago
  • Modified: Units move handling was moved from Core to FormClient as it is game client related functionality.
File size: 2.8 KB
Line 
1unit UFormPlayer;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
9 ColorBox, Menus, Spin, UGame;
10
11type
12
13 { TFormPlayer }
14
15 TFormPlayer = class(TForm)
16 ButtonCancel: TButton;
17 ButtonOk: TButton;
18 CheckBoxDefensive: TCheckBox;
19 ColorBox1: TColorBox;
20 ComboBoxMode: TComboBox;
21 ComboBoxAgressivity: TComboBox;
22 EditName: TEdit;
23 Label1: TLabel;
24 Label2: TLabel;
25 Label3: TLabel;
26 Label4: TLabel;
27 Label5: TLabel;
28 SpinEditStartUnits: TSpinEdit;
29 procedure ComboBoxModeChange(Sender: TObject);
30 procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
31 procedure FormShow(Sender: TObject);
32 private
33 { private declarations }
34 public
35 procedure Translate;
36 procedure UpdateInterface;
37 procedure Load(Player: TPlayer);
38 procedure Save(Player: TPlayer);
39 end;
40
41var
42 FormPlayer: TFormPlayer;
43
44implementation
45
46{$R *.lfm}
47
48uses
49 UCore;
50
51resourcestring
52 SHuman = 'Human';
53 SComputer = 'Computer';
54 SAgroLow = 'Low';
55 SAgroMedium = 'Medium';
56 SAgroHigh = 'High';
57
58{ TFormPlayer }
59
60procedure TFormPlayer.ComboBoxModeChange(Sender: TObject);
61begin
62 UpdateInterface;
63end;
64
65procedure TFormPlayer.FormClose(Sender: TObject; var CloseAction: TCloseAction);
66begin
67 Core.PersistentForm.Save(Self);
68end;
69
70procedure TFormPlayer.FormShow(Sender: TObject);
71begin
72 Core.PersistentForm.Load(Self);
73 Translate;
74 UpdateInterface;
75end;
76
77procedure TFormPlayer.Translate;
78var
79 LastIndex: Integer;
80begin
81 Core.CoolTranslator1.TranslateComponentRecursive(Self);
82 with ComboBoxMode do begin
83 LastIndex := ItemIndex;
84 Clear;
85 Items.Add(SHuman);
86 Items.Add(SComputer);
87 ItemIndex := LastIndex;
88 end;
89 with ComboBoxAgressivity do begin
90 LastIndex := ItemIndex;
91 Clear;
92 Items.Add(SAgroLow);
93 Items.Add(SAgroMedium);
94 Items.Add(SAgroHigh);
95 ItemIndex := LastIndex;
96 end;
97end;
98
99procedure TFormPlayer.UpdateInterface;
100begin
101 ComboBoxAgressivity.Visible := ComboBoxMode.ItemIndex = 1;
102 CheckBoxDefensive.Visible := ComboBoxMode.ItemIndex = 1;
103 Label4.Visible := ComboBoxMode.ItemIndex = 1;
104end;
105
106procedure TFormPlayer.Load(Player: TPlayer);
107begin
108 EditName.Text := Player.Name;
109 ComboBoxMode.ItemIndex := Integer(Player.Mode);
110 ColorBox1.Selected := Player.Color;
111 ComboBoxAgressivity.ItemIndex := Integer(Player.Agressivity);
112 CheckBoxDefensive.Checked := Player.Defensive;
113 SpinEditStartUnits.Value := Player.StartUnits;
114 UpdateInterface;
115end;
116
117procedure TFormPlayer.Save(Player: TPlayer);
118begin
119 Player.Name := EditName.Text;
120 Player.Mode := TPlayerMode(ComboBoxMode.ItemIndex);
121 Player.Color := ColorBox1.Selected;
122 Player.Agressivity := TComputerAgressivity(ComboBoxAgressivity.ItemIndex);
123 Player.Defensive := CheckBoxDefensive.Checked;
124 Player.StartUnits := SpinEditStartUnits.Value;
125end;
126
127end.
128
Note: See TracBrowser for help on using the repository browser.