Ich probiere gerade die Komponente aus.
Mir ist mit einer .svg-Datei passiert, dass die Angaben in "mm" waren. Entsprechender Fehler korrigiert:
Delphi-Quellcode:
unit RedeemerSVGHelpers;
// Zeile 93
if EndsText('
px', temp)
then
Delete(temp, Length(temp) - 1, 2)
// Standardeinheit, ignorieren
else if EndsText('
pt', temp)
then
Unterstützung für "mm" hinzugefügt. Schaut normal aus.
Delphi-Quellcode:
unit RedeemerSVGHelpers;
// Zeile 93
if EndsText('
px', temp)
then
Delete(temp, Length(temp) - 1, 2)
// Standardeinheit, ignorieren
else if EndsText('
mm', temp)
then
Delete(temp, Length(temp) - 1, 2)
// Standardeinheit, ignorieren
else
if EndsText('
pt', temp)
then
Evtl. sollte die Prozedur so angepasst werden, dass der Text ist "temp" so bereinigt wird, dass wirklich nur Zahlen 0-9, "." und "," drin stehen dürfen, falls andere Einheiten hiermit immer noch nicht abgedeckt sind? Zumindest Incscape bietet neben "mm" noch "pc", "in" und "cm" an...
Delphi-Quellcode:
// Zeile 113
Value := ReadFloat(temp) * Factor;
Frage 1
Ein tatsächliches Problem was ich habe: Die andere Datei (siehe Anhang) wird nur hier nur als schwarzes Rechteck angezeigt, lässt sich in anderen Programmen aber ganz normal öffnen...
Frage 2
Delphi-Quellcode:
SVG := TSVGImage.Create;
SVG.LoadFromFile('c:\temp\svg.svg');
SVG.SetSize(1000,900);
Image1.Picture.Assign(SVG);
Das Bild wird leider nur ganz klein oben links dargestellt (ca. 32x32 px), des Rest des Bildes (1000x900 px) ist schwarz? Wie vergrößert man die SVG Graphik korrekt? Ich habe keine Ahnung wie ich das Callback-Event
type TSizeCallbackEvent = procedure (const Viewport: TRealRect; var Dimensions: TRealPoint) of object;
innerhalb einer Prozedur (bzw. überhaupt) verwenden soll, hier fehlt mir komplett sowohl Grundlagenwissen wie Beispiel...
Delphi 10.4 32-Bit auf Windows 10 Pro 64-Bit, ehem. Delphi 2010 32-Bit auf Windows 10 Pro 64-Bit