Kleine Frage mal an die, die die Klasse benutzen: Mit welchen Delphi-Versionen kompiliert die? Müsst ihr was anpassen?
Zitat:
Ich frage mich gerade, warum zwischen der letzten und der aktuellen Version meiner
Unit die Grenze zwischen Eritrea und Äthiopien verschwunden ist (sie fehlt allerdings auch bei anderen SVG-Viewern).
War Eritrea im Jahre 1977 nicht ein Teil von Äthiopien?
Absolut korrekt, danke. Das erklärt's. Dann hat wohl der Ersteller der Karte die entsprechende Grenze mit irgendwas übergekritzelt, was zu der Zeit, als die Grenze da war, noch nicht unterstützt wurde.
So kannst du im LoadFromStream eine handvoll Millisekunden sparen:
Delphi-Quellcode:
sl: TStringStream;
begin
sl := TStringStream.Create('
', TCustomUTF8Encoding.Create);
try
sl.LoadFromStream(Stream);
XML := TRedeemerXML.Create(sl.DataString);
finally
sl.Free;
end;
Brachte in meinem Test überhaupt selbst mit einer 6 MiB großen SVG-Datei keinen Unterschied, außer dass die EXE 1,5 KiB größer wurde. Gestört hat mich das mit TStringList auch schon. Mich stört auch, dass der String beim Laden aus einem TMemoryStream (was in dem Projekt, wofür ich es benötige, üblich ist) zeitweise dreimal im Speicher ist. TByteStream sah auch Interessant aus, aber ich benutze mit Pos und Copy einige Funktionen, die nur für Strings (genau so) funktionieren.