Changeset 279 for trunk/Forms


Ignore:
Timestamp:
Feb 14, 2019, 10:52:04 PM (6 years ago)
Author:
chronos
Message:
  • Modified: User interface for the list of players moved to the separate form.
Location:
trunk/Forms
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormNew.lfm

    r276 r279  
    2121    Top = 60
    2222    Width = 806
    23     ActivePage = TabSheetRules
     23    ActivePage = TabSheetPlayers
    2424    Align = alClient
    2525    BorderSpacing.Around = 4
    26     TabIndex = 3
     26    TabIndex = 1
    2727    TabOrder = 0
    2828    OnChange = PageControl1Change
     
    163163      object Panel2: TPanel
    164164        Left = 0
    165         Height = 652
     165        Height = 596
    166166        Top = 0
    167167        Width = 796
    168168        Align = alClient
    169169        BevelOuter = bvNone
    170         ClientHeight = 652
    171         ClientWidth = 796
    172170        TabOrder = 0
    173         object ListViewPlayers: TListView
    174           Left = 4
    175           Height = 602
    176           Top = 4
    177           Width = 788
    178           Align = alTop
    179           Anchors = [akTop, akLeft, akRight, akBottom]
    180           BorderSpacing.Around = 4
    181           Columns = <         
    182             item
    183               Caption = 'Name'
    184               Width = 200
    185             end         
    186             item
    187               Caption = 'Type'
    188               Width = 100
    189             end         
    190             item
    191               Caption = 'Color'
    192               Width = 100
    193             end         
    194             item
    195               Caption = 'Start units'
    196               Width = 790
    197             end>
    198           MultiSelect = True
    199           OwnerData = True
    200           PopupMenu = PopupMenuPlayers
    201           ReadOnly = True
    202           RowSelect = True
    203           TabOrder = 0
    204           ViewStyle = vsReport
    205           OnCustomDrawSubItem = ListViewPlayersCustomDrawSubItem
    206           OnData = ListViewPlayersData
    207           OnDblClick = ListViewPlayersDblClick
    208           OnKeyPress = ListViewPlayersKeyPress
    209           OnKeyUp = ListViewPlayersKeyUp
    210           OnSelectItem = ListViewPlayersSelectItem
    211         end
    212         object ButtonPlayerAdd: TButton
    213           Left = 16
    214           Height = 25
    215           Top = 614
    216           Width = 83
    217           Action = APlayerAdd
    218           Anchors = [akLeft, akBottom]
    219           TabOrder = 1
    220         end
    221         object ButtonPlayerModify: TButton
    222           Left = 120
    223           Height = 25
    224           Top = 614
    225           Width = 83
    226           Action = APlayerModify
    227           Anchors = [akLeft, akBottom]
    228           TabOrder = 2
    229         end
    230         object ButtonPlayerRemove: TButton
    231           Left = 224
    232           Height = 25
    233           Top = 614
    234           Width = 83
    235           Action = APlayerRemove
    236           Anchors = [akLeft, akBottom]
    237           TabOrder = 3
    238         end
    239171      end
    240172    end
     
    587519        object ComboBoxWinObjective: TComboBox
    588520          Left = 224
    589           Height = 38
     521          Height = 42
    590522          Top = 244
    591523          Width = 328
     
    765697    object ComboBoxGameSystem: TComboBox
    766698      Left = 176
    767       Height = 43
     699      Height = 42
    768700      Top = 9
    769701      Width = 254
     
    786718    left = 864
    787719    top = 216
    788     object APlayerModify: TAction
    789       Caption = 'Modify'
    790       OnExecute = APlayerModifyExecute
    791     end
    792     object APlayerAdd: TAction
    793       Caption = 'Add'
    794       OnExecute = APlayerAddExecute
    795     end
    796     object APlayerRemove: TAction
    797       Caption = 'Remove'
    798       OnExecute = APlayerRemoveExecute
    799     end
    800720    object AServerAdd: TAction
    801721      Caption = 'Add'
     
    814734    left = 864
    815735    top = 360
    816   end
    817   object PopupMenuPlayers: TPopupMenu
    818     left = 864
    819     top = 288
    820     object MenuItem1: TMenuItem
    821       Action = APlayerAdd
    822     end
    823     object MenuItem2: TMenuItem
    824       Action = APlayerModify
    825       Default = True
    826     end
    827     object MenuItem3: TMenuItem
    828       Action = APlayerRemove
    829     end
    830736  end
    831737  object PopupMenuServers: TPopupMenu
  • trunk/Forms/UFormNew.pas

    r276 r279  
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    99  ComCtrls, Spin, ExtCtrls, ActnList, ExtDlgs, Menus, UGame, UGeometry, UPlayer,
    10   UGameServer, UServerList, UMap;
     10  UGameServer, UServerList, UMap, UFormPlayers;
    1111
    1212type
     
    1616  TFormNew = class(TForm)
    1717    ActionList1: TActionList;
    18     APlayerAdd: TAction;
    19     APlayerModify: TAction;
    20     APlayerRemove: TAction;
    2118    AServerAdd: TAction;
    2219    AServerModify: TAction;
     
    3027    ButtonImageBrowse: TButton;
    3128    ButtonOk: TButton;
    32     ButtonPlayerAdd: TButton;
    33     ButtonPlayerModify: TButton;
    34     ButtonPlayerRemove: TButton;
    3529    CheckBoxBridges: TCheckBox;
    3630    CheckBoxCity: TCheckBox;
     
    6256    Label8: TLabel;
    6357    Label9: TLabel;
    64     ListViewPlayers: TListView;
    6558    ListViewServers: TListView;
    66     MenuItem1: TMenuItem;
    67     MenuItem2: TMenuItem;
    68     MenuItem3: TMenuItem;
    6959    MenuItem4: TMenuItem;
    7060    MenuItem5: TMenuItem;
     
    8070    PanelButtons: TPanel;
    8171    PanelChat: TPanel;
    82     PopupMenuPlayers: TPopupMenu;
    8372    PopupMenuServers: TPopupMenu;
    8473    RadioButtonModeLocal: TRadioButton;
     
    111100    TrackBarSizeX: TTrackBar;
    112101    TrackBarSizeY: TTrackBar;
    113     procedure APlayerAddExecute(Sender: TObject);
    114     procedure APlayerModifyExecute(Sender: TObject);
    115     procedure APlayerRemoveExecute(Sender: TObject);
    116102    procedure AServerAddExecute(Sender: TObject);
    117103    procedure AServerModifyExecute(Sender: TObject);
     
    134120    procedure FormShow(Sender: TObject);
    135121    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: TShiftState
    143       );
    144     procedure ListViewPlayersSelectItem(Sender: TObject; Item: TListItem;
    145       Selected: Boolean);
    146122    procedure ListViewServersData(Sender: TObject; Item: TListItem);
    147123    procedure ListViewServersKeyPress(Sender: TObject; var Key: char);
     
    166142    MapPreviewRedrawPending: Boolean;
    167143    NewRandSeed: Cardinal;
     144    FormPlayers: TFormPlayers;
    168145    procedure LoadGame(Game: TGame);
    169146    procedure SaveGame(Game: TGame);
     
    216193{ TFormNew }
    217194
    218 procedure TFormNew.ListViewPlayersData(Sender: TObject; Item: TListItem);
    219 begin
    220   if (Item.Index >= 0) and (Item.Index < Players.Count) then
    221   with Players[Item.Index] do begin
    222     Item.Caption := Name;
    223     Item.Data := Players[Item.Index];
    224     Item.SubItems.Add(PlayerModeText[Mode]);
    225     Item.SubItems.Add(''); // Do not show color text
    226     Item.SubItems.Add(IntToStr(StartUnits));
    227   end;
    228 end;
    229 
    230 procedure TFormNew.ListViewPlayersDblClick(Sender: TObject);
    231 begin
    232   APlayerModify.Execute;
    233 end;
    234 
    235 procedure TFormNew.ListViewPlayersKeyPress(Sender: TObject; var Key: char);
    236 begin
    237   if (Key = #13) then APlayerModify.Execute;
    238 end;
    239 
    240 procedure TFormNew.ListViewPlayersKeyUp(Sender: TObject; var Key: Word;
    241   Shift: TShiftState);
    242 begin
    243   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 begin
    250   ReloadView;
    251 end;
    252 
    253195procedure TFormNew.ListViewServersData(Sender: TObject; Item: TListItem);
    254196begin
     
    339281procedure TFormNew.LoadGame(Game: TGame);
    340282begin
    341   Players.Assign(Game.Players);
     283  FormPlayers.Players.Assign(Game.Players);
    342284  with Game do begin
    343285    CheckBoxSymetricMap.Checked := SymetricMap;
     
    370312procedure TFormNew.SaveGame(Game: TGame);
    371313begin
    372   Game.Players.Assign(Players);
     314  Game.Players.Assign(FormPlayers.Players);
    373315  with Game do begin
    374316    StoredRandSeed := NewRandSeed;
     
    510452procedure TFormNew.ReloadView;
    511453begin
    512   ListViewPlayers.Items.Count := Players.Count;
    513   ListViewPlayers.Refresh;
    514454  ListViewServers.Items.Count := ServerList.Items.Count;
    515455  ListViewServers.Refresh;
     
    522462  WinObjective: TWinObjective;
    523463begin
    524   APlayerRemove.Enabled := Assigned(ListViewPlayers.Selected) and (Players.Count > MinPlayerCount);
    525   APlayerAdd.Enabled := Players.Count < MaxPlayerCount;
    526   APlayerModify.Enabled := Assigned(ListViewPlayers.Selected);
    527464  EditImageFile.Enabled := ComboBoxMapShape.ItemIndex = Integer(msImage);
    528465  ButtonImageBrowse.Enabled := ComboBoxMapShape.ItemIndex = Integer(msImage);
     
    566503end;
    567504
    568 procedure TFormNew.ListViewPlayersCustomDrawSubItem(Sender: TCustomListView;
    569   Item: TListItem; SubItem: Integer; State: TCustomDrawState;
    570   var DefaultDraw: Boolean);
    571 begin
    572   if SubItem = 2 then
    573   with ListViewPlayers.Canvas do begin
    574     Brush.Color := TPlayer(Item.Data).Color;
    575     Brush.Style := bsSolid;
    576     FillRect(Item.DisplayRectSubItem(2, drBounds));
    577   end;
    578 end;
    579 
    580505procedure TFormNew.FormCreate(Sender: TObject);
    581506begin
    582507  GamePreview := TGame.Create;
    583   Players := TPlayers.Create;
    584508  ServerList := TServerList.Create;
    585509  FormChat := TFormChat.Create(nil);
     
    587511  FormChat.Align := alClient;
    588512  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;
    589521  Translate;
    590522end;
     
    636568begin
    637569  Core.PersistentForm.Save(Self);
    638 end;
    639 
    640 procedure TFormNew.APlayerModifyExecute(Sender: TObject);
    641 begin
    642   FormPlayer := TFormPlayer.Create(nil);
    643   try
    644     if Assigned(ListViewPlayers.Selected) then begin
    645       FormPlayer.Load(TPlayer(ListViewPlayers.Selected.Data));
    646        if FormPlayer.ShowModal = mrOk then begin
    647          FormPlayer.Save(TPlayer(ListViewPlayers.Selected.Data));
    648          ReloadView;
    649       end;
    650     end;
    651   finally
    652     FormPlayer.Free;
    653   end;
    654 end;
    655 
    656 procedure TFormNew.APlayerRemoveExecute(Sender: TObject);
    657 var
    658   I: Integer;
    659 begin
    660   for I := ListViewPlayers.Items.Count - 1 downto 0 do
    661   if ListViewPlayers.Items[I].Selected then begin
    662     Players.Remove(ListViewPlayers.Items[I].Data);
    663     if Players.Count <= MinPlayerCount then Break;
    664   end;
    665   ReloadView;
    666570end;
    667571
     
    740644end;
    741645
    742 procedure TFormNew.APlayerAddExecute(Sender: TObject);
    743 var
    744   NewPlayer: TPlayer;
    745 begin
    746   if Players.Count <= (MaxPlayerCount - 1) then begin
    747     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 
    758646procedure TFormNew.FormDestroy(Sender: TObject);
    759647begin
    760648  FreeAndNil(ServerList);
     649  FreeAndNil(FormChat);
    761650  FreeAndNil(Players);
    762   FreeAndNil(FormChat);
     651  FreeAndNil(FormPlayers);
    763652  FreeAndNil(GamePreview);
    764653end;
  • trunk/Forms/UFormPlayer.lfm

    r188 r279  
    99  Constraints.MinHeight = 344
    1010  Constraints.MinWidth = 522
     11  DesignTimePPI = 144
    1112  OnClose = FormClose
    1213  OnCreate = FormCreate
    1314  OnShow = FormShow
    1415  Position = poMainFormCenter
    15   LCLVersion = '1.8.0.4'
     16  LCLVersion = '1.8.4.0'
    1617  object Label1: TLabel
    1718    Left = 24
     
    2425  object EditName: TEdit
    2526    Left = 168
    26     Height = 36
     27    Height = 43
    2728    Top = 27
    2829    Width = 339
     
    5354  object ComboBoxMode: TComboBox
    5455    Left = 168
    55     Height = 36
     56    Height = 38
    5657    Top = 72
    5758    Width = 339
     
    8687  object ColorBox1: TColorBox
    8788    Left = 168
    88     Height = 40
     89    Height = 42
    8990    Top = 120
    9091    Width = 339
     
    104105  object ComboBoxAgressivity: TComboBox
    105106    Left = 168
    106     Height = 40
     107    Height = 42
    107108    Top = 168
    108109    Width = 339
     
    122123    Height = 30
    123124    Top = 208
    124     Width = 107
     125    Width = 109
    125126    Caption = 'Defensive'
    126127    TabOrder = 6
     
    136137  object SpinEditStartUnits: TSpinEdit
    137138    Left = 224
    138     Height = 36
     139    Height = 43
    139140    Top = 240
    140141    Width = 112
  • trunk/Forms/UFormPlayer.pas

    r243 r279  
    3636    procedure Translate;
    3737    procedure UpdateInterface;
    38     procedure Load(Player: TPlayer);
    39     procedure Save(Player: TPlayer);
     38    procedure LoadData(Player: TPlayer);
     39    procedure SaveData(Player: TPlayer);
    4040  end;
    4141
     
    110110end;
    111111
    112 procedure TFormPlayer.Load(Player: TPlayer);
     112procedure TFormPlayer.LoadData(Player: TPlayer);
    113113begin
    114114  EditName.Text := Player.Name;
     
    121121end;
    122122
    123 procedure TFormPlayer.Save(Player: TPlayer);
     123procedure TFormPlayer.SaveData(Player: TPlayer);
    124124begin
    125125  Player.Name := EditName.Text;
Note: See TracChangeset for help on using the changeset viewer.