1 | unit UFormPlayer;
|
---|
2 |
|
---|
3 | {$mode delphi}
|
---|
4 |
|
---|
5 | interface
|
---|
6 |
|
---|
7 | uses
|
---|
8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
---|
9 | ColorBox, Menus, Spin, UGame;
|
---|
10 |
|
---|
11 | type
|
---|
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 |
|
---|
41 | var
|
---|
42 | FormPlayer: TFormPlayer;
|
---|
43 |
|
---|
44 | implementation
|
---|
45 |
|
---|
46 | {$R *.lfm}
|
---|
47 |
|
---|
48 | uses
|
---|
49 | UCore;
|
---|
50 |
|
---|
51 | resourcestring
|
---|
52 | SHuman = 'Human';
|
---|
53 | SComputer = 'Computer';
|
---|
54 | SAgroLow = 'Low';
|
---|
55 | SAgroMedium = 'Medium';
|
---|
56 | SAgroHigh = 'High';
|
---|
57 |
|
---|
58 | { TFormPlayer }
|
---|
59 |
|
---|
60 | procedure TFormPlayer.ComboBoxModeChange(Sender: TObject);
|
---|
61 | begin
|
---|
62 | UpdateInterface;
|
---|
63 | end;
|
---|
64 |
|
---|
65 | procedure TFormPlayer.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
---|
66 | begin
|
---|
67 | Core.PersistentForm.Save(Self);
|
---|
68 | end;
|
---|
69 |
|
---|
70 | procedure TFormPlayer.FormShow(Sender: TObject);
|
---|
71 | begin
|
---|
72 | Core.PersistentForm.Load(Self);
|
---|
73 | Translate;
|
---|
74 | UpdateInterface;
|
---|
75 | end;
|
---|
76 |
|
---|
77 | procedure TFormPlayer.Translate;
|
---|
78 | var
|
---|
79 | LastIndex: Integer;
|
---|
80 | begin
|
---|
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;
|
---|
97 | end;
|
---|
98 |
|
---|
99 | procedure TFormPlayer.UpdateInterface;
|
---|
100 | begin
|
---|
101 | ComboBoxAgressivity.Visible := ComboBoxMode.ItemIndex = 1;
|
---|
102 | CheckBoxDefensive.Visible := ComboBoxMode.ItemIndex = 1;
|
---|
103 | Label4.Visible := ComboBoxMode.ItemIndex = 1;
|
---|
104 | end;
|
---|
105 |
|
---|
106 | procedure TFormPlayer.Load(Player: TPlayer);
|
---|
107 | begin
|
---|
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;
|
---|
115 | end;
|
---|
116 |
|
---|
117 | procedure TFormPlayer.Save(Player: TPlayer);
|
---|
118 | begin
|
---|
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;
|
---|
125 | end;
|
---|
126 |
|
---|
127 | end.
|
---|
128 |
|
---|