![]() |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Hätte ich schon gemacht und gecheckt wo der Fehler herkommt. Aber das Demo fehlt in dem File.
Ich habe jetzt keine Zeit das alles selber nachzubauen Rollo |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Zitat:
![]() Den Quelltext der Demo-App werde ich demnächst mal beilegen. Stürzt die neueste Version immer noch bei dir ab? |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Zitat:
|
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
SVG2 ist, ebenso wie HTML4 und HTML5, im Allgemeinen kein gültiges XML. XHTML und ich glaube auch SVG1 waren XML. Für SVG2 steht das nirgendwo ganz konkret, aber im Draft steht:
Zitat:
Der erste Satz der Spezifikation wurde von SVG1 zu SVG2 von "described in XML" in "based on XML" geändert. HTML4 und HTML5 sind ganz eindeutig kein XML. <td>, <li> und viele weitere müssen ja nicht geschlossen werden. |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Danke für die Erklärung. Das klingt ja nicht so toll.
|
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Ich verstehe die Spezifikation so, dass SVG alleine XML kompatibel ist, aber auch mit HTML Syntax in HTML-Dokumente eingebettet werden kann.
Gibt es bei SVG tatsächlich Elemente die gar nicht geschlossen werden müssen, oder nur die Möglichkeit von self closing tags? |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Wenn/da es mit XML kompatibel ist, müssen alle Elemente geschlossen sein.
Allgemein ist XML mit HTML kompatibel und mit XHTML sowieso, bzw. XHTML ist eigentlich eine Erweiterung von HTML, die mit XML kompatibel ist. |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Zitat:
Ich weiß gerade keine Tags, die nur optional geschlossen werden müssen, das liegt aber auch daran, dass ich keine Website finden konnte, wo das steht. selfHTML behandelt in der Hinsicht nur SVG1. Meine Klasse lädt übrigens auch das erste SVG-Bild in HTML-Dateien, was nicht unbedingt beabsichtigt ist, aber ein nettes Feature. |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Habe die neue Version 0.2b-alpha um die Lösung mit dem alternativen UTF-8-Encoding ergänzt. Der Download enthält jetzt das Projekt für die Demoanwendung.
In dem Projekt, in dem ich das nutze, habe ich leider ein Problem:
Delphi-Quellcode:
Das liegt wohl daran, dass ich bei Create reintroduce verwende statt override, denn die CreateBlank-Methode des zugrundeliegenden PNG-Bilds benötigt die Create-Methode des PNG-Bilds, weshalb ich Create nicht überschreiben kann. Habt ihr da Ideen?
type TSVGImage = class(TPNGImage)
... end; ... procedure DoSomething(); var GraphicClass: TGraphicClass; Graphic: TGraphic; begin GraphicClass := TSVGImage; Graphic := GraphicClass.Create(); // Ruft TPNGImage.Create() auf. (schlecht) // ...aber... Graphic := TSVGImage.Create(); // Ruft TSVGImage.Create() auf. (gut) end |
AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI
Zitat:
Du rufst doch den TPNGImage.CreateBlank innerhalb deines TSVGImage.Create auf. Muss doch gehen ohne reintroduce.
Delphi-Quellcode:
...
public constructor Create(); override; procedure LoadFromStream(Stream: TStream); override; end; constructor TSVGImage.Create; begin inherited CreateBlank(COLOR_RGBALPHA, 8, 1, 1); // 0 führt beim Setzen einer neuen Größe zum Fehler end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz