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;