unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm5 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    ListBox1: TListBox;
    Button4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form5: TForm5;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm5.FormCreate(Sender: TObject);
begin
  Stringgrid1.Cells[0,0]:='IMIĘ';
  Stringgrid1.Cells[1,0]:='Liczba punktów';

end;
//zapisz do pliku
procedure TForm5.Button1Click(Sender: TObject);
var plik:textfile;
    i,j:integer;
begin
  try
   Assignfile(plik,'tabela.txt');
   Rewrite(plik);
   with Stringgrid1 do
   for i:=1 to RowCount-1 do    //zapisane bez wiersza naglówka
     for j:=0 to 1 do Writeln(plik,Cells[j,i]);
   Closefile(plik);
  except
   ShowMessage('Problem z zapisem pliku tabela.txt');
  end;
end;

procedure TForm5.Button2Click(Sender: TObject);
begin
  Button1.Click; //zapisz dane z tabeli do pliku
  Form1.show;
  Form5.Visible:=false;
end;

procedure TForm5.Button3Click(Sender: TObject);
begin
  Button1.Click; //zapisz dane z tabeli do pliku
  Application.Terminate;
end;
 //sortuj wiersze w tabeli
procedure TForm5.Button4Click(Sender: TObject);
var i,nr_spacji: integer;
begin
   Listbox1.Clear;
    //z tabeli do listy
    with Stringgrid1 do
     for i:=1 to Rowcount-1 do
      Listbox1.Items.Add(Cells[1,i]+' '+Cells[0,i]);

    Listbox1.Sorted:=true;   //sortowanie elementów listy - wierszy tabeli
    //z listy do tabeli
    with Stringgrid1 do
    for i:=1 to Rowcount-1 do
    begin
      nr_spacji:=Pos(' ',Listbox1.Items[i-1]);
     //sortowanie rosnące
     // Cells[1,i]:=Copy(Listbox1.Items[i-1],0,nr_spacji-1);
     // Cells[0,i]:=Copy(Listbox1.Items[i-1],nr_spacji+1,Length(Listbox1.Items[i-1]));
     //sortowanie malejące
     Cells[1,Rowcount-i]:=Copy(Listbox1.Items[i-1],0,nr_spacji-1);
     Cells[0,Rowcount-i]:=Copy(Listbox1.Items[i-1],nr_spacji+1,Length(Listbox1.Items[i-1]));
    end;
end;
//czytaj dane z pliku do tabeli
procedure TForm5.FormActivate(Sender: TObject);
 var plik:textfile;
    j,wiersz:integer;
    s:string;
begin
    //odczyt poprzednich zapisanych wyników z pliku do tabeli
   if FileExists('tabela.txt') then
   begin
   Assignfile(plik,'tabela.txt');
   Reset(plik);

   wiersz:=1; //
   While not Eof(plik) do
   begin
     for j:=0 to 1 do
     begin
       Readln(plik,s);
       if s<>'' then Stringgrid1.Cells[j,wiersz]:=s;
     end;
     Inc(wiersz);
     if Stringgrid1.RowCount<wiersz then
     Stringgrid1.RowCount:=Stringgrid1.RowCount+1; //zwieksznie liczby wierszy o 1
   end;
  Closefile(plik);
  end //if fileexists
  else ShowMessage('Brak pliku z wynikami'+#13+'poprzednich graczy - tabela.txt');

  //porownanie aktualnie uzyskanego wyniku z wynikiami poprzedników
  //****
  //dodaj na końcu
  with Stringgrid1 do
  begin
    RowCount:=RowCount+1;
    Cells[0,Rowcount-1]:=Imie;
    Cells[1,Rowcount-1]:=Label1.Caption;//InttoStr(suma_punktow);
  end;
end;

end.
