Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit UnitChangeProfile;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, UnitListOfPlayers,
- Vcl.Menus;
- type
- TFormChangeProfile = class(TForm)
- Label1: TLabel;
- edtPlayerName: TEdit;
- btSaveName: TButton;
- btBackToMenu: TButton;
- btAddPlayer: TButton;
- cbChoosePlayer: TComboBox;
- Label2: TLabel;
- lCurrentBalance: TLabel;
- lRecordBalance: TLabel;
- btChoosePlayer: TButton;
- btDeletePayer: TButton;
- PopupMenu: TPopupMenu;
- procedure FormShow(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure btBackToMenuClick(Sender: TObject);
- procedure btSaveNameClick(Sender: TObject);
- procedure btChoosePlayerClick(Sender: TObject);
- procedure cbChoosePlayerSelect(Sender: TObject);
- procedure btAddPlayerClick(Sender: TObject);
- procedure UpdateComboBox;
- procedure btDeletePayerClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- FormChangeProfile: TFormChangeProfile;
- implementation
- {$R *.dfm}
- uses UnitMainMenu;
- procedure TFormChangeProfile.btAddPlayerClick(Sender: TObject);
- const
- MessageSamePlayers = 'Игрок с таким именем уже существует!';
- UncorrectData = 'Имя игрока должно содержать более 3 символов';
- MinName = 3;
- var
- CurPlayer: PPlayer;
- StartData: TData;
- begin
- StartData.Balance := '1000';
- StartData.MaxBalance := '1000';
- StartData.Name := edtPlayerName.Text;
- if (StartData.Name <> '') and (Length(StartData.Name) >= MinName) then
- begin
- if not FindPlayer(FirstPl, edtPlayerName.Text, CurPlayer) then
- begin
- AddToEnd(LastPl, StartData);
- edtPlayerName.Clear;
- end
- else
- MessageBox(Handle, MessageSamePlayers, 'Внимание!', MB_OK);
- end
- else
- MessageBox(Handle, UncorrectData, 'Внимание!', MB_OK);
- UpdateComboBox;
- end;
- procedure TFormChangeProfile.btBackToMenuClick(Sender: TObject);
- const
- MessageSaveChanges = 'Вы желаете сохранить изменения?';
- begin
- edtPlayerName.Clear;
- cbChoosePlayer.Clear;
- FormChangeProfile.Hide;
- FormMainMenu.Show;
- end;
- procedure TFormChangeProfile.btSaveNameClick(Sender: TObject);
- const
- EmptyName = 'Пустое поле!' + #13#10
- + 'Имя игрока должно содеражать более 3-х символов!';
- UncorrectName = 'Имя игрока должно содеражать более 3-х символов!' + #13#10
- + 'Пожалуйста введите корректное имя игрока';
- NoChange = 'Не было внесено ниикаких изменений!';
- CannotChange = 'Данные этого игрока не подлежат изменению!';
- PlayerExist = 'Игрок с таким именем уже существует!';
- MinName = 3;
- var
- CurName, NewName: String;
- CurPlayer: PPlayer;
- begin
- CurName := cbChoosePlayer.Items[cbChoosePlayer.ItemIndex];
- if CurName = 'Player1' then
- begin
- MessageBox(Handle, CannotChange, 'Внимание!', MB_ICONSTOP + MB_OK);
- Exit;
- end;
- NewName := edtPlayerName.Text;
- if NewName <> '' then
- begin
- if NewName <> CurName then
- if Length(NewName) >= MinName then
- begin
- if not FindPlayer(FirstPl, NewName, CurPlayer) then
- begin
- if FindPlayer(FirstPl, CurName, CurPlayer) then
- CurPlayer^.DataPl.Name := NewName;
- btSaveName.Enabled := False;
- UpdateComboBox;
- end
- else
- MessageBox(Handle, PlayerExist, 'Внимание!', MB_ICONINFORMATION + MB_OK);
- edtPlayerName.Clear;
- end
- else
- MessageBox(Handle, UncorrectName, 'Внимание!', MB_ICONSTOP + MB_OK)
- else
- MessageBox(Handle, NoChange, 'Внимание!', MB_ICONSTOP + MB_OK);
- end
- else
- MessageBox(Handle, EmptyName, 'Внимание!', MB_ICONSTOP + MB_OK);
- end;
- procedure TFormChangeProfile.btDeletePayerClick(Sender: TObject);
- const
- MessageUncorrectName = 'Некорректное имя игрока!';
- MinName = 3;
- var
- PlayerForDelete: ShortString;
- begin
- PlayerForDelete := edtPlayerName.Text;
- if Length(PlayerForDelete) >= 3 then
- begin
- DeletePlayer(FirstPl, LastPl, PlayerForDelete);
- UpdateComboBox;
- edtPlayerName.Clear;
- lCurrentBalance.Caption := '';
- lRecordBalance.Caption := '';
- end
- else
- MessageBox(Handle, MessageUncorrectName, 'Внимание!', MB_ICONINFORMATION + MB_OK);
- end;
- procedure TFormChangeProfile.btChoosePlayerClick(Sender: TObject);
- const
- MessageNotChoice = 'Игрок не выбран! Пожалуйста выберите игрока или вернитесь '
- + 'в главное меню через "Вернуться"';
- var
- CurName: String;
- CurPlayer: PPlayer;
- begin
- CurName :=cbChoosePlayer.Items[cbChoosePlayer.ItemIndex];
- if CurName <> '' then
- begin
- if FindPlayer(FirstPl, CurName, CurPlayer) then
- begin
- Balance := CurPlayer^.DataPl.Balance;
- PlayerName := CurPlayer^.DataPl.Name;
- btBackToMenuClick(Sender);
- end;
- end
- else
- MessageBox(Handle, MessageNotChoice, '', MB_ICONSTOP + MB_OK);
- end;
- procedure TFormChangeProfile.cbChoosePlayerSelect(Sender: TObject);
- var
- Name: String;
- CurPlayer: PPlayer;
- begin
- Name := cbChoosePlayer.Items[cbChoosePlayer.ItemIndex];
- if FindPlayer(FirstPl, Name, CurPlayer) then
- begin
- lCurrentBalance.Caption := 'Баланс - ' + CurPlayer^.DataPl.Balance;
- lRecordBalance.Caption := 'Рекорд - ' + CurPlayer^.DataPl.MaxBalance;
- edtPlayerName.Text := CurPlayer^.DataPl.Name;
- end;
- btSaveName.Enabled := True;
- end;
- procedure TFormChangeProfile.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- btBackToMenu.Click;
- end;
- procedure TFormChangeProfile.FormShow(Sender: TObject);
- var
- CurPlayer: PPlayer;
- begin
- edtPlayerName.Text := PlayerName;
- CurPlayer := FirstPl;
- while CurPlayer <> nil do
- begin
- cbChoosePlayer.Items.Add(CurPlayer^.DataPl.Name);
- CurPlayer := CurPlayer^.NextPl;
- end;
- if FindPlayer(FirstPl, PlayerName, CurPlayer) then
- begin
- lCurrentBalance.Caption := 'Баланс - ' + CurPlayer^.DataPl.Balance;
- lRecordBalance.Caption := 'Рекорд - ' + CurPlayer^.DataPl.MaxBalance;
- edtPlayerName.Text := CurPlayer^.DataPl.Name;
- end;
- end;
- procedure TFormChangeProfile.UpdateComboBox;
- var
- CurPlayer: PPlayer;
- begin
- cbChoosePlayer.Clear;
- CurPlayer := FirstPl;
- while CurPlayer <> nil do
- begin
- cbChoosePlayer.Items.Add(CurPlayer^.DataPl.Name);
- CurPlayer := CurPlayer^.NextPl;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement