Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programmzustand speichern und laden (https://www.delphipraxis.net/2024-programmzustand-speichern-und-laden.html)

nailor 5. Jan 2003 00:46

wobei sich hier

edit1.Text := ReadString('URL', 'Letzter url', '');

als dritter Wert (Standard (mit DDD)) vielleicht 'about:blank' nicht schlecht machen würde.
Ihr Problem dabei ist doch, dass sie so nur genau ein Spiel speichern kann, weill der Dateiname ja schon feststeht!

RomanK 5. Jan 2003 00:52

Hast du die ' ' weggemacht ???
Weil "Werte" ('game.ini') werden in Anführungszeichen geschrieben, Variablen (savedialog.filename) die "Werte" beinhalten ohne. ( In savedialog.filename steht der Name des files das du ausgewählt hast)

Madeleine 5. Jan 2003 00:57

*seufz* das klang wie ne richtig gute Idee, aber das wars auch nicht!
:cry: *schnief*

RomanK 5. Jan 2003 01:00

Poste doch mal bitte den Gesamten code

Madeleine 5. Jan 2003 01:08

ich hab mein Spiel mit Code als Anhang in irgendeinem Post weiter vorne
Delphi-Quellcode:
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[i,n]);
         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(savedialog1.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[i,n]:= 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;

Christian Seehase 5. Jan 2003 01:21

Moin Madeleine,

Du verwendest in der Procedure Load auch den SaveDialog1.FileName, obwohl Du bei erfolgreichem OpenDialog1.Execute Load aufrufst.

Madeleine 5. Jan 2003 01:35

oh :oops: und das beste ist, du hast recht, jetzt klappt alles nach Wunsch!!! :hello:
Danke! :party:

trebormillenium 5. Jan 2003 20:32

Hallo
ich schon wieder :-)
Habe nochmal Probleme mit dem speichern
Was ist wenn ich keinen String sonder einen TString speichern will?
Ich kriegs net hin!

phlux 5. Jan 2003 20:35

Haben TStrings nicht die Prozedur SaveToFile?

trebormillenium 5. Jan 2003 20:48

Aha so und jetzt das es ein blutiger anfänger auch versteht :-) Am besten mit Source-Code!

Schonmal vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz