1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201:
| unit uStaat;
interface
uses classes,uIndustrieZweig,controls;
type TStaat = class(TWinControl)
public Industrie : TIndustrie; Kapital, Einwohner : integer;
constructor Create(StartKapital,SEinwohner:integer;WelcherStaat:string); virtual; procedure RundeBerechnen(StaatContainer:TStaat); procedure AttributeBerechnen; end;
implementation
constructor TStaat.Create(StartKapital,SEinwohner:integer;WelcherStaat:string); begin Kapital := Startkapital; Einwohner := SEinwohner;
<span style="color: red">Industrie := TIndustrie.Create(WelcherStaat,'Parent',true); Industrie.parent := self;</span> end;
procedure TStaat.RundeBerechnen(StaatContainer:TStaat); begin
end;
procedure TStaat.AttributeBerechnen; begin end;
end.
unit uIndustrieZweig;
interface
uses classes,sysutils,uMethoden,comctrls,controls;
type TIndustrie = class(TWinControl) private ObParent : Boolean; procedure IntegerLaden(WelcherStaat,WelcherZweig:string); procedure ZweigeErstellen(WelcherStaat:string); public IInvest,IKonsum,IRuest : TIndustrie;
Struktur, LeistungsWert : integer; Effizienz, Auslastung, Qualitaet : integer; Vielfalt, Preisniveau, NachfrageVolk, NachfrageStaat, NachfrageAusland : integer; NachfrageGesamt : integer;
constructor Create(WelcherStaat,WelcherZweig:string;IstParent:boolean); virtual;
procedure AttributeBerechnen; virtual; end;
type TIndustriezweig = class(TIndustrie) public procedure AttributeBerechnen; override; end;
implementation
constructor TIndustrie.Create(WelcherStaat,WelcherZweig:string;IstParent:boolean); begin inherited Create(nil);
If IstParent then ZweigeErstellen(WelcherStaat) else IntegerLaden(WelcherStaat,WelcherZweig);
AttributeBerechnen; end;
procedure TIndustrie.IntegerLaden(WelcherStaat,WelcherZweig:string); var Anfang,Ende : integer; Methoden : TMethoden; begin Methoden := TMethoden.Create;
Anfang := Methoden.DatenTitelFinden(WelcherStaat,'Data\Startwerte.txt'); Ende := Methoden.DatenTitelFinden('end '+WelcherStaat,'Data\Startwerte.txt');
Anfang := Methoden.DatenTitelFinden(WelcherZweig,'Data\Startwerte.txt',Anfang,Ende); Ende := Methoden.DatenTitelFinden('end '+WelcherZweig,'Data\Startwerte.txt',Anfang,Ende);
Struktur := Methoden.EigenschaftLaden('Struktur','Data\Startwerte.txt',Anfang,Ende); Effizienz := Methoden.EigenschaftLaden('Effizienz','Data\Startwerte.txt',Anfang,Ende); Qualitaet := Methoden.EigenschaftLaden('Qualitaet','Data\Startwerte.txt',Anfang,Ende); Preisniveau := Methoden.EigenschaftLaden('Preisniveau','Data\Startwerte.txt',Anfang,Ende); Vielfalt := Methoden.EigenschaftLaden('Vielfalt','Data\Startwerte.txt',Anfang,Ende); Auslastung := Methoden.EigenschaftLaden('Auslastung','Data\Startwerte.txt',Anfang,Ende); NachfrageVolk := Methoden.EigenschaftLaden('NachfrageVolk','Data\Startwerte.txt',Anfang,Ende); NachfrageStaat := Methoden.EigenschaftLaden('NachfrageStaat','Data\Startwerte.txt',Anfang,Ende); NachfrageAusland := Methoden.EigenschaftLaden('NachfrageAusland','Data\Startwerte.txt',Anfang,Ende);
Methoden.Destroy; end;
procedure TIndustrie.AttributeBerechnen; var i : integer; IndustriezweigContainer : Array[1..3] of TIndustriezweig; begin IInvest.AttributeBerechnen; IKonsum.AttributeBerechnen; IRuest.AttributeBerechnen;
IndustriezweigContainer[1] := TIndustriezweig(IInvest); IndustriezweigContainer[2] := TIndustriezweig(IKonsum); IndustriezweigContainer[3] := TIndustriezweig(IRuest);
For i := 1 to 3 do begin NachfrageVolk := NachfrageVolk + IndustriezweigContainer[i].NachfrageVolk; NachfrageStaat := NachfrageStaat + IndustriezweigContainer[i].NachfrageStaat; NachfrageAusland := NachfrageAusland + IndustriezweigContainer[i].NachfrageAusland; Struktur := Struktur + IndustriezweigContainer[i].Struktur; Effizienz := Effizienz + IndustriezweigContainer[i].Effizienz; LeistungsWert := LeistungsWert + IndustriezweigContainer[i].LeistungsWert; Vielfalt := Vielfalt + IndustriezweigContainer[i].Vielfalt; NachfrageGesamt := NachfrageGesamt + IndustriezweigContainer[i].NachfrageGesamt; end;
Vielfalt := round(Vielfalt/3); Effizienz := round(Effizienz/3); end;
procedure TIndustrie.ZweigeErstellen(WelcherStaat:string); begin IInvest := TIndustriezweig.Create(WelcherStaat,'Invest',false); IInvest.Name := 'IInvest';
IKonsum := TIndustriezweig.Create(WelcherStaat,'Konsum',false); IKonsum.Name := 'IKonsum';
IRuest := TIndustriezweig.Create(WelcherStaat,'Ruest',false); IRuest.Name := 'IRuest'; end;
procedure TIndustriezweig.AttributeBerechnen; var ParentNode : TTreeNode; begin Leistungswert := round((Effizienz/100)*Struktur); NachfrageGesamt := NachfrageVolk+NachfrageStaat+NachfrageAusland;
If Name = 'IKonsum' then begin end; end;
end. |