unit creditssystem; interface type TCredits = class(TObject) private fcredits : integer; public constructor Create(); destructor Destroy; override; procedure AddCredit; procedure AddCoinCredit; procedure AddFreeCredit; procedure RefundCredit; procedure updatecreditview; function UseCredit : boolean; property Credits : integer read fcredits; end; implementation uses global,jukeboxform,sysutils,main; constructor TCredits.Create; begin inherited; fcredits:=0; end; destructor TCredits.Destroy; begin inherited; end; procedure TCredits.AddCredit; begin inc(fcredits); inc(config.freecredittotal); updatecreditview; end; procedure TCredits.AddCoinCredit; begin fcredits:=fcredits+(config.playspercoincredit); config.credittotal:=config.credittotal+config.playspercoincredit; writeini; jukebox.domessage('COIN INSERTED - THANK YOU'); updatecreditview; end; procedure TCredits.AddFreeCredit; begin inc(fcredits); inc(config.freecredittotal); writeini; jukebox.domessage('ADDED FREE CREDIT'); updatecreditview; end; procedure TCredits.RefundCredit; begin inc(fcredits); updatecreditview; end; function TCredits.UseCredit; begin result:=true; if fcredits=0 then begin result:=false; exit; end else begin dec(fcredits); updatecreditview; end; end; procedure TCredits.updatecreditview; var s : string; begin s:=inttostr(fcredits); s:=copy(s,1,4); jukebox.CreditStat.Caption:=s; end; end.