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:
| procedure TFrmMain.Save; var i,n:Integer; begin with TIniFile.Create(savedialog1.filename) do try if Feldbreite>= FeldHoehe then begin For i:=0 to FeldBreite-1 do For n:=0 to FeldHoehe-1 do WriteInteger(IntToStr(i), IntToStr(n), feld[i,n]); end else begin For i:=0 to FeldHoehe-1 do For n:=0 to FeldBreite-1 do WriteInteger(IntToStr(i), IntToStr(n), feld[n,i]); end; WriteInteger('Infos','Letzter Spieler',spieler); WriteInteger('Feld','Feldhöhe',FeldHoehe); WriteInteger('Feld','Feldbreite',FeldBreite); WriteBool('Infos','Computergegner',Computergegner); finally Free; end; end; procedure TFrmMain.Load; var i,n:Integer; begin with TIniFile.Create(opendialog1.filename) do try spieler := ReadInteger('Infos', 'Letzter Spieler',spieler); FeldHoehe:= ReadInteger('Feld','Feldhöhe',FeldHoehe); FeldBreite:= ReadInteger('Feld','Feldbreite',FeldBreite); Computergegner:= ReadBool('Infos','Computergegner',Computergegner); if FeldBreite>=Feldhoehe then begin //um sicher zu stellen, das wenn Feldbreite kleiner als hoehe ist, Schleife nicht zu früh abbricht For i:=0 to FeldBreite-1 do For n:=0 to FeldHoehe-1 do feld[i,n]:= ReadInteger(IntToStr(i),IntToStr(n),Feld[i,n]); end else begin For i:=0 to Feldhoehe-1 do For n:=0 to Feldbreite-1 do feld[n,i]:= ReadInteger(IntToStr(i),IntToStr(n),Feld[n,i]); end; StringGrid.RowCount:=FeldHoehe+1; StringGrid.ColCount:=FeldBreite; Stringgrid.Width:=Stringgrid.ColCount*41+3; Stringgrid.Height:=Stringgrid.RowCount*41+3; FrmMain.Height:=Stringgrid.Height+40; FrmMain.Width:=Stringgrid.Width; finally Free; end; end;
procedure TFrmMain.Speichern1Click(Sender: TObject); begin if SaveDialog1.Execute then Save end;
procedure TFrmMain.Laden1Click(Sender: TObject); var i,n:Integer; begin if OpenDialog1.Execute then Load;
end; |