From a687aefc378b67af13703f3e115522b3e3be25b4 Mon Sep 17 00:00:00 2001
From: Pieter Bas Hofstede
Date: Fri, 20 Apr 2012 08:49:12 +0200
Subject: [PATCH] Wedstrijdinstellingen kunnen maken
---
FormOpstelling.pas | 18 ++++++---
FormSpelerGrid.dfm | 1 +
formHTPredictor.dfm | 97 +++++++++++++++++++++++++++++++++++++++------
formHTPredictor.pas | 58 +++++++++++++++++++++++++--
uHTPredictor.pas | 54 +++++++++++++++++++++++++
uOpstelling.pas | 16 ++++----
6 files changed, 214 insertions(+), 30 deletions(-)
diff --git a/FormOpstelling.pas b/FormOpstelling.pas
index d7ff818..1851c81 100644
--- a/FormOpstelling.pas
+++ b/FormOpstelling.pas
@@ -3,7 +3,7 @@
interface
uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
+ Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, uHTPredictor,
ExtCtrls, uSelectie, uOpstelling, FormOpstellingPlayer, StdCtrls;
type
@@ -34,6 +34,9 @@ TfrmOpstelling = class(TForm)
FOpstellingPlayerArray: array[1..14] of TfrmOpstellingPlayer;
FOpstellingAanvoerder: TfrmOpstellingPlayer;
FOpstellingSpelhervatter: TfrmOpstellingPlayer;
+ FWedstrijdPlaats: TWedstrijdPlaats;
+ FZelfVertrouwen: double;
+ FTeamgeest: double;
procedure SetSelectie(const Value: TSelectie);
procedure FreeObjecten;
{ Private declarations }
@@ -49,21 +52,26 @@ TfrmOpstelling = class(TForm)
end;
-function ToonOpstelling(aParent: TWinControl; aSelectie: TSelectie): TfrmOpstelling;
+function ToonOpstelling(aParent: TWinControl; aSelectie: TSelectie; aWedstrijdPlaats: TWedstrijdPlaats; aZelfvertrouwen,
+ aTeamgeest: double): TfrmOpstelling;
implementation
uses
- uHTPredictor, Math;
+ Math;
{$R *.DFM}
-function ToonOpstelling(aParent: TWinControl; aSelectie: TSelectie): TfrmOpstelling;
+function ToonOpstelling(aParent: TWinControl; aSelectie: TSelectie; aWedstrijdPlaats: TWedstrijdPlaats; aZelfvertrouwen,
+ aTeamgeest: double): TfrmOpstelling;
begin
Result := TfrmOpstelling.Create(nil);
Result.Parent := aParent;
+ Result.FWedstrijdPlaats := aWedstrijdPlaats;
+ Result.FZelfvertrouwen := aZelfvertrouwen;
+ Result.FTeamgeest := aTeamgeest;
Result.Selectie := aSelectie;
Result.Align := alClient;
@@ -114,7 +122,7 @@ procedure TfrmOpstelling.SetSelectie(const Value: TSelectie);
FSelectie := Value;
- FOpstelling := TOpstelling.Create(Self, zWonderbaarlijk, wThuis, 8.3);
+ FOpstelling := TOpstelling.Create(Self, FWedstrijdPlaats, FZelfvertrouwen, FTeamgeest);
FOpstelling.Selectie := Selectie;
FOpstellingPlayerArray[1] := FormOpstellingPlayer.ToonOpstellingPlayer(pnlOpstelling, FOpstelling, pKP);
diff --git a/FormSpelerGrid.dfm b/FormSpelerGrid.dfm
index 518a38e..1438916 100644
--- a/FormSpelerGrid.dfm
+++ b/FormSpelerGrid.dfm
@@ -45,6 +45,7 @@ object frmSpelerGrid: TfrmSpelerGrid
OptionsData.DeletingConfirmation = False
OptionsData.Inserting = False
OptionsView.ColumnAutoWidth = True
+ OptionsView.GroupByBox = False
object cxGridSpelersViewLAND: TcxGridDBColumn
Caption = 'Land'
DataBinding.FieldName = 'LAND'
diff --git a/formHTPredictor.dfm b/formHTPredictor.dfm
index 4d4664d..7dbff9b 100644
--- a/formHTPredictor.dfm
+++ b/formHTPredictor.dfm
@@ -1,8 +1,8 @@
object frmHTPredictor: TfrmHTPredictor
- Left = 480
- Top = 257
+ Left = 353
+ Top = 54
Width = 1018
- Height = 673
+ Height = 734
Caption = 'HT Predictor'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
@@ -18,13 +18,13 @@ object frmHTPredictor: TfrmHTPredictor
TextHeight = 13
object cxpgctrlHTPredictor: TcxPageControl
Left = 0
- Top = 0
+ Top = 60
Width = 1002
- Height = 615
+ Height = 616
ActivePage = cxtbEigenTeam
Align = alClient
TabOrder = 0
- ClientRectBottom = 615
+ ClientRectBottom = 616
ClientRectRight = 1002
ClientRectTop = 24
object cxtbTegenstander: TcxTabSheet
@@ -34,7 +34,7 @@ object frmHTPredictor: TfrmHTPredictor
Left = 0
Top = 313
Width = 1002
- Height = 298
+ Height = 279
Align = alClient
BevelOuter = bvNone
Caption = 'Scherm voor opstelling'
@@ -66,7 +66,7 @@ object frmHTPredictor: TfrmHTPredictor
Left = 0
Top = 0
Width = 1002
- Height = 317
+ Height = 284
Align = alTop
BevelOuter = bvNone
Caption = 'Scherm voor spelersgrid'
@@ -74,9 +74,9 @@ object frmHTPredictor: TfrmHTPredictor
end
object Panel4: TPanel
Left = 0
- Top = 317
+ Top = 284
Width = 1002
- Height = 274
+ Height = 308
Align = alClient
BevelOuter = bvNone
Caption = 'Scherm voor opstelling'
@@ -93,11 +93,11 @@ object frmHTPredictor: TfrmHTPredictor
Left = 0
Top = 3
Width = 1002
- Height = 271
+ Height = 305
ActivePage = cxTabSheet1
Align = alClient
TabOrder = 0
- ClientRectBottom = 271
+ ClientRectBottom = 305
ClientRectRight = 1002
ClientRectTop = 24
object cxTabSheet1: TcxTabSheet
@@ -133,6 +133,79 @@ object frmHTPredictor: TfrmHTPredictor
end
end
end
+ object pnlTop: TPanel
+ Left = 0
+ Top = 0
+ Width = 1002
+ Height = 60
+ Align = alTop
+ BevelOuter = bvNone
+ TabOrder = 5
+ object Label1: TLabel
+ Left = 216
+ Top = 8
+ Width = 74
+ Height = 13
+ Caption = 'Zelfvertrouwen'
+ end
+ object Label2: TLabel
+ Left = 216
+ Top = 28
+ Width = 53
+ Height = 13
+ Caption = 'Teamgeest'
+ end
+ object lblZVOmschrijving: TLabel
+ Left = 377
+ Top = 8
+ Width = 188
+ Height = 13
+ AutoSize = False
+ end
+ object lblTSOmschrijving: TLabel
+ Left = 377
+ Top = 28
+ Width = 188
+ Height = 13
+ AutoSize = False
+ end
+ object btnOk: TButton
+ Left = 920
+ Top = 24
+ Width = 75
+ Height = 25
+ Caption = 'Ok'
+ TabOrder = 0
+ OnClick = btnOkClick
+ end
+ object ceZelfvertrouwen: TcxCurrencyEdit
+ Left = 304
+ Top = 3
+ Properties.DisplayFormat = '0.00'
+ Properties.MaxValue = 10
+ Properties.OnChange = ceZelfvertrouwenPropertiesChange
+ TabOrder = 1
+ Width = 68
+ end
+ object ceTeamgeest: TcxCurrencyEdit
+ Left = 304
+ Top = 24
+ Properties.DisplayFormat = '0.00'
+ Properties.MaxValue = 10
+ Properties.OnChange = ceTeamgeestPropertiesChange
+ TabOrder = 2
+ Width = 68
+ end
+ object rgWedstrijdplaats: TcxRadioGroup
+ Left = 8
+ Top = 0
+ Caption = 'Wedstrijd'
+ Properties.Items = <>
+ TabOrder = 3
+ Height = 59
+ Width = 185
+ end
+ end
object dxBarManager1: TdxBarManager
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
diff --git a/formHTPredictor.pas b/formHTPredictor.pas
index d591a2c..f2c3ba8 100644
--- a/formHTPredictor.pas
+++ b/formHTPredictor.pas
@@ -7,7 +7,8 @@ interface
cxPC, cxControls, dxBar, ImgList, cxClasses, cxGridLevel, uSelectie,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, uRatingBijdrages,
cxGridDBTableView, cxGrid, Db, dxmdaset, ExtCtrls, StdCtrls, dxCntner,
- Menus;
+ Menus, dxEditor, dxExEdtr, dxEdLib, dxDBELib, cxContainer, cxEdit,
+ cxTextEdit, cxCurrencyEdit, cxGroupBox, cxRadioGroup;
type
TfrmHTPredictor = class(TForm)
@@ -34,8 +35,20 @@ TfrmHTPredictor = class(TForm)
Afsluiten1: TMenuItem;
Instellingen1: TMenuItem;
Ratingbijdrages1: TMenuItem;
+ pnlTop: TPanel;
+ btnOk: TButton;
+ Label1: TLabel;
+ Label2: TLabel;
+ ceZelfvertrouwen: TcxCurrencyEdit;
+ ceTeamgeest: TcxCurrencyEdit;
+ lblZVOmschrijving: TLabel;
+ lblTSOmschrijving: TLabel;
+ rgWedstrijdplaats: TcxRadioGroup;
procedure FormCreate(Sender: TObject);
procedure Ratingbijdrages1Click(Sender: TObject);
+ procedure btnOkClick(Sender: TObject);
+ procedure ceZelfvertrouwenPropertiesChange(Sender: TObject);
+ procedure ceTeamgeestPropertiesChange(Sender: TObject);
private
FSelectie_Eigen: TSelectie;
FSelectie_Tegen: TSelectie;
@@ -56,7 +69,7 @@ TfrmHTPredictor = class(TForm)
implementation
uses
- FormSpelerGrid, uPlayer, FormOpstelling, FormRatingBijdrages;
+ FormSpelerGrid, uPlayer, FormOpstelling, FormRatingBijdrages, uHTPredictor, Math;
{$R *.DFM}
@@ -103,17 +116,27 @@ procedure TfrmHTPredictor.ToonRatingbijdrages;
Result: None
-----------------------------------------------------------------------------}
procedure TfrmHTPredictor.FormCreate(Sender: TObject);
+var
+ vCount: integer;
+ vItem: TcxRadioGroupItem;
begin
cxpgctrlHTPredictor.ActivePage := cxtbTegenstander;
+ for vCount := Ord(Low(TWedstrijdPlaats)) to Ord(High(TWedstrijdPlaats)) do
+ begin
+ vItem := rgWedstrijdplaats.Properties.Items.Add;
+
+ vItem.Caption := (uHTPredictor.WedstrijdPlaatsToString(TWedstrijdPlaats(vCount)));
+ vItem.Value := vCount;
+ end;
+ rgWedstrijdplaats.ItemIndex := 0;
+
FRatingBijdrages := TRatingBijdrages.Create;
FSelectie_Tegen := ToonSpelersGrids(pnlSpelersGrid1, cxtbTegenstander);
FSelectie_Eigen := ToonSpelersGrids(pnlSpelersGrid2, cxtbEigenTeam);
FSelectie_Eigen.RatingBijdrages := FRatingBijdrages;
FSelectie_Tegen.RatingBijdrages := FRatingBijdrages;
-
- FormOpstelling.ToonOpstelling(cxTabSheet1, FSelectie_Eigen);
end;
procedure TfrmHTPredictor.Ratingbijdrages1Click(Sender: TObject);
@@ -121,4 +144,31 @@ procedure TfrmHTPredictor.Ratingbijdrages1Click(Sender: TObject);
ToonRatingbijdrages;
end;
+procedure TfrmHTPredictor.btnOkClick(Sender: TObject);
+begin
+ btnOk.Visible := FALSE;
+
+ FormOpstelling.ToonOpstelling(cxTabSheet1, FSelectie_Eigen, TWedstrijdPlaats(rgWedstrijdplaats.ItemIndex),
+ ceZelfvertrouwen.Value, ceTeamgeest.Value);
+
+ pnlTop.Enabled := FALSE;
+end;
+
+{-----------------------------------------------------------------------------
+ Author: Pieter Bas
+ Datum: 20-04-2012
+ Doel:
+
+
+-----------------------------------------------------------------------------}
+procedure TfrmHTPredictor.ceZelfvertrouwenPropertiesChange(Sender: TObject);
+begin
+ lblZVOmschrijving.Caption := uHTPredictor.TeamZelfvertrouwenToString(TTeamZelfvertrouwen(Floor(ceZelfvertrouwen.Value)));
+end;
+
+procedure TfrmHTPredictor.ceTeamgeestPropertiesChange(Sender: TObject);
+begin
+ lblTSOmschrijving.Caption := uHTPredictor.TeamSpiritToString(TTeamSpirit(Floor(ceTeamgeest.Value)));
+end;
+
end.
diff --git a/uHTPredictor.pas b/uHTPredictor.pas
index b4f9770..3014897 100644
--- a/uHTPredictor.pas
+++ b/uHTPredictor.pas
@@ -9,6 +9,7 @@ interface
TPlayerPosition = (pOnbekend, pKP, pRB, pRCV, pCV, pLCV, pLB, pRW, pRCM, pCM, pLCM, pLW, pRCA, pCA, pLCA);
TPlayerOrder = (oNormaal, oVerdedigend, oAanvallend, oNaarVleugel, oNaarMidden);
TTeamZelfvertrouwen = (zNietBestaand, zRampzalig, zWaardeloos, zSlecht, zBehoorlijk, zSterk, zWonderbaarlijk, zLichtelijkOverdreven, zOverdreven, zCompleetOverdreven);
+ TTeamSpirit = (sKoudeOorlog, sMoorddadig, sWoedend, sGeirriteerd, sBedaard, sKalm, sContent, sTevreden, sDolgelukkig, sInDeWolken, sParadijsOpAarde);
TOpstellingMotivatie = (mNormaal, mPIC, mMOTS);
TOpstellingTactiek = (tNormaal, tPressie, tCounter, tCentrumAanval, tVleugelAanval, tCreatiefSpel, tAfstandsSchoten);
TOpstellingCoach = (cNeutraal, cVerdedigend, cAanvallend);
@@ -17,6 +18,9 @@ interface
function ImportSpelers(aXLSFile:String; aPlayerDataSet:TdxMemData):String;
function AllPlayerFieldsMapped(aPlayerDataSet: TdxMemData):boolean;
function OrderToString(aOrder: TPlayerOrder): String;
+function WedstrijdPlaatsToString(aWedstrijdPlaats: TWedstrijdPlaats): String;
+function TeamZelfvertrouwenToString(aTeamZelfvertrouwen: TTeamZelfvertrouwen): String;
+function TeamSpiritToString(aTeamSpirit: TTeamSpirit): String;
function PlayerPosToRatingPos(aPosition:TPlayerPosition; aOrder: TPlayerOrder; aSpec: String):String;
implementation
@@ -185,6 +189,56 @@ function OrderToString(aOrder: TPlayerOrder): String;
end;
end;
+
+function WedstrijdPlaatsToString(aWedstrijdPlaats: TWedstrijdPlaats): String;
+begin
+ case aWedstrijdPlaats of
+ wThuis: Result := 'Thuis';
+ wDerby: Result := 'Derby';
+ wUit: Result := 'Uit';
+ end;
+end;
+
+{-----------------------------------------------------------------------------
+ Author: Pieter Bas
+ Datum: 20-04-2012
+ Doel:
+
+
+-----------------------------------------------------------------------------}
+function TeamZelfvertrouwenToString(aTeamZelfvertrouwen: TTeamZelfvertrouwen): String;
+begin
+ case aTeamZelfvertrouwen of
+ zNietBestaand: Result := 'niet bestaand';
+ zRampzalig: Result := 'rampzalig';
+ zWaardeloos: Result := 'waardeloos';
+ zSlecht: Result := 'slecht';
+ zBehoorlijk: Result := 'behoorlijk';
+ zSterk: Result := 'sterk';
+ zWonderbaarlijk: Result := 'wonderbaarlijk';
+ zLichtelijkOverdreven: Result := 'lichtelijk overdreven';
+ zOverdreven: Result := 'overdreven';
+ zCompleetOverdreven: Result := 'compleet overdreven';
+ end;
+end;
+
+function TeamSpiritToString(aTeamSpirit: TTeamSpirit): String;
+begin
+ case aTeamSpirit of
+ sKoudeOorlog: Result := 'als in de Koude Oorlog';
+ sMoorddadig: Result := 'moorddadig';
+ sWoedend: Result := 'woedend';
+ sGeirriteerd: Result := 'geïrriteerd';
+ sBedaard: Result := 'bedaard';
+ sKalm: Result := 'kalm';
+ sContent: Result := 'content';
+ sTevreden: Result := 'tevreden';
+ sDolgelukkig: Result := 'dolgelukkig';
+ sInDeWolken: Result := 'in de wolken';
+ sParadijsOpAarde: Result := 'paradijs op aarde!';
+ end;
+end;
+
{-----------------------------------------------------------------------------
Procedure: PlayerPosToRatingPos
Author: Harry
diff --git a/uOpstelling.pas b/uOpstelling.pas
index afda071..d7c09f2 100644
--- a/uOpstelling.pas
+++ b/uOpstelling.pas
@@ -14,7 +14,7 @@ TOpstelling = class
FOpstellingOrderArray: array[1..14] of TPlayerOrder;
FSpelhervatter: TPlayer;
FAanvoerder: TPlayer;
- FZelfvertrouwen: TTeamZelfvertrouwen;
+ FZelfvertrouwen: double;
FMotivatie: TOpstellingMotivatie;
FTactiek: TOpstellingTactiek;
FCoach: TOpstellingCoach;
@@ -24,7 +24,7 @@ TOpstelling = class
procedure SetAanvoerder(const Value: TPlayer);
procedure SetSpelhervatter(const Value: TPlayer);
procedure UpdateRatings;
- procedure SetZelfvertrouwen(const Value: TTeamZelfvertrouwen);
+ procedure SetZelfvertrouwen(const Value: double);
procedure SetMotivatie(const Value: TOpstellingMotivatie);
procedure SetTactiek(const Value: TOpstellingTactiek);
procedure SetCoach(const Value: TOpstellingCoach);
@@ -36,15 +36,14 @@ TOpstelling = class
property Selectie: TSelectie read FSelectie write SetSelectie;
property Spelhervatter: TPlayer read FSpelhervatter write SetSpelhervatter;
property Aanvoerder: TPlayer read FAanvoerder write SetAanvoerder;
- property Zelfvertrouwen: TTeamZelfvertrouwen read FZelfvertrouwen write SetZelfvertrouwen;
+ property Zelfvertrouwen: double read FZelfvertrouwen write SetZelfvertrouwen;
property WedstrijdPlaats: TWedstrijdPlaats read FWedstrijdPlaats write SetWedstrijdPlaats;
property Motivatie: TOpstellingMotivatie read FMotivatie write SetMotivatie;
property Tactiek: TOpstellingTactiek read FTactiek write SetTactiek;
property Coach: TOpstellingCoach read FCoach write SetCoach;
property TS: double read FTS write SetTS;
- constructor Create(aFormOpstelling: TForm; aZelfvertrouwen: TTeamZelfvertrouwen; aWedstrijdPlaats: TWedstrijdPlaats;
- aTS: double);
+ constructor Create(aFormOpstelling: TForm; aWedstrijdPlaats: TWedstrijdPlaats; aZelfvertrouwen, aTS: double);
destructor Destroy; override;
function GetPositionOfPlayer(aPlayer: TPlayer): TPlayerPosition;
@@ -169,8 +168,7 @@ function TOpstelling.CA: double;
Result := VerrekenTypeCoach(Result, FALSE);
end;
-constructor TOpstelling.Create(aFormOpstelling: TForm; aZelfvertrouwen: TTeamZelfvertrouwen;
- aWedstrijdPlaats: TWedstrijdPlaats; aTS: double);
+constructor TOpstelling.Create(aFormOpstelling: TForm; aWedstrijdPlaats: TWedstrijdPlaats; aZelfvertrouwen, aTS: double);
begin
FFormOpstelling := aFormOpstelling;
FMotivatie := mNormaal;
@@ -568,7 +566,7 @@ procedure TOpstelling.SetWedstrijdPlaats(const Value: TWedstrijdPlaats);
end;
end;
-procedure TOpstelling.SetZelfvertrouwen(const Value: TTeamZelfvertrouwen);
+procedure TOpstelling.SetZelfvertrouwen(const Value: double);
begin
if (FZelfvertrouwen <> Value) then
begin
@@ -579,7 +577,7 @@ procedure TOpstelling.SetZelfvertrouwen(const Value: TTeamZelfvertrouwen);
function TOpstelling.TeamZelfvertrouwen: double;
begin
- Result := 1 + (Ord(FZelfvertrouwen) * 0.0525);
+ Result := 1 + (FZelfvertrouwen * 0.0525);
end;
procedure TOpstelling.UpdateRatings;