4D v16.3

SVG SET ATTRIBUTE

Home

 
4D v16.3
SVG
SVG SET ATTRIBUTE

SVG SET ATTRIBUTE 


 

SVG SET ATTRIBUTE ( {* ;} Bildobjekt ; Element_ID ; attrName ; attrWert {; attrName2 ; attrWert2 ; ... ; attrNameN ; attrWertN} {; *}) 
Parameter Typ   Beschreibung
Operator in Mit Stern: BildObjekt ist ein Objektname (String)
Ohne Stern: BildObjekt ist eine Variable
Bildobjekt  Bild in Mit *: Objektname, ohne *: Variable
Element_ID  Text in ID des Elements, wo ein bzw. mehrere Attribute gesetzt sind
attrName  String in Zu definierendes Attribut
attrWert  String, Lange Ganzzahl in Neuer Wert des Attributs
Operator in Mit *: Internen DOM Baum des SVG Bildes ändern (nur Variable)

Der Befehl SVG SET ATTRIBUTE ändert den Wert eines vorhandenen Attributs im SVG Rendering Baum eines angezeigten Bildes oder im internen DOM Baum eines Bildes. 

Mit dem optionalen Parameter * geben Sie an, dass der Parameter Bildobjekt ein Objektname (String) ist. In diesem Fall gilt der Befehl für die Parameter des gerenderten Bildes, das dem Objekt zugewiesen ist. Beachten Sie, dass die Parameter und folglich auch das gerenderte Bild des Objekts nur erstellt werden, wenn SVG SET ATTRIBUTE mindestens einmal aufgerufen wird.
Ohne den Parameter * geben Sie an, dass der Parameter Bildobjekt eine Variable oder ein Feld ist. Dann übergeben Sie eine Variablen- oder Feldreferenz (nur Objektvariable) anstelle eines String. In diesem Fall gilt der Befehl für das gerenderte Bild für alle Objekte, welche die Variable oder das Feld benutzen.

Standardmäßig gelten die durch diesen Befehl gemachten Änderungen nur für die gerenderten Bilder; sie werden nicht in der Datenquelle gespeichert (interner DOM Baum) und gehen verloren, wenn das Bild per Programmierung entfernt wird oder wenn das Formular geschlossen wird. Sie können diese Änderungen jedoch in den internen DOM Baum des Bildes übertragen, wenn der Parameter Bildobjekt auf eine Variable verweist: Dazu müssen Sie nur den zweiten Stern als letzten Parameter übergeben. Auf diese Weise können Sie die Änderungen direkt beibehalten.

Hinweise:

  • Änderungen in den internen DOM Baum lassen sich nicht übertragen, wenn der Parameter Bildobjekt auf ein Objekt verweist.
  • Zum Übertragen von Änderungen muss die SVG Variable über ein DOM Dokument erstellt worden sein (über den Befehl DOM EXPORT TO VAR). Wurde die SVG Variable über eine Datei erstellt und übergeben Sie den zweiten Stern, führt der Befehl nichts aus und ein Fehler wird erzeugt, weil die Datenquelle in diesem Fall kein änderbares DOM Dokument enthält.
  • Um die Datenquelle eines SVG Bildes zu ändern, können Sie auch die XML DOM Befehle oder die MissingRef verwenden.

Der Parameter Element_ID gibt die ID ("id" oder "xml:id" Attribut) des Elements an, dessen Attribut(e) Sie ändern wollen.

In den Parametern attrName und attrWert übergeben Sie jeweils das zu schreibende Attribut und seinen Wert, wie Variablen, Felder oder tatsächliche Werte. Sie können beliebig viele Paare Attribut/Wert übergeben.


Mit dem Befehl SVG SET ATTRIBUTE können Sie die meisten der SVG Attribute ändern (jedoch nicht hinzufügen oder löschen), wie z.B. 'fill', 'opacity', 'font-family', etc. Die komplette Übersicht der SVG Attribute finden Sie in den entsprechenden Dokumenten im Internet, z.B.  http://www.w3.org/TR/SVG11/attindex.html. Das gerenderte Bild wird sofort aktualisiert; die Änderungen werden werden unmittelbar aktualisiert; sie werden in einer Reihe der Kindelemente für vererbte Stilarten fortgeführt.

Beachten Sie, dass sich aus technischen Gründen die Attribute bestimmter Elemente sowie bestimmte Attribute nicht verändern lassen. Nachfolgende Tabelle zeigt eine Übersicht:

Elemente, deren Attribute sich ändern lassen

svgEinschränkung:
- "Breite" und "Höhe" sind nicht modifizierbar (1)
- "viewBox" lässt sich nur ändern, wenn "Breite" und "Höhe" im Originaldokument angegeben sind.
g
defs
use
FilterEinschränkung: Kindelements fe_xxx lässt sich nicht ändern
Kreis
Ellypse
Linie
polylinie
Polygon
Pfad
rect
Text, tspan, TextBereichDas spezifische Attribut "4d-text" wird verwendet, um Text im Element "Text", "tspan" oder "TextBereich" zu ändern (siehe Beispiel)
Bild

Elemente, deren Attribute sich nicht ändern lassen

linearerGradient, radialerGradient, Stop, Vollfarbe, Marker, Symbol, clipPath, Filter und Elemente, die mit fe beginnen, Stil, MusterDiese Gruppe bezeichnet alle Elemente, auf die verwiesen werden kann oder die in einem Element enthalten sind, auf das verwiesen werden kann. D.h., es ist nicht möglich, zum Beispiel die Attribute eines Gradienten zu ändern (es ist jedoch möglich, den verwendeten Gradienten zu ändern). Um z.B. einen Marker von schwarz auf rot zu ändern, müssen beide Marker im SVG Dokument definiert werden (einer schwarz und einer rot) und einen davon auswählen. Es ist auch nicht möglich, die Farbe eines Rechtecks zu ändern, wenn das Elternelement ein Symbol oder Marker ist.

Attribute, die sich nicht ändern lassen

id oder xml:id
lang oder xml:lang
class oder xml:class
Breite, HöheBetrifft nur die Attribute des 'svg' Elements (1)

(1) Diese Attribute lassen sich nicht ändern, da sie das Ergebnisbild definieren und strukturieren. Mit den Attributen Breite und Höhe des svg Elements können Sie die ursprünglichen Ausmaße des Bildes in 4D definieren. Diese Maße müssen nach Erstellen des Bildes konstant bleiben. (Es ist jedoch möglich, die Ausmaße des Ergebnisbildes über den 4D Befehl TRANSFORM PICTURE zu ändern).

Unter dem Befehl SVG GET ATTRIBUTE finden Sie die Liste der 4D Attribute, die für Animation reserviert und vorgesehen sind.

Versuchen Sie, das Attribut eines Elements zu verändern, das nicht unterstützt wird oder zu einem Kindelement gehört, führt der Befehl nichts aus und es wird kein Fehler erzeugt.

Wird dieser Befehl nicht im Kontext eines Formulars ausgeführt, oder wurde ein ungültiger Parameter Bildobjekt übergeben, wird die Systemvariable OK auf 0 gesetzt. Wurde der Befehl korrekt ausgeführt, wird sie auf 1 gesetzt.

Den Inhalt eines Elements vom Typ Text verändern:

 SVG SET ATTRIBUTE(*;picture_object_name;text_element_ID;"4d-text";"This is a text")

Hinweis: Es gibt keinen Namensbereich, so dass das Attribut ohne Risiko eines Namenskonflikts in einem CSS Style Sheet verwendbar ist.



Siehe auch 

SVG GET ATTRIBUTE

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: SVG
Nummer: 1055

Dieser Befehl ändert die Systemvariable OK

 
GESCHICHTE 

Erstellt: 4D v12
Geändert: 4D v12.3

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)