erstmal sorry, iwie hab ich keine mails mehr bekommen, obwohl hier noch welche geposted haben, und dooferweise hab ich die zweite seite nicht gesehen...^^
hab nach nochmaligem unterhalten mit meinem lehrer die speicher procedure so erledigt:
Delphi-Quellcode:
procedure TForm1.Speichern;
var i: integer;
Datensatz : Datentyp;
begin
if SaveDialog.Execute then
begin
LeftLeft; //unwichtige nebenprocedure
assignfile(Datei, SaveDialog.FileName);
rewrite(Datei);
for i := 1 to Max do
begin
Datensatz := DatWelt(Welt[i]); //siehe nächstem code
write(Datei,Datensatz);
end;
closefile(Datei);
BtStart.Visible := true;
end;
end;
Delphi-Quellcode:
function DatWelt(pObjekt: TObjekt): Datentyp;
begin
result.Typ := pObjekt.Typ;
result.Nummer := pObjekt.Nummer;
result.StartX := pObjekt.StartX;
result.StartY := pObjekt.StartY;
end;
und die laden procedure dementsprechend so:
Delphi-Quellcode:
procedure TForm1.Laden1Click(Sender: TObject);
var i: integer;
Datensatz : Datentyp;
begin
if MessageDlg('Wollen sie vorher speichern?', mtConfirmation,
[mbYes, mbNo], 0) = mrYes
then Speichern;
if OpenDialog.Execute then
begin
assignfile(Datei, OpenDialog.FileName);
reset(Datei);
i := 0;
NummerAktuell := 0;
while not eof(Datei) do
begin
i := i+1;
NummerAktuell := NummerAktuell+1;
read(Datei, Datensatz);
Welt[i].reset(Datensatz.Typ, Datensatz.Nummer,
Datensatz.StartX, Datensatz.StartY);
end;
closefile(Datei);
Raster.Render;
BtStart.Visible := true;
end;
end;
somit werden jetzt genau die richtigen daten gespeichert und geladen.
denn was ich nicht wusste war, dass ich vorher sozusagen versucht habe, die kompletten objekte zu speichern und das ging ja, wie schon von blup geschrieben, deutlich schwieriger...
danke trotzdem nochmal an alle und sorry für meine unbeholfenheit...