Wie bereits in einem anderen Bereich schon geschrieben, sind wir gerade dabei, ein Grafikprogramm für die Schule zu erstellen. Wir bekommen allerdings Probleme, wenn wir die Sachen aus einem Filestream auslesen wollen:
Wir öffnen die Datei (kein Problem), malen etwas neues dazu, wollen die Datei wieder öffnen und bekommen einen Fehler und die Figuren der Datei werden falsch gezeichnet. Wenn wir das Programm jedoch im Einzelschrittmodus durchgehen, funktioniert es wunderbar.
Delphi-Quellcode:
procedure TFigurenContainer.OpenFile(Filename: string);
{Figuren aus einer Datei auslesen und zeichnen}
var Dat: TFilestream;
Figur: TFigur;
Typ : TFigurTyp;
begin
clear;
Dat := TFilestream.Create(Filename, fmOpenRead);
while dat.Position < (dat.Size) do begin
Dat.Read(Typ, sizeof(TFigurTyp));
case Typ of
Strecke : begin
Figur := TStrecke.create(Zeichenflaeche);
Figur.SetFTyp(Strecke);
end;
Rechteck : begin
Figur := TRechteck.create(Zeichenflaeche);
Figur.SetFTyp(Rechteck);
end;
Ellips : begin
Figur := TEllipse.create(Zeichenflaeche);
Figur.SetFTyp(Ellips);
end;
Poly : begin
Figur := TPolygon.create(Zeichenflaeche);
Figur.SetFTyp(Poly);
end;
end;
Figur.ReadObject(dat);
If Typ<>Strecke then
TFlaechenfigur(Figur).SetRegion;
add(Figur);
end;
Dat.Free;
end;
Schöne Grüße,
Val