Changeset 279 for trunk/Forms/UFormNew.pas
- Timestamp:
- Feb 14, 2019, 10:52:04 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormNew.pas
r276 r279 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 9 ComCtrls, Spin, ExtCtrls, ActnList, ExtDlgs, Menus, UGame, UGeometry, UPlayer, 10 UGameServer, UServerList, UMap ;10 UGameServer, UServerList, UMap, UFormPlayers; 11 11 12 12 type … … 16 16 TFormNew = class(TForm) 17 17 ActionList1: TActionList; 18 APlayerAdd: TAction;19 APlayerModify: TAction;20 APlayerRemove: TAction;21 18 AServerAdd: TAction; 22 19 AServerModify: TAction; … … 30 27 ButtonImageBrowse: TButton; 31 28 ButtonOk: TButton; 32 ButtonPlayerAdd: TButton;33 ButtonPlayerModify: TButton;34 ButtonPlayerRemove: TButton;35 29 CheckBoxBridges: TCheckBox; 36 30 CheckBoxCity: TCheckBox; … … 62 56 Label8: TLabel; 63 57 Label9: TLabel; 64 ListViewPlayers: TListView;65 58 ListViewServers: TListView; 66 MenuItem1: TMenuItem;67 MenuItem2: TMenuItem;68 MenuItem3: TMenuItem;69 59 MenuItem4: TMenuItem; 70 60 MenuItem5: TMenuItem; … … 80 70 PanelButtons: TPanel; 81 71 PanelChat: TPanel; 82 PopupMenuPlayers: TPopupMenu;83 72 PopupMenuServers: TPopupMenu; 84 73 RadioButtonModeLocal: TRadioButton; … … 111 100 TrackBarSizeX: TTrackBar; 112 101 TrackBarSizeY: TTrackBar; 113 procedure APlayerAddExecute(Sender: TObject);114 procedure APlayerModifyExecute(Sender: TObject);115 procedure APlayerRemoveExecute(Sender: TObject);116 102 procedure AServerAddExecute(Sender: TObject); 117 103 procedure AServerModifyExecute(Sender: TObject); … … 134 120 procedure FormShow(Sender: TObject); 135 121 procedure Image1Resize(Sender: TObject); 136 procedure ListViewPlayersCustomDrawSubItem(Sender: TCustomListView;137 Item: TListItem; SubItem: Integer; State: TCustomDrawState;138 var DefaultDraw: Boolean);139 procedure ListViewPlayersData(Sender: TObject; Item: TListItem);140 procedure ListViewPlayersDblClick(Sender: TObject);141 procedure ListViewPlayersKeyPress(Sender: TObject; var Key: char);142 procedure ListViewPlayersKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState143 );144 procedure ListViewPlayersSelectItem(Sender: TObject; Item: TListItem;145 Selected: Boolean);146 122 procedure ListViewServersData(Sender: TObject; Item: TListItem); 147 123 procedure ListViewServersKeyPress(Sender: TObject; var Key: char); … … 166 142 MapPreviewRedrawPending: Boolean; 167 143 NewRandSeed: Cardinal; 144 FormPlayers: TFormPlayers; 168 145 procedure LoadGame(Game: TGame); 169 146 procedure SaveGame(Game: TGame); … … 216 193 { TFormNew } 217 194 218 procedure TFormNew.ListViewPlayersData(Sender: TObject; Item: TListItem);219 begin220 if (Item.Index >= 0) and (Item.Index < Players.Count) then221 with Players[Item.Index] do begin222 Item.Caption := Name;223 Item.Data := Players[Item.Index];224 Item.SubItems.Add(PlayerModeText[Mode]);225 Item.SubItems.Add(''); // Do not show color text226 Item.SubItems.Add(IntToStr(StartUnits));227 end;228 end;229 230 procedure TFormNew.ListViewPlayersDblClick(Sender: TObject);231 begin232 APlayerModify.Execute;233 end;234 235 procedure TFormNew.ListViewPlayersKeyPress(Sender: TObject; var Key: char);236 begin237 if (Key = #13) then APlayerModify.Execute;238 end;239 240 procedure TFormNew.ListViewPlayersKeyUp(Sender: TObject; var Key: Word;241 Shift: TShiftState);242 begin243 if Key = 45 then APlayerAdd.Execute;244 if Key = 46 then APlayerRemove.Execute;245 end;246 247 procedure TFormNew.ListViewPlayersSelectItem(Sender: TObject; Item: TListItem;248 Selected: Boolean);249 begin250 ReloadView;251 end;252 253 195 procedure TFormNew.ListViewServersData(Sender: TObject; Item: TListItem); 254 196 begin … … 339 281 procedure TFormNew.LoadGame(Game: TGame); 340 282 begin 341 Players.Assign(Game.Players);283 FormPlayers.Players.Assign(Game.Players); 342 284 with Game do begin 343 285 CheckBoxSymetricMap.Checked := SymetricMap; … … 370 312 procedure TFormNew.SaveGame(Game: TGame); 371 313 begin 372 Game.Players.Assign( Players);314 Game.Players.Assign(FormPlayers.Players); 373 315 with Game do begin 374 316 StoredRandSeed := NewRandSeed; … … 510 452 procedure TFormNew.ReloadView; 511 453 begin 512 ListViewPlayers.Items.Count := Players.Count;513 ListViewPlayers.Refresh;514 454 ListViewServers.Items.Count := ServerList.Items.Count; 515 455 ListViewServers.Refresh; … … 522 462 WinObjective: TWinObjective; 523 463 begin 524 APlayerRemove.Enabled := Assigned(ListViewPlayers.Selected) and (Players.Count > MinPlayerCount);525 APlayerAdd.Enabled := Players.Count < MaxPlayerCount;526 APlayerModify.Enabled := Assigned(ListViewPlayers.Selected);527 464 EditImageFile.Enabled := ComboBoxMapShape.ItemIndex = Integer(msImage); 528 465 ButtonImageBrowse.Enabled := ComboBoxMapShape.ItemIndex = Integer(msImage); … … 566 503 end; 567 504 568 procedure TFormNew.ListViewPlayersCustomDrawSubItem(Sender: TCustomListView;569 Item: TListItem; SubItem: Integer; State: TCustomDrawState;570 var DefaultDraw: Boolean);571 begin572 if SubItem = 2 then573 with ListViewPlayers.Canvas do begin574 Brush.Color := TPlayer(Item.Data).Color;575 Brush.Style := bsSolid;576 FillRect(Item.DisplayRectSubItem(2, drBounds));577 end;578 end;579 580 505 procedure TFormNew.FormCreate(Sender: TObject); 581 506 begin 582 507 GamePreview := TGame.Create; 583 Players := TPlayers.Create;584 508 ServerList := TServerList.Create; 585 509 FormChat := TFormChat.Create(nil); … … 587 511 FormChat.Align := alClient; 588 512 FormChat.Show; 513 Players := TPlayers.Create; 514 FormPlayers := TFormPlayers.Create(nil); 515 FormPlayers.MinItemCount := MinPlayerCount; 516 FormPlayers.MaxItemCount := MaxPlayerCount; 517 FormPlayers.Players := Players; 518 FormPlayers.ManualDock(Panel2, nil, alClient); 519 FormPlayers.Align := alClient; 520 FormPlayers.Visible := True; 589 521 Translate; 590 522 end; … … 636 568 begin 637 569 Core.PersistentForm.Save(Self); 638 end;639 640 procedure TFormNew.APlayerModifyExecute(Sender: TObject);641 begin642 FormPlayer := TFormPlayer.Create(nil);643 try644 if Assigned(ListViewPlayers.Selected) then begin645 FormPlayer.Load(TPlayer(ListViewPlayers.Selected.Data));646 if FormPlayer.ShowModal = mrOk then begin647 FormPlayer.Save(TPlayer(ListViewPlayers.Selected.Data));648 ReloadView;649 end;650 end;651 finally652 FormPlayer.Free;653 end;654 end;655 656 procedure TFormNew.APlayerRemoveExecute(Sender: TObject);657 var658 I: Integer;659 begin660 for I := ListViewPlayers.Items.Count - 1 downto 0 do661 if ListViewPlayers.Items[I].Selected then begin662 Players.Remove(ListViewPlayers.Items[I].Data);663 if Players.Count <= MinPlayerCount then Break;664 end;665 ReloadView;666 570 end; 667 571 … … 740 644 end; 741 645 742 procedure TFormNew.APlayerAddExecute(Sender: TObject);743 var744 NewPlayer: TPlayer;745 begin746 if Players.Count <= (MaxPlayerCount - 1) then begin747 NewPlayer := TPlayer.Create;748 NewPlayer.Id := Players.GetNewId;749 NewPlayer.Name := SPlayer + ' ' + IntToStr(NewPlayer.Id);750 NewPlayer.Color := PlayerColors[Players.Count];751 NewPlayer.Mode := pmComputer;752 NewPlayer.Agressivity := caMedium;753 Players.Add(NewPlayer);754 ReloadView;755 end;756 end;757 758 646 procedure TFormNew.FormDestroy(Sender: TObject); 759 647 begin 760 648 FreeAndNil(ServerList); 649 FreeAndNil(FormChat); 761 650 FreeAndNil(Players); 762 FreeAndNil(Form Chat);651 FreeAndNil(FormPlayers); 763 652 FreeAndNil(GamePreview); 764 653 end;
Note:
See TracChangeset
for help on using the changeset viewer.