unit Vraag2_UXXXX;
    {Sleutel jou eksamennommer hier in}

interface

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

type
  TfrmVraag2 = class(TForm)
    MainMenu1: TMainMenu;
    OpsieA: TMenuItem;
    OpsieB: TMenuItem;
    OpsieC: TMenuItem;
    Verlaat: TMenuItem;
    redAfvoer: TRichEdit;
    procedure VerlaatClick(Sender: TObject);
    procedure OpsieAClick(Sender: TObject);
    procedure OpsieBClick(Sender: TObject);
    procedure OpsieCClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmVraag2: TfrmVraag2;

implementation

uses uFunksieXXXX;

{$R *.dfm}

VAR
  arrFunksies :array[1..20] of TFunksie;
  iAantal : Integer = 0;

procedure TfrmVraag2.FormActivate(Sender: TObject);
var
  TLeer : textfile;
  sReel, sNaam, sDatum, sPersoon : String;
  rInkomste, rUitgawes : Real;
  iDubbelPunt, iPlek         : Integer;
begin
   redAfvoer.Paragraph.TabCount := 3;
   redAfvoer.Paragraph.Tab[0] := 100;
   redAfvoer.Paragraph.Tab[1] := 240;
   redAfvoer.Paragraph.Tab[2] := 300;

  if fileExists('Data2011A.txt') <> true then
    begin
      ShowMessage('The teksleer ''Data2011.txt'' bestaan nie');
      Exit;
    end;
    AssignFile(TLeer, 'Data2011A.txt');
    Reset(TLeer);
    iAantal := 0;
    While not eof(TLeer) do
      begin
        inc(iAantal);
        readln(TLeer, sReel);
        iDubbelPunt := pos (':', sReel);
        sNaam := copy(sReel, 1, iDubbelPunt -1);
        delete(sReel, 1, iDubbelPunt);

        iPlek := pos (' op ', sReel);
        sPersoon := copy(sReel, 1, iPlek -1);
        delete(sReel, 1, iPlek + 3);

        sDatum := sReel;
        readln(TLeer, rInkomste);
        readln(TLeer, rUitgawes);
        arrFunksies[iAantal] := TFunksie.Create(sNaam, sPersoon, sDatum,
                                                     rInkomste, rUitgawes);
      end;
    CloseFile(TLeer);
end;


procedure TfrmVraag2.OpsieAClick(Sender: TObject);
var
   K :integer;
begin
   redAfvoer.Lines.Add('Naam' + #9+'Organiseerder' + #9 + 'Datum'+ #9 + 'Inkomstes'+ #9 + 'Uitgawes');
   for K := 1 to iAantal do
     begin
       redAfvoer.Lines.Add(arrFunksies[K].toString);
     end;
end;

procedure TfrmVraag2.OpsieBClick(Sender: TObject);
var
  K :integer;
begin
  redAfvoer.Lines.Clear;
  redAfvoer.Lines.Add('Organiseerder' + #9 + 'Wins');
  for K := 1 to iAantal do
    begin
       redAfvoer.Lines.Add(arrFunksies[K].skepNaamString+ #9 +
               FloatToStrF(arrFunksies[K].berekenWins, ffCurrency,8,2));
    end;
end;

procedure TfrmVraag2.OpsieCClick(Sender: TObject);
var
  K   :Integer;
  rTotaal1, rTotaal2, rTotaal3:Real;
begin
  rTotaal1 := 0;
  rTotaal2 := 0;
  rTotaal3 := 0;
  redAfvoer.Lines.Clear;
  redAfvoer.Paragraph.TabCount := 2;
  redAfvoer.Paragraph.Tab[0] := 75;
  redAfvoer.Paragraph.Tab[1] := 150;
  redAfvoer.Lines.Add('Wins per kwartaal');
  for K := 1 to iAantal do
    begin
       case arrFunksies[K].vindKwartaal of
       1: begin
           rTotaal1 := rTotaal1 + arrFunksies[K].berekenWins;
          end;
       2: begin
           rTotaal2 := rTotaal2 + arrFunksies[K].berekenWins;
          end;
       3: begin
           rTotaal3 := rTotaal3 + arrFunksies[K].berekenWins;
          end;
         end; // case
    end;
    redAfvoer.Lines.Add('');
    redAfvoer.Lines.Add('Kwartaal 1'+#9+'Kwartaal 2'+#9+'Kwartaal 3');

    redAfvoer.Lines.Add(FloatToStrF(rTotaal1,ffCurrency,8,2) + #9 +
    FloatToStrF(rTotaal2,ffCurrency,8,2) + #9 + FloatToStrF(rTotaal3,ffCurrency,8,2));
end;

procedure TfrmVraag2.VerlaatClick(Sender: TObject);
begin
  Application.Terminate;
end;

end.
