<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.aquasoft.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daniel+B%C3%A4rmann</id>
	<title>AquaSoft Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.aquasoft.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Daniel+B%C3%A4rmann"/>
	<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php/Spezial:Beitr%C3%A4ge/Daniel_B%C3%A4rmann"/>
	<updated>2026-04-19T09:59:16Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=Partikelobjekt&amp;diff=1221</id>
		<title>Partikelobjekt</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=Partikelobjekt&amp;diff=1221"/>
		<updated>2019-09-27T08:18:50Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: /* Partikel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Partikelobjekt ist vom Typ '''IParticle''' und leitet von '''[[ISlideShowObject]]''' ab. Mit diesem Objekt kann man Partikeleffekte erstellen.&lt;br /&gt;
&lt;br /&gt;
Das Partikelobjekt enthält unter anderem Eigenschaften des Typs [[IParticleRangeValue]] bzw. [[IParticleRangeValue|IParticleVectorRangeValue]]. Einige dieser Eigenschaften verfügen über Initialwerte (wie ''Size'' und ''InitialSize''). Die Initialwerte geben den Ausgangszustand des Wertes an, die Nicht-Initialwerte geben eine Änderung an. Die Initialwerte bekommen einen Wertebereich. Beim Emittieren eines Partikels wird dem neuen Partikel ein zufälliger Werte innerhalb dieses Bereichs zugewiesen. Initialwerte können sich über die Dauer des Partikelsystems ändern. Die Änderungswerte erhalten ebenfalls einen Bereich. Der Unterschied ist, dass bei ihnen vorher eine Wichtung ermittelt wird. Diese wird benutzt um die Änderungen über die Lebenszeit des Partikels immer gleich gewichtet zu haben (siehe [[#Beispiel|Beispiel]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  IParticle '''inherits from''' [[ISlideShowObject]]&lt;br /&gt;
    function InitialDirection: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function Direction: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function InitialSpeed: [[IParticleRangeValue]]  &lt;br /&gt;
    function Speed: [[IParticleRangeValue]] &lt;br /&gt;
    function InitialSize: [[IParticleRangeValue]] &lt;br /&gt;
    function Size: [[IParticleRangeValue]] &lt;br /&gt;
    function InitialRotation: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function Rotation: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function InitialRotationFrequency: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function RotationFrequency: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function InitialOpacity: [[IParticleRangeValue|IParticleRangeValue]] &lt;br /&gt;
    function Opacity: [[IParticleRangeValue|IParticleRangeValue]] &lt;br /&gt;
&lt;br /&gt;
    property Move: [[TParticleMove]] &lt;br /&gt;
    function InitialMoveStrength: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function MoveStrength: [[IParticleRangeValue|IParticleVectorRangeValue]] &lt;br /&gt;
    function InitialMoveSineFrequency: [[IParticleRangeValue]] &lt;br /&gt;
    function MoveSineFrequency: [[IParticleRangeValue]]&lt;br /&gt;
&lt;br /&gt;
    function MaxAge: [[IParticleRangeValue]] &lt;br /&gt;
    function ParticlesPerSecond: [[IParticleRangeValue]] &lt;br /&gt;
&lt;br /&gt;
    property SpriteAnimation: [[TParticleSpriteAnimation]] &lt;br /&gt;
    function InitialSpriteAnimationFrequency: [[IParticleRangeValue|IParticleRangeValue]] &lt;br /&gt;
    function SpriteAnimationFrequency: [[IParticleRangeValue]]&lt;br /&gt;
&lt;br /&gt;
    property Filename: [[IFilename]] &lt;br /&gt;
    property Clipping: Boolean &lt;br /&gt;
    property PreWarmTime: Integer &lt;br /&gt;
&lt;br /&gt;
    property Emitter: [[TParticleEmitter]]&lt;br /&gt;
    function EmitterSpread: [[IParticleRangeValue]]&lt;br /&gt;
    procedure AddEmitterClipRect(const X, Y, Width, Height, AngleZ: Single; const Invert: Boolean);&lt;br /&gt;
&lt;br /&gt;
    property Options: [[TParticleOptions]]&lt;br /&gt;
    property Environment: [[TParticleEnvironment]]&lt;br /&gt;
&lt;br /&gt;
    property Seed: Int64  &lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
&lt;br /&gt;
== Partikel ==&lt;br /&gt;
&lt;br /&gt;
* Bewegungsrichtung: Die Werte modifizieren einen Bewegungsvektor, der nach rechts zeigt. Die jeweiligen Richtungen geben Winkel an, um die der Vektor gedreht wird. Wichtig ist dabei die Reihenfolge. Als erstes wird der Winkel um die Z-Achse addiert, dann wird der Vektor um die Y-Achse gedreht und dann um die X-Achse. &lt;br /&gt;
Die Drehwinkel kann man sich anhand folgender Beispiele herleiten:&lt;br /&gt;
** Drehwinkel um X und Y = 0 zeigt der Vektor bei Z = 0 (also der Basisvektor) nach rechts, bei Z = 90 zeigt der Vektor nach unten&lt;br /&gt;
** Bei X = 0 und Z = 0, zeigt der Vektor bei Y = 90 nach hinten&lt;br /&gt;
** Bei Z = 0 und Y = 90 zeigt der Vektor bei X = 90 nach oben &lt;br /&gt;
&amp;lt;code&amp;gt;function InitialDirection: [[IParticleRangeValue|IParticleVectorRangeValue]];&amp;lt;/code&amp;gt;&lt;br /&gt;
* Richtungsänderung über die Zeit: Addition von Winkeln (zB. bei Initialrichtung von 10 und einer Richtung von 10 bekommt das Partikel die Richtung 20).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function Direction: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikelgeschwindigkeit in Bewegungsrichtung&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialSpeed: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Geschwindigkeitsänderung über die Zeit: Prozent der Initialgeschwindigkeit.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function Speed: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikelgröße. Skaliert das Partikel ohne Verzerrung so, dass die größte Richtung die Partikelgröße wird (&amp;quot;einpassen&amp;quot;). Der Wert versteht sich in Prozent zu seinem Bezugssystem (siehe [[TParticleEnvironment]]):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialSize: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Größenänderung über die Zeit: Prozent der Initialgröße.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function Size: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikeltransparenz&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialOpacity: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Transparenzänderung über die Zeit: Prozent der Initialtransparenz.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function Opacity: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikeldrehung: Man unterscheidet zwischen der statischen Lage des Partikels und einer beständigen Drehung. Beispielsweise sollen die Partikel beim Emittieren immer zwischen 10 und 20 Grad gedreht sein, die Lage aber behalten. Dafür kommt die Eigenschaft '''Rotation''' in Frage (bei einer Rotationsgeschwindigkeit von 0). Ist jedoch eine permanente Drehung gewünscht, nimmt man die '''Rotationfrequency''' (Rotationsgeschwindigkeit). Lage und Rotationsgeschwindigkeitschließen sich nicht aus. Positive Werte drehen im Uhrzeigersinn, negative entgegengesetzt. Die Werte verstehen sich als Winkeladditionen eines Basisvektoren, der die Standardrichtung angibt. Bei X = 0, Y = 0 und Z = 0 zeigt dieser Basisvektor nach rechts. Als erstes wird um Z rotiert, dann um Y, dann um X.&lt;br /&gt;
* Lage des Partikels&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialRotation: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Lageänderung über die Zeit. Additiv (zB. 10° bei 0ms und 20° bei 1000ms ergibt in der ersten Sekunde eine Drehung um 10°, danach keine weitere).&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function Rotation: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Rotationsgeschwindigkeit: Gibt die Anzahl der Drehungen in einer Sekunde an.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialRotationFrequency: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Geschwindigkeitsänderung die Zeit: Prozent der Initialgeschwindigkeit.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function RotationFrequency: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikelbewegung: Partikel können neben ihrer eigentlichen Bewegungsrichtung auch von ihrer Bewegung abweichen, zum Beispiel schwingen. &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Move: [[TParticleMove]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Maximale Stärke der Abweichungsbewegung. Die Stärke ist in Prozent der maximalen Partikelgröße angegeben. Stärke = 100 heißt also, dass ein Partikel nach oben unten so weit ausschlägt, wie es selbst groß ist. &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialMoveStrength: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Stärkenänderung über die Zeit: Prozent der Initialstärke:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function MoveStrength: [[IParticleRangeValue|IParticleVectorRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Abweichungsfrequenz: Gibt an, wie viele Schwingungen oder Kreisbewegungen in einer Sekunde vollführt werden&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialMoveFrequency: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Frequenzänderung über die Zeit: Prozent der Initialfrequenz:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function MoveFrequency: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lebensdauer des Partikels in Millisekunden. 0 heißt, dass das Partikel nie &amp;quot;stirbt&amp;quot;.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function MaxAge: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Emittierrate. Gibt an, wie viele Partikel in einer Sekunde emittiert werden.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function ParticlesPerSecond: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikelanimation. Sind im Partikelsystem mehrere Bilddateien angegeben, können die Partikel ihr Bild während ihrer Lebenszeit ändern.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property SpriteAnimation: [[TParticleSpriteAnimation]] &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Animationsgeschwindigkeit: Gibt die Anzahl der Bildwechsel pro Sekunde an&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function InitialSpriteAnimationFrequency: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Geschwindigkeitsänderung über die Zeit: Prozent der Initialgeschwindigkeit.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function SpriteAnimationFrequency: [[IParticleRangeValue]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Dateinamen der Partikelbilder&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Filename: [[IFilename]];&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikelsystem auf seine Bounds zuschneiden oder alle Partikel, die hinausragen anzeigen:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Clipping: Boolean;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikelsystem vorsimulieren. Es ist möglich, dass simuliert wird, dass das Partikelsystem bereits eine gewisse Zeit (in Millisekunden) gelaufen war, bevor es wirklich angezeigt wird. Mindestwert = 100ms&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property PreWarmTime: Integer;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Emitter ==&lt;br /&gt;
&lt;br /&gt;
* Emitter-Typ:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Emitter: [[TParticleEmitter]]  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Rand am Emitter: Wenn der Emitter vom Typ ''pePoint'' oder ''pePath'' ist, kann er einen Abstand erhalten: Beim Punkt-Emitter werden die Partikel in einem Kreis mit angebenen Abstand emittiert, beim Pfad-Emitter werden die Partikel sowohl oberhalb als auch unterhalb davon abgebildet. Angabe in Prozent des Bildschirms.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  function EmitterSpread: [[IParticleRangeValue]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Flächen, an denen nicht emittiert werden soll: Der Emitter hält eine Liste von gedrehten Rechtecken, an denen nicht emittiert werden darf.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  procedure AddEmitterClipRect(const X, Y, Width, Height, AngleZ: Single; const Exclude: Boolean);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optionen ==&lt;br /&gt;
&lt;br /&gt;
* Partikel-Umgebung: Gibt an, ob die Bounds vom Partikelsystem nur als Positionierung der Partikel beim Emittieren dienen ('''peGlobal'''), oder ob das Partikelsystem Einfluss auf die Partikel hat, die Partikel also mitskalieren und sich mitdrehen, etc. ('''peLocal''')&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Environment: [[TParticleEnvironment]]  &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Partikeloptionen geben beispielsweise an, wie sich die Partikel bei Drehung des Partikelsystems verhalten oder ob die Animationen abrupt oder durch Alphablending ablaufen. Einige Optionen sind nur für [[TParticleEnvironment|Environment]] = peGlobal sinnvoll:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Options: [[TParticleOptions]]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zufallswert (''Seed''), um wiederholbare Zufälle zu generieren. Ist der Wert = 0 werden alle Zufälle in den [[IParticleRangeValue|RangeValues]] wirklich zufällig berechnet, also immer ein eigener Seed generiert. Ansonsten wird der gegebene Seed verwendet.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  property Seed: Int64;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beispiel 1 =&lt;br /&gt;
&lt;br /&gt;
Wird dieses Script einem Partikelobjekt zugeordnet, wird das Partikelsystem wie folgt konfiguriert:&lt;br /&gt;
&lt;br /&gt;
Einem Partikelsystem werden folgende [[IParticleRangeValue|RangeValues]] gegeben:&lt;br /&gt;
* InitialSize zwischen 10 und 20.&lt;br /&gt;
* Size zwischen 50 und 100 ab 0ms und 0 und 50 ab 1000ms&lt;br /&gt;
&lt;br /&gt;
Partikel 1 bekommt zufällig eine Größe zwischen 10 und 20, zB. 15. Der Size-Wert modifiziert diesen Initialwert, in dem Fall prozentual. Das heißt das Partikel ist zwischen 50% * 15 und 100% * 15 groß ab Sekunde 0 seiner Lebenszeit. Der genaue Wert wird durch die zufällig gewählte Wichtung ermittelt, sagen wir 50%. Die Wichtung legt also die Mitte des Bereichs fest. Demnach ist die Wichtung 75%, also die Mitte zwischen 50 und 100. Daher hat der Partikel zum Zeitpunkt 0ms (also dem Zeitpunkt seines Emittierens) die Größe 75% * 15 = 11,25.&lt;br /&gt;
Der Size-Wert ändert sich über die Zeit. Allerdings bleibt die Wichtung pro Partikel gleich. Der Size-Wert sagt, dass die Partikel bei Sekunde 1 nur noch zwischen 0 und 50% des Initialwertes groß sind. Durch die Wichtung von 50% ergibt sich ein Size-Wert von 25%, also der Mitte zwischen 0 und 50%. Daher hat das Partikel zum Zeitpunkt 1000ms die Größe 25% * 15 = 3,75.&lt;br /&gt;
&lt;br /&gt;
Für Partikel 2 wird eine neue Initialgröße vergeben (deren Bereich sich über die Zeit natürlich auch verändern kann). Ebenso wird eine neue Wichtung ermittelt, zB. Initialgröße von 12 und einer Wichtung von 100%. Demnach ist das Partikel 2 zum Zeitpunkt 0ms 12 Einheiten groß und nach einer Sekunde nur noch 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  procedure OnExpandSlideShow(SlideShowObject: ISlideShowObject);&lt;br /&gt;
  begin&lt;br /&gt;
    var Particle := SlideShowObject as IParticle;&lt;br /&gt;
    Particle.InitialSize.SetValue(0, 0, 10);&lt;br /&gt;
    Particle.InitialSize.SetValue(1, 0, 20);&lt;br /&gt;
    Particle.Size.SetValue(0, 0, 50);&lt;br /&gt;
    Particle.Size.SetValue(1, 0, 100);&lt;br /&gt;
    Particle.Size.SetValue(0, 1000, 0);&lt;br /&gt;
    Particle.Size.SetValue(1, 1000, 50);  &lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Beispiel 2 =&lt;br /&gt;
&lt;br /&gt;
Wird dieses Script einem Partikelobjekt zugeordnet, lässt es die Partikel um die X-Achse im 3D-Raum rotieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  procedure OnExpandSlideShow(SlideShowObject: ISlideShowObject);&lt;br /&gt;
  begin&lt;br /&gt;
    var ParticleObject: IParticle = SlideShowObject as IParticle;&lt;br /&gt;
    &lt;br /&gt;
    ParticleObject.InitialRotationFrequency.SetValueX(0, 0, 0.8); // Angabe in Hz   &lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;br /&gt;
[[Kategorie:Partikelsystem]]&lt;br /&gt;
[[Kategorie:Language]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=TParticleOptions&amp;diff=1220</id>
		<title>TParticleOptions</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=TParticleOptions&amp;diff=1220"/>
		<updated>2019-09-27T08:13:48Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: /* Werte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Set vom Aufzählungstyp '''TParticleOption''' für Methode ''Options'' des [[Partikelobjekt|Partikelobjekts]]. Options kann generell alle möglichen Schalter für das Partikelsystem haben.&lt;br /&gt;
&lt;br /&gt;
= Werte =&lt;br /&gt;
* '''poInheritEmitterDirection''': Partikel in Bewegungsrichtung des Emitters drehen. Partikelrotation bleibt unbeeinflusst. ''Nur [[TParticleEnvironment]] = peGlobal!''&lt;br /&gt;
* '''poInheritEmitterRotation''': Partikel erben den Rotationswinkel des Emitters. Bewegungsrichtung der Partikel bleibt unbeeinflusst.&lt;br /&gt;
* '''poInheritEmitterSize''': Partikel skalieren mit dem Emitter mit. ''Nur [[TParticleEnvironment]] = peGlobal!''&lt;br /&gt;
* '''poRotateParticleInDirection''': Partikel drehen sich in Bewegungsrichtung des Emitters. ''Nur [[TParticleEnvironment]] = peGlobal!''&lt;br /&gt;
* '''poBlendSprites''': Partikelanimation ist normal ein einfacher Wechsel der Bilder. Mit dieser Option werden die Einzelbilder per Alphablending ineinander übergeblendet.&lt;br /&gt;
* '''poReverseParticleOrder''': Partikelzeichenreihenfolge umkehren, d.h. alte Partikel liegen über neu erzeugten&lt;br /&gt;
* '''poBlendModeAdd''': Partikelfarben aufaddieren und nicht verblenden&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;br /&gt;
[[Kategorie:Partikelsystem]]&lt;br /&gt;
[[Kategorie:Language]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=IRichText&amp;diff=1212</id>
		<title>IRichText</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=IRichText&amp;diff=1212"/>
		<updated>2016-06-30T09:07:01Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: /* Methoden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRichText''' erlaubt es Diashow-Objekten, die Text enthalten können, diesen mit Formatierungen zu versehen. Um auf die Textformatierung zugreifen zu können muss das Objekt auf IRichText gecastet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  var Text = Item as IRichText;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IRichText''' unterstützt die folgenden Methoden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  procedure SetRichText(const Value: string);&lt;br /&gt;
  function GetRichText: string;&lt;br /&gt;
  procedure SetStyle(const CharIndexBegin, CharIndexEnd: Integer; const RichTextStyle: TRichTextStyle; const SetValues: TRichTextStyleTypes);&lt;br /&gt;
  function GetStyle(const CharIndex: Integer; out RichTextStyle: TRichTextStyle): Boolean;&lt;br /&gt;
  property RichText: string read GetRichText write SetRichText;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
* Objekt Erzeugung&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function CreateText: IText;&lt;br /&gt;
  var richText = CreateText as IRichText;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RichText abrufen oder setzen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  procedure SetRichText(const Value: string);&lt;br /&gt;
  function GetRichText: string;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert oder setzt den formatierten Text im [https://de.wikipedia.org/wiki/Rich_Text_Format Rich Text-Format]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Textformatierung setzen oder abrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;procedure SetStyle(const CharIndexBegin, CharIndexEnd: Integer; const RichTextStyle: TRichTextStyle; const SetValues: TRichTextStyleTypes);&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Formatierung für einen Teil des Textes.&lt;br /&gt;
&lt;br /&gt;
:CharIndexBegin: Nr. des ersten Zeichens, für das die Formatierung gesetzt werden soll (das erste Zeichen hat die Nummer 0)&lt;br /&gt;
:CharIndexEnd: Nr. des letzten Zeichens, für das die Formatierung gesetzt werden soll&lt;br /&gt;
:RichTextStyle: eine  Datenstruktur, die Formatierungsangaben enthält&lt;br /&gt;
:SetValues: gibt an, welche der in RichTextStyle gesetzten Formatierungen angewendet werden soll&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function GetStyle(const CharIndex: Integer; out RichTextStyle: TRichTextStyle): Boolean;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Liefert die Formatierung eines Zeichens&lt;br /&gt;
&lt;br /&gt;
:CharIndex: Nummer des Zeichens, für das die Formatierung ermittelt werden soll (das erste Zeichen hat die Nummer 0)&lt;br /&gt;
:RichTextStyle: enthält nach dem Aufruf die Zeichenformatierung&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  var RichText = SlideShowObject as IRichText;&lt;br /&gt;
  if RichText = nil then&lt;br /&gt;
    Continue;&lt;br /&gt;
&lt;br /&gt;
  var TextFormat: TRichTextStyle;      &lt;br /&gt;
  TextFormat.Style := [fsBold];&lt;br /&gt;
&lt;br /&gt;
  // Den ganzen Text fett machen&lt;br /&gt;
  RichText.SetStyle(0, (RichText as IText).Count - 1, TextFormat, [stStyle]);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=IRichText&amp;diff=1211</id>
		<title>IRichText</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=IRichText&amp;diff=1211"/>
		<updated>2016-06-30T08:45:48Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „'''IRichText''' erlaubt es Diashow-Objekten, die Text enthalten können, diesen mit Formatierungen zu versehen. Um auf die Textformatierung zugreifen zu könne…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IRichText''' erlaubt es Diashow-Objekten, die Text enthalten können, diesen mit Formatierungen zu versehen. Um auf die Textformatierung zugreifen zu können muss das Objekt auf IRichText gecastet werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  var Text = Item as IRichText;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IRichText''' unterstützt die folgenden Methoden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  procedure SetRichText(const Value: string);&lt;br /&gt;
  function GetRichText: string;&lt;br /&gt;
  procedure SetStyle(const CharIndexBegin, CharIndexEnd: Integer; const RichTextStyle: TRichTextStyle; const SetValues: TRichTextStyleTypes);&lt;br /&gt;
  function GetStyle(const CharIndex: Integer; out RichTextStyle: TRichTextStyle): Boolean;&lt;br /&gt;
  property RichText: string read GetRichText write SetRichText;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Methoden =&lt;br /&gt;
* Objekt Erzeugung&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function CreateText: IText;&lt;br /&gt;
  var richText = CreateText as IRichText;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RichText abrufen oder setzen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  procedure SetRichText(const Value: string);&lt;br /&gt;
  function GetRichText: string;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert oder setzt den formatierten Text im [https://de.wikipedia.org/wiki/Rich_Text_Format Rich Text-Format]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Textformatierung setzen oder abrufen&lt;br /&gt;
&amp;lt;pre&amp;gt;procedure SetStyle(const CharIndexBegin, CharIndexEnd: Integer; const RichTextStyle: TRichTextStyle; const SetValues: TRichTextStyleTypes);&amp;lt;/pre&amp;gt;&lt;br /&gt;
Setzt die Formatierung für einen Teil des Textes.&lt;br /&gt;
&lt;br /&gt;
:CharIndexBegin: Nr. des ersten Zeichens, für das die Formatierung gesetzt werden soll (das erste Zeichen hat die Nummer 0)&lt;br /&gt;
:CharIndexEnd: Nr. des letzten Zeichens, für das die Formatierung gesetzt werden soll&lt;br /&gt;
:RichTextStyle: eine  Datenstruktur, die Formatierungsangaben enthält&lt;br /&gt;
:SetValues: gibt an, welche der in RichTextStyle gesetzten Formatierungen angewendet werden soll&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function GetStyle(const CharIndex: Integer; out RichTextStyle: TRichTextStyle): Boolean;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Lefert die Formatierung eines Zeichens&lt;br /&gt;
&lt;br /&gt;
:CharIndex: Nummer des Zeichens, für das die Formatierung ermittelt werden soll (das erste Zeichen hat die Nummer 0)&lt;br /&gt;
:RichTextStyle: enthält nach dem Aufruf die Zeichenformatierung  &lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  var RichText = SlideShowObject as IRichText;&lt;br /&gt;
  if RichText = nil then&lt;br /&gt;
    Continue;&lt;br /&gt;
&lt;br /&gt;
  var TextFormat: TRichTextStyle;      &lt;br /&gt;
  TextFormat.Style := [fsBold];&lt;br /&gt;
&lt;br /&gt;
  // Den ganzen Text fett machen&lt;br /&gt;
  RichText.SetStyle(0, (RichText as IText).Count - 1, TextFormat, [stStyle]);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=DiaShow-Objekte&amp;diff=1210</id>
		<title>DiaShow-Objekte</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=DiaShow-Objekte&amp;diff=1210"/>
		<updated>2016-06-30T08:07:39Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: /* Allgemeinere Objekte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Neben den [http://code.google.com/p/dwscript/wiki/Language Befehlen], die Ihnen die Programmiersprache direkt zur Verfügung stellt, gibt haben Sie Zugriff auf die Objekte der Diashow (sonst wäre das ganze ja auch ziemlich sinnlos). Objekte der DiaShow sind die Bilder, Texte, Videos etc. eben alles aus dem sich eine Diashow zusammensetzen kann.&lt;br /&gt;
&lt;br /&gt;
= Verfügbare DiaShow-Objekte =&lt;br /&gt;
&lt;br /&gt;
* [[IPicture]] - Bilder&lt;br /&gt;
* [[IText]] - Text&lt;br /&gt;
* [[ISound]] - Sounds&lt;br /&gt;
* [[IVideo]] - Videos/Filme&lt;br /&gt;
* [[IParticle]] - Partikel&lt;br /&gt;
* [[IChapter]] - Kapitel&lt;br /&gt;
* [[ICollage]] - Statische Collage&lt;br /&gt;
* [[ITransformation]] - Flexi-Collage&lt;br /&gt;
* [[IPath]] - Animierter Pfad / Routenanimation&lt;br /&gt;
* [[IShader]] - Pixelshadereffekte, die auf der GPU laufen&lt;br /&gt;
* [[IBlackboxContainer]] - Kapitelobjekte, die als Kindelemente Container für Effektinhalte dienen&lt;br /&gt;
&lt;br /&gt;
Es gibt für jedes Objekt eine Create-Methode, z.B. so:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var pic: IPicture;&lt;br /&gt;
  pic := CreatePicture;&lt;br /&gt;
  var text: IText;&lt;br /&gt;
  text := CreateText;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Allgemeinere Objekte =&lt;br /&gt;
* [[ISlideShowObject]] - DiaShow-Objekt - Basis für alle Objekte.&lt;br /&gt;
* [[ICanvas]] - Leinwandobjekt/Zeichenfläche zum Zeichnen bzw. Pixelzugriff auf Bilder&lt;br /&gt;
* [[IMoveable]], [[IPanable]] - Zugriff auf Bewegungspfad und Kameraschwenk&lt;br /&gt;
* [[IRichText]] - Zugriff auf Text-Formatierungen&lt;br /&gt;
&lt;br /&gt;
= Entwickler-Objekte =&lt;br /&gt;
&lt;br /&gt;
Folgende Objekte stehen in der Toolbox nur zur Verfügung, wenn der Entwicklermodus aktiviert wurde:&lt;br /&gt;
&lt;br /&gt;
* Transparentes Kapitel&lt;br /&gt;
* &amp;quot;Laufende Linie&amp;quot;&lt;br /&gt;
* Blackbox&lt;br /&gt;
* Blackbox, horizontal&lt;br /&gt;
* Blackbox, vertikal&lt;br /&gt;
* Geometrische Form&lt;br /&gt;
* Shader&lt;br /&gt;
&lt;br /&gt;
Diese Objekte haben keine richtige Benutzeroberfläche und sind auf die Steuerung per Script angewiesen bzw. haben selbst steuernde Wirkung. Manche Objekte funktionieren nur in einem ganz bestimmten Kontext. Die Entwickler-Objekte werden nun genauer beschrieben:&lt;br /&gt;
&lt;br /&gt;
== Blackbox == &lt;br /&gt;
&lt;br /&gt;
Eine Blackbox verhält sich wie eine Flexi-Collage, aber ohne Überblendung und ohne Hintergrundfarbe. Was bleibt ist die Möglichkeit, einen Bewegungspfad und einen Kameraschwenk zuzuweisen. Alle in einer Blackbox befindlichen Objekten erben diesen Pfad und Schwenk, so wie es auch bei Flexi-Collagen der Fall ist. &lt;br /&gt;
&lt;br /&gt;
Eine Blackbox wird normalerweise Container für beliebige weitere Objekte verwendet. Ein an die Blackbox angehängtes Script, manipuliert dann den Inhalt in beliebiger Weise. Meist enthält das Script auch eine [[GUI-API|Benutzeroberfläche]], um den Nutzer verschiedene Parameter zur Verfügung zu stellen.&lt;br /&gt;
&lt;br /&gt;
Im Script ist das Blackbox-Objekt einfach nur ein [[ISlideShowObject]], dass aber die Interfaces [[IMoveable]] und [[IPanable]] implementiert.&lt;br /&gt;
&lt;br /&gt;
== Blackbox, horizontal == &lt;br /&gt;
&lt;br /&gt;
Wie &amp;quot;Blackbox&amp;quot; nur erlaupt die Timeline es nicht, in diesem Objekt mehrere Spuren anzulegen. Ebenso sind Abstände zwischen den Objekten nicht erlaubt. Dieses Objekt wird z.B. als Container für Bilder innerhalb von &amp;quot;Intelligen Vorlagen&amp;quot; eingesetzt. Hier soll der Nutzer keine komplexen Strukturen ablegen dürfen, da diese in die Vorlagen nicht übernommen werden könnten.&lt;br /&gt;
&lt;br /&gt;
== Blackbox, vertikal ==&lt;br /&gt;
&lt;br /&gt;
Wie &amp;quot;Blackbox&amp;quot; nur werden alle eingefügten Objekte auf die Dauer des vertikalen Blackbox gestreckt und jedes erscheint auf einer eigenen Spur.&lt;br /&gt;
&lt;br /&gt;
== Transparentes Kapitel ([[IBlackboxContainer]]) ==&lt;br /&gt;
&lt;br /&gt;
Ein &amp;quot;Transparentes Kapitel&amp;quot; ist kein Objekt mit Funktion innerhalb der Präsentation, sondern dient als Hilfselement für die Benutzeroberfläche, nämlich zur Beschriftung der Spuren. Es ist dafür ausgelegt innerhalb eines Blackbox-Objekts verwendet zu werden. Außerhalb davon ist die Funktionsweise undefiniert. Ein &amp;quot;Transparentes Kapitel&amp;quot; hat immer mindestens die Dauer seines Elternelements, kann aber selbst größer werden. Ansonsten verhält es sich wie ein normales Kapitel, d.h. es unterstützt beliebig viele Spuren und Abstände zwischen den Objekten. Aus Scriptingsicht ist das Objekt ein [[IBlackboxContainer]].&lt;br /&gt;
&lt;br /&gt;
Als Anwendungsbeispiel dient z.B. die &amp;quot;Dynamische Maske&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[Datei:TransparentesKapitel.png]]&lt;br /&gt;
&lt;br /&gt;
Dieser Effekt besteht aus einer Blackbox, der ein Script angehängt wurde, und zwei transparenten Kapiteln. Die beiden &amp;quot;Transparenten Kapitel&amp;quot; bieten einfach nur Platz für die zwei unterschiedlichen Funkionen (Maske und Inhalt). Das Script schaut in die beiden &amp;quot;Transparenten Kapitel&amp;quot; und macht damit &amp;quot;etwas&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Geometrische Form ==&lt;br /&gt;
&lt;br /&gt;
Objekt hat keine Funktion. Es war ursprünglich dafür Gedacht, Dreicke oder andere Formen darzustellen. Dafür kann aber das [[IShader|Shader-Objekt]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Shader ([[IShader]]) ==&lt;br /&gt;
&lt;br /&gt;
Über das Shader-Objekt lassen sich Pixelshader ausführen. Ein Shader-Objekt wird immer per Script angelegt und konfiguriert (ist also niemals in der Timeline zu sehen). Es benötigt zum Wirken mindestens den Dateinamen eines [[HLSL-Shader|Pixelshaders (HLSL)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=824</id>
		<title>OnInitDesigner</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=824"/>
		<updated>2012-09-11T13:39:14Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code&amp;gt;&lt;br /&gt;
  procedure OnInitDesigner(SlideShowObject: [[ISlideShowObject]]; Context: [[IDesignerContext]])&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Hook wird vom Layoutdesigner aufgerufen, wenn das Objekt im Layoutdesigner angezeigt werden muss.&lt;br /&gt;
&lt;br /&gt;
Scripts sollten diesen Hook implementieren, wenn sie die Darstellung eines Objektes im Layoutdesigner anpassen möchten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
SlideShowObject: [[ISlideShowObject]]&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=823</id>
		<title>OnInitDesigner</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=823"/>
		<updated>2012-09-11T13:38:35Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;code&amp;gt;&lt;br /&gt;
procedure OnInitDesigner(SlideShowObject: [[ISlideShowObject]]; Context: [[IDesignerContext]])&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Hook wird vom Layoutdesigner aufgerufen, wenn das Objekt im Layoutdesigner angezeigt werden muss.&lt;br /&gt;
&lt;br /&gt;
Scripts sollten diesen Hook implementieren, wenn sie die Darstellung eines Objektes im Layoutdesigner anpassen möchten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
SlideShowObject: [[ISlideShowObject]]&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=822</id>
		<title>OnDesignerChanged</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=822"/>
		<updated>2012-09-11T13:36:24Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Hook wird aufgerufen, wenn Änderungen an einem Diashowobjekt vorgenommen werden, die sich im Layoutdesigner auswirken.&lt;br /&gt;
Anhand der Art der Änderung kann das Script die internen Daten aktualisieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  procedure OnDesignerChanged(SlideShowObject: [[ISlideShowObject]]; Context: [[IDesignerContext]]; UpdateInfo: [[IDesignerUpdate]]);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
SlideShowObject: [[ISlideShowObject]]&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]] &lt;br /&gt;
&lt;br /&gt;
UpdateInfo: [[IDesignerUpdate]]&lt;br /&gt;
&lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
&lt;br /&gt;
Der Rückgabewert bestimmt, wie der Layoutdesigner auf die Aktualisierung reagiert.&lt;br /&gt;
&lt;br /&gt;
* hrDefault: Der Layoutdesigner verhält sich so, wie es der Objekttyp vorgibt. Beispielsweise führt eine Größenänderung eines Bildobjektes nur zum Neuzeichnen, während eine Änderung des Dateinamens eine Neuinitialisierung erforderlich macht.&lt;br /&gt;
* hrInvalidate: Das Objekt wird lediglich neu gezeichnet&lt;br /&gt;
* hrReinit: Das Objekt wird vollständig neu intialisiert&lt;br /&gt;
* hrPreview: Der gesamte Inhalt des Layoutdesigners wird neu erzeugt&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=TDesignerChangeType&amp;diff=820</id>
		<title>TDesignerChangeType</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=TDesignerChangeType&amp;diff=820"/>
		<updated>2012-09-11T12:32:34Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „Gibt die Art der Änderung an einem Diashowobjekt an.  * ctDuration: Die Dauer des Objektes hat sich geändert * ctOffset: Die Startzeit in Bezug auf sein überge…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Gibt die Art der Änderung an einem Diashowobjekt an.&lt;br /&gt;
&lt;br /&gt;
* ctDuration: Die Dauer des Objektes hat sich geändert&lt;br /&gt;
* ctOffset: Die Startzeit in Bezug auf sein übergeordnetes Objekt hat sich geändert&lt;br /&gt;
* ctContent: Sonstige Objektdaten haben sich geändert (z.B. der Dateiname eines Bildobjektes)&lt;br /&gt;
* ctEnabled: Das Objekt wurde aktiviert oder deaktiviert&lt;br /&gt;
* ctThumbnail: Ein (neues) Thumbnail für das Objekt wurde erzeugt&lt;br /&gt;
* ctMoveable: Der Bewegungspfad des Objektes wurde geändert&lt;br /&gt;
* ctTransparency: Die animierte Transparenz wurde geändert&lt;br /&gt;
* ctRotation: Der Drehwinkel eines Bewgeungspfadpunktes wurde verändert&lt;br /&gt;
* ctSize: Die Größe des Objektes/eines einzelnen Bewegunspfadpunktes wurde geändert&lt;br /&gt;
* ctPosition: Die Position des Objektes/eines einzelnen Bewegunspfadpunktes wurde geändert&lt;br /&gt;
* ctText: Der Text des Objektes wurde geändert&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=IDesignerChangeTypes&amp;diff=819</id>
		<title>IDesignerChangeTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=IDesignerChangeTypes&amp;diff=819"/>
		<updated>2012-09-11T12:27:40Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „Erlaubt den Zugriff auf die Änderungen an einem Diashowobjekt.  == Methoden ==  &amp;lt;code&amp;gt;procedure Add(const Val: TDesignerChangeType)&amp;lt;/code&amp;gt;  Fügt den Änderu…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Erlaubt den Zugriff auf die Änderungen an einem Diashowobjekt.&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;procedure Add(const Val: [[TDesignerChangeType]])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fügt den Änderungen die gegebene hinzu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;function Contains(const Val: [[TDesignerChangeType]]): Boolean&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert einen Wert, der angibt, ob die gegebene Änderung in diesem IDesignerChangeTypes-Objekt enthalten ist.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=IDesignerUpdate&amp;diff=818</id>
		<title>IDesignerUpdate</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=IDesignerUpdate&amp;diff=818"/>
		<updated>2012-09-11T12:24:24Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „Dieses Objekt enthält Informationen über Änderungen an Diashowobjekten und erlaubt dem OnDesignerChanged-Hook diese zu behandeln.  == Methoden ==  &amp;lt;code&amp;gt;fu…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Objekt enthält Informationen über Änderungen an Diashowobjekten und erlaubt dem [[OnDesignerChanged]]-Hook diese zu behandeln.&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;function GetChangeType: [[IDesignerChangeTypes]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert die Art der Änderung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;procedure SetChangeType(const Value: [[IDesignerChangeTypes]])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setzt die Art der Änderung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;function GetDisplayObject: [[ISlideShowObject]]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert das von der Änderung betroffene Objekt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;procedure SetDisplayObject(const Value: [[ISlideShowObject]])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setzt das von der Änderung betroffene Objekt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=IDesignerContext&amp;diff=817</id>
		<title>IDesignerContext</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=IDesignerContext&amp;diff=817"/>
		<updated>2012-09-11T12:20:15Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „Das IDesignerContext-Objekt dient zum Austausch von Daten zwischen einem Script und dem Layoutdesigner.  == Methoden ==  &amp;lt;code&amp;gt;procedure SetDisplayObject(SlideSho…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das IDesignerContext-Objekt dient zum Austausch von Daten zwischen einem Script und dem Layoutdesigner.&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;procedure SetDisplayObject(SlideShowObject: ISlideShowObject)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Methode sollte im [[OnInitDesigner]]-Hook aufgerufen werden, wenn das Diashowobjekt ein oder mehrere andere Objekte an seiner Statt im Layoutdesigner anzeigen möchte.&lt;br /&gt;
Das übergebene Objekt dient bei der Darstellung im Layoutdesigner als &amp;quot;Ersatz&amp;quot; für das Objekt, dessen Script diese Methode aufruft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;function GetDisplayObject: ISlideShowObject&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert das Objekt, welches mit SetDisplayObject gesetzt wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;procedure SetInternalObject(SlideShowObject: ISlideShowObject)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Setzt ein Objekt als internes Objekt. Hooks, denen ein IDesignerContext übergeben wird können diese Objekte zur internen Verwaltung von Daten verwenden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;function GetInternalObject: ISlideShowObject&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Liefert das Objekt, welches mit SetInternalObject gesetzt wurde&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=816</id>
		<title>OnInitDesigner</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=816"/>
		<updated>2012-09-11T12:10:07Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Hook wird vom Layoutdesigner aufgerufen, wenn das Objekt im Layoutdesigner angezeigt werden muss.&lt;br /&gt;
&lt;br /&gt;
Scripts sollten diesen Hook implementieren, wenn sie die Darstellung eines Objektes im Layoutdesigner anpassen möchten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=815</id>
		<title>OnInitDesigner</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnInitDesigner&amp;diff=815"/>
		<updated>2012-09-11T12:09:31Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „Dieser Hook wird vom Layoutdesigner aufgerufen, wenn das Objekt im Layoutdesigner angezeigt werden muss.  Scripts sollten diesen Hook implementieren, wenn sie die…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Hook wird vom Layoutdesigner aufgerufen, wenn das Objekt im Layoutdesigner angezeigt werden muss.&lt;br /&gt;
&lt;br /&gt;
Scripts sollten diesen Hook implementieren, wenn sie die Darstellung eines Objektes im Layoutdesigner anpassen möchten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=814</id>
		<title>OnDesignerChanged</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=814"/>
		<updated>2012-09-11T12:06:07Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Hook wird aufgerufen, wenn Änderungen an einem Diashowobjekt vorgenommen werden, die sich im Layoutdesigner auswirken.&lt;br /&gt;
Anhand der Art der Änderung kann das Script die internen Daten aktualisieren.&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]] &lt;br /&gt;
&lt;br /&gt;
UpdateInfo: [[IDesignerUpdate]]&lt;br /&gt;
&lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
&lt;br /&gt;
Der Rückgabewert bestimmt, wie der Layoutdesigner auf die Aktualisierung reagiert.&lt;br /&gt;
&lt;br /&gt;
* hrDefault: Der Layoutdesigner verhält sich so, wie es der Objekttyp vorgibt. Beispielsweise führt eine Größenänderung eines Bildobjektes nur zum Neuzeichnen, während eine Änderung des Dateinamens eine Neuinitialisierung erforderlich macht.&lt;br /&gt;
* hrInvalidate: Das Objekt wird lediglich neu gezeichnet&lt;br /&gt;
* hrReinit: Das Objekt wird vollständig neu intialisiert&lt;br /&gt;
* hrPreview: Der gesamte Inhalt des Layoutdesigners wird neu erzeugt&lt;br /&gt;
[[Kategorie:Scripting-API]]&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=813</id>
		<title>OnDesignerChanged</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=813"/>
		<updated>2012-09-11T12:03:51Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: /* Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Hook wird aufgerufen, wenn Änderungen an einem Diashowobjekt vorgenommen werden, die sich im Layoutdesigner auswirken.&lt;br /&gt;
Anhand der Art der Änderung kann das Script die internen Daten aktualisieren.&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]] &lt;br /&gt;
&lt;br /&gt;
UpdateInfo: [[IDesignerUpdate]]&lt;br /&gt;
&lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
&lt;br /&gt;
Der Rückgabewert bestimmt, wie der Layoutdesigner auf die Aktualisierung reagiert.&lt;br /&gt;
&lt;br /&gt;
* hrDefault: Der Layoutdesigner verhält sich so, wie es der Objekttyp vorgibt. Beispielsweise führt eine Größenänderung eines Bildobjektes nur zum Neuzeichnen, während eine Änderung des Dateinamens eine Neuinitialisierung erforderlich macht.&lt;br /&gt;
* hrInvalidate: Das Objekt wird lediglich neu gezeichnet&lt;br /&gt;
* hrReinit: Das Objekt wird vollständig neu intialisiert&lt;br /&gt;
* hrPreview: Der gesamte Inhalt des Layoutdesigners wird neu erzeugt&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
	<entry>
		<id>https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=812</id>
		<title>OnDesignerChanged</title>
		<link rel="alternate" type="text/html" href="https://wiki.aquasoft.de/wiki/index.php?title=OnDesignerChanged&amp;diff=812"/>
		<updated>2012-09-11T12:03:31Z</updated>

		<summary type="html">&lt;p&gt;Daniel Bärmann: Die Seite wurde neu angelegt: „Dieser Hook wird aufgerufen, wenn Änderungen an einem Diashowobjekt vorgenommen werden, die sich im Layoutdesigner auswirken. Anhand der Art der Änderung kann d…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Hook wird aufgerufen, wenn Änderungen an einem Diashowobjekt vorgenommen werden, die sich im Layoutdesigner auswirken.&lt;br /&gt;
Anhand der Art der Änderung kann das Script die internen Daten aktualisieren.&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
Context: [[IDesignerContext]] &lt;br /&gt;
UpdateInfo: [[IDesignerUpdate]]&lt;br /&gt;
  &lt;br /&gt;
== Rückgabewert ==&lt;br /&gt;
&lt;br /&gt;
Der Rückgabewert bestimmt, wie der Layoutdesigner auf die Aktualisierung reagiert.&lt;br /&gt;
&lt;br /&gt;
* hrDefault: Der Layoutdesigner verhält sich so, wie es der Objekttyp vorgibt. Beispielsweise führt eine Größenänderung eines Bildobjektes nur zum Neuzeichnen, während eine Änderung des Dateinamens eine Neuinitialisierung erforderlich macht.&lt;br /&gt;
* hrInvalidate: Das Objekt wird lediglich neu gezeichnet&lt;br /&gt;
* hrReinit: Das Objekt wird vollständig neu intialisiert&lt;br /&gt;
* hrPreview: Der gesamte Inhalt des Layoutdesigners wird neu erzeugt&lt;/div&gt;</summary>
		<author><name>Daniel Bärmann</name></author>
	</entry>
</feed>