Advertisement
Guest User

Untitled

a guest
May 18th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.22 KB | None | 0 0
  1. procedure TGameOver.cmbBoxUsersChange(Sender: TObject);
  2. begin
  3.    edtNewName.Text := '';
  4. end;
  5.  
  6. procedure TGameOver.edtNewNameKeyPress(Sender: TObject; var Key: Char);
  7. begin
  8.    if (Length(edtNewName.Text) >= 15) and (Key <> #8) then
  9.       Key := #0;
  10.    if Length(edtNewName.Text) >= 0 then
  11.       cmbBoxUsers.ItemIndex := 0;
  12.  
  13. end;
  14.  
  15. procedure TGameOver.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  16. begin
  17.    mplrDeathMusic.Stop;
  18.    mplrDeathMusic.Close;
  19. end;
  20.  
  21. procedure TGameOver.FormCreate(Sender: TObject);
  22. const
  23.    strNameOfFile = 'TypedFile.dat';
  24. var
  25.    usrFile: File of TUsers;
  26.    i: integer;
  27. begin
  28.    cmbBoxUsers.Items.Add('');
  29.    AssignFile(usrFile, strNameOfFile);
  30.    if FileExists(strNameOfFile) then
  31.       Reset(usrFile)
  32.    else
  33.       Rewrite(usrFile);
  34.    mplrDeathMusic.Open;
  35.    mplrDeathMusic.Play;
  36.    if FileSize(usrFile) > 0 then
  37.    begin
  38.       SetLength(usrArray, FileSize(usrFile));
  39.       for i := 0 to FileSize(usrFile) - 1 do
  40.       begin
  41.          Read(usrFile, usrArray[i]);
  42.          cmbBoxUsers.Items.Add(usrArray[i].strName);
  43.       end;
  44.    end
  45.    else
  46.    begin
  47.       Rewrite(usrFile);
  48.       SetLength(usrArray, FileSize(usrFile));
  49.    end;
  50.    CloseFile(usrFile);
  51. end;
  52.  
  53. procedure TGameOver.pnlOKClick(Sender: TObject);
  54. const
  55.    strNameOfFile = 'TypedFile.dat';
  56. var
  57.    usrFile: File of TUsers;
  58.    i: Integer;
  59.    blAddNewName, blChangeUsersScore, blTheSameName: Boolean;
  60. begin
  61.    blAddNewName := (cmbBoxUsers.Text = '') and (Length(edtNewName.Text) > 0);
  62.    blChangeUsersScore := (Length(cmbBoxUsers.Text) > 0) and (edtNewName.Text = '');
  63.    blTheSameName := False;
  64.    if blAddNewName then
  65.    begin
  66.       AssignFile(usrFile, strNameOfFile);
  67.       if FileExists(strNameOfFile) then
  68.          Reset(usrFile)
  69.       else
  70.          Rewrite(usrFile);
  71.       for i := 0 to Length(usrArray) - 1 do
  72.          if (usrArray[i].strName = edtNewName.Text) then
  73.             blTheSameName := True;
  74.       if not blTheSameName then
  75.       begin
  76.          SetLength(usrArray, Length(usrArray) + 1);
  77.          usrArray[Length(usrArray) - 1].strName := edtNewName.Text;
  78.          usrArray[Length(usrArray) - 1].intScore := StrToInt(MainForm.lblScore.Caption);
  79.          Rewrite(usrFile);
  80.          for i := 0 to Length(UsrArray) - 1 do
  81.             Write(usrFile, usrArray[i]);
  82.          Close;
  83.       end;
  84.       CloseFile(UsrFile);
  85.    end;
  86.    if blChangeUsersScore or blTheSameName then
  87.    begin
  88.       AssignFile(usrFile, strNameOfFile);
  89.       if FileExists(strNameOfFile) then
  90.          Reset(usrFile)
  91.       else
  92.          Rewrite(usrFile);
  93.       for i := 0 to Length(usrArray) - 1 do
  94.       begin
  95.          if (usrArray[i].strName = cmbBoxUsers.Text) and (usrArray[i].intScore < StrToInt(MainForm.lblScore.Caption)) and (not blTheSameName) then
  96.             usrArray[i].intScore := StrToInt(MainForm.lblScore.Caption);
  97.          if (usrArray[i].strName = edtNewName.Text) and (usrArray[i].intScore < StrToInt(MainForm.lblScore.Caption)) and (blTheSameName) then
  98.             usrArray[i].intScore := StrToInt(MainForm.lblScore.Caption);
  99.       end;
  100.       Rewrite(usrFile);
  101.       for i := 0 to Length(UsrArray) - 1 do
  102.          Write(usrFile, usrArray[i]);
  103.       CloseFile(UsrFile);
  104.       Close;
  105.    end;
  106. end;
  107.  
  108. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement