Bonjour,
Durant le week-end je "joue" avec les fichiers SVG (quelques drapeaux récupérés sur wikipedia) et le composant TPath.
Je suis confronté à deux problèmes :
Tout d'abord après bien des essais j'ai compris que XmlSvg.DocumentElement.HasAttribute('viewbox') et Attribute['viewbox'] étaient sensibles à la casse or dans les fichiers SVG on retrouve aussi bien "viewbox" que "viewBox", "ViewBox", ce n'est qu'un échantillonnage mais quand même 
Question, j'ai bien une idée pour m'en dépatouiller, mais n'y aurait-il pas une option au niveau du XMLdoc ou ailleurs pour ne pas avoir à m'en occuper ?
Le deuxième problème est encore plus étrange, je me suis inspiré du billet de Jim Mc Keith pour le chargement du fichier. Dans son programme Jim passe par un TMemo qui contient les différents TPath, après une petite correction mineure (pb de conversion et de formatsettings) son programme fonctionne.
J'ai récupéré son TMemo dans un fichier SVG et repris son programme de façon à utiliser ce dernier plutôt que le TMemo. Étrangement certains nœuds (5,6,7,8, etc.) ne passent plus dans le path.data.data et lèvent une exception
(phénomène que j'ai retrouvé dans d'autres essais). Pourtant, je me suis arrangé pour qu'en cas d'erreur les données soient affichées dans un TMemo,
lorsque je reprends les données du nœud en erreur dans une sorte de TPath manuel les données sont correctes et le dessin s'affiche
comme si, entre la lecture path.data.Data:=PathNode.attribute['d'] et l'affectation Memo1.lines.Add(PathNode.attribute['d']) il y avait une différence 
dans le code de Jim McKeith il y a bien ce
StringReplace(memo1.Text, '
', '', [rfReplaceAll]));
qui me titille mais j'ai du mal à cerner dans mon contexte
Partager