LitDev 1.2.24.0 DE
http://litdev.uk/LitDev.De.html Extension API

LD3DView LDArray LDBits LDBlueTooth LDCall
LDChart LDClient LDClipboard LDColours LDCommPort
LDController LDControls LDCursors LDDataBase LDDateTime
LDDebug LDDialogs LDDictionary LDEffect LDEmail
LDEncryption LDEvents LDFastArray LDFastShapes LDFigures
LDFile LDFocus LDftp LDGeography LDGraph
LDGraphicsWindow LDHashTable LDHID LDIcon LDImage
LDInline LDIOWarrior LDList LDLogic LDMath
LDMathX LDMatrix LDMusic LDNetwork LDPhysics
LDProcess LDQueue LDRegex LDResources LDScrollBars
LDSearch LDServer LDSettings LDShapes LDShell
LDSort LDSound LDSpeech LDStatistics LDStopwatch
LDText LDTextWindow LDTimer LDTranslate LDUnits
LDUtilities LDVector LDWaveForm LDWebCam LDWindows
LDxml LDZip

LDShapes
Erweiterte Funktionen und Methoden für Shapes (Interne Namensverarbeitung erstellter Objekte).
Diverse Pinsel (Brush#) können mit BrushGradient, BrushImage und BrushText erstellt werden.

example animated\*.sb
other-samples\BrushGradients.sb, ShapeEvents.sb

'Alle Eigenschaften zu 'shp':
prop = LDShapes.GetProperties(shp)
idcs = Array.GetAllIndices(prop)
For n = 1 To Array.GetItemCount(idcs)
TextWindow.WriteLine(idcs[n] +"="+ prop[idcs[n]])
EndFor

'Einzeleigenschaft zB. "Name":
name = LDShapes.GetProperty(shp, "Name")

'Eigenschaft setzen zB. 'Kein Fokus bei TAB':
LDShapes.SetProperty(btn, "IsTabStop","False")


AddAnimatedGif AddAnimatedImage AddPolygon
AddRegularPolygon AddStar AnimateOpacity
AnimateRotation AnimateZoom AnimationCount
AnimationInterval AnimationPause AnimationResume
AnimationSet BrushColour BrushEllipse
BrushGradient BrushImage BrushPolygon
BrushRectangle BrushRoundedRectangle BrushShape
BrushText Centre FastMove
Font GetAllShapes GetAllShapesAt
GetColour GetLeft GetOpacity
GetProperties GetProperty GetTop
Height LastEventShape LastEventType
Move MoveLine MovePolygon
MoveTriangle Overlap OverlapBox
OverlapCircle OverlapDetail PenColour
PenStyle PenWidth RasteriseTurtleLines
RemoveTurtleLines ResetTurtle ReSize
RotateAbout SetImage SetProperty
SetShapeEvent SetSize SetTurtleImage
ShapeEvent Skew Width
ZIndex ZoomAll

AddAnimatedGif(imageName,repeat)
Fügt eine Bildshape mit animiertem Gif im GraphicsWindow hinzu (asynchron, Intern: Image#).
Nicht zu viele davon einsetzen, da sonst die Computerleistung schnell abnimmt.
Statische Gif (AnimationCount = 0) wird zwar geladen, aber nicht angezeigt.

imageName Die zu ladende animierte Gif Datei als lokaler Dateipfad oder Url (KEIN ImageList Bild, nicht "").
repeat Animation endlos wiederholen? "True" oder "False".
returns Der Name der animierten Gif Bildshape.

AddAnimatedImage(imageName,repeat,countX,countY)
Fügt eine Bildshape mit Bilderanimation (aus mehreren Einzelbildern) zum GraphicsWindow hinzu (asynchron, Intern: Image#). Für Hintergrundtransparenz Png bevorzugen.
Nicht zu viele davon einsetzen, da sonst Computerleistung schnell abnimmt.
Shapegröße = Einzelbild Größe:
w = GetWidthOfImage(imageName)/countX
h = GetHeightOfImage(imageName)/countY

imageName Die zu ladende Bilddatei (Bilderstreifen) als lokaler Dateipfad, Url oder ImageList Name.
repeat Animation endlos wiederholen? "True" oder "False" (Standard).
countX Die Anzahl der Einzelbilder in x-Richtung (horizontal).
countY Die Anzahl der Einzelbilder in y-Richtung (vertikal).
returns Der Name der animierten Bildshape.

AddPolygon(points)
Erstellt eine gefüllte Vieleck Shape.
Ursprünglicher Ankerpunkt der Shape in 0,0. (Intern: Polygon#)

points Ein 2D Array mit den Koordinaten der Eckpunkte des i-Polygons in der Form pkt[i][1] = x, pkt[i][2] = y, usw.
Die Indizes müssen nicht fortlaufend sein oder mit 1 beginnen.
Die Mindestanzahl der Eckpunkte beträgt 3 (s. AddRegularPolygon bzw. LDFigures.AddRegularPolygon).

returns Der Name der Polygon Shape.
example 'zB. gleichschenk. Dreieck
pkt[1]["x"] = 0
pkt[1]["y"] = 0
pkt[2]["x"] = 80
pkt[2]["y"] = 0
pkt[3]["x"] = 40
pkt[3]["y"] = 70
'oder
'pkt[1] = "1=0;2=0;"
'pkt[2] = "1=80;2=0;"
'pkt[3] = "1=40;2=70;"
tri = LDShapes.AddPolygon(pkt)


AddRegularPolygon(numPoint,radius)
Erstellt eine gefüllte, regelmäßige Vieleck Shape (Intern: Polygon#). Erster Punkt auf (radius;0), Ankerpunkt in 0,0.
S. AddPolygon, LDFigures.AddRegularPolygon.

numPoint Die Anzahl der Vieleck-Seiten bzw. -Ecken (ab 3).
radius Der -/+ Abstand vom Zentrum zu den Ecken (Bei neg. Werten um 180/numPoint [Grad] verdreht).
returns Der Name der regelmäßigen Vieleck Shape.

AddStar(numPoint,innerRadius,outerRadius)
Erstellt eine gefüllte, regelmäßige Stern Shape (Intern: Polygon#).
Spaßeffekte können mit neg. Abständen erzielt werden (s. LDFigures.AddRegularPolygon).

numPoint Die Anzahl der Sternpunkte (ab 3).
innerRadius Der -/+ Abstand vom Zentrum zu innereren Punkten.
outerRadius Der -/+ Abstand vom Zentrum zu äußeren Punkten.
returns Der Name der regelmäßigen Stern Shape.
example LDShapes.AddStar(4, -50,100)

AnimateOpacity(shapeName,interval,count)
Setzt eine Shape zur Animation seiner Transparenz bzw. Blinken (aus- und einblenden, asynchron).
gesamt [ms] = interval * count

shapeName Der Name der Shape/Steuerelement, welche zum Blinken animiert wird.
interval Das Intervall [ms] für einen vollen Blinkzyklus (<=0 stoppt das Blinken, zum Grundzustand, Standard).
count Die Anzahl voller Blinkzyklen (<=0 für stetiges Blinken, Standard).
zB. 1.5 endet bei gegenteiligem Grundzustand.

example Statische Methode s. Shapes.SetOpacity

AnimateRotation(shapeName,interval,count)
Setzt eine Shape auf animierte Rotation um ihren Mittelpunkt (asynchron).
gesamt [ms] = interval * count

shapeName Der Name der drehenden Shape/Steuerelement.
interval Die Dauer [ms] für eine volle 360° Drehung (Standard: 0 stoppt die Rotation, <0 für Rotation im Gegenuhrzeigersinn).
interval = 60000/umin [ms] bzw.
umin = 60000/interval [1/min]
loopDelay = interval/360 [ms/°]

count Die Anzahl voller Umdrehungen (<=0 für stetige Rotation, Standard).
zB. 0.5 für Halbdrehung.

example Statische Methode s. LDShapes.RotateAbout (Shapes.Rotate)

AnimateZoom(shapeName,interval,count,scaleX,scaleY)
Setzt eine Shape auf animierte Größenänderung (größer/kleiner, wie Shapes.Zoom auch für Textshapes, asynchron) um ihren Mittelpunkt (1 bis scaleX/Y und zurück).
gesamt [ms] = interval * count

shapeName Der Name der zu zoomenden Shape/Steuerelement.
interval Die Dauer [ms] für einen vollen Zoomzyklus (0 stoppt das Zoomen).
count Die Anzahl voller Zoom-Zyklen (0 für stetiges Zoomen, zB. 0.5 für Halbzyklus dh. nur in eine Richtung).
scaleX Der +/- Zoomfaktor/Endpunkt in x-Richtung (Originalansicht: 1).
scaleY Der +/- Zoomfaktor/Endpunkt in y-Richtung (Originalansicht: 1).
example zB. AnimateZoom(shp, t, 1,-1) entspricht voller 360° Rotation um x-Achse
y: +1 (t/4) 0 (t/2) -1 (3t/4) 0 (t) +1
Statische Methode: s. LDShapes.ReSize


AnimationCount(shapeName)
Ermittelt die Anzahl der Einzelbilder in einer animierten Bildshape (zB. AnimatedGif).
shapeName Der Name der animierten Bildshape.
returns Die Gesamtzahl der Einzelbilder in der Animation, sonst 0 (zB. statische Gif).

AnimationInterval
Ermittelt oder setzt das Intervall in dem eine Shape-Animation abgespielt wird [ms] (Standard: 100).
0 stoppt alle laufenden Animationen, um zB. AnimationSet zu erlauben, ein ausgewähltes Einzelbild zu setzen.
Dieser interne Taktgeber betrifft alle animierten Bilder, die nicht pausiert wurden oder noch keinen vollen Zyklus durchlaufen haben (für nicht-endlos wiederholende Animationen).


AnimationPause(shapeName)
Pausiert eine Bilderanimation.
Pausierte Animationen können mittels AnimationSet trotzdem bestimmte Einzelbilder zeigen.

shapeName Der Name der animierten Bildshape.

AnimationResume(shapeName)
Setzt eine zuvor pausierte Bilderanimation wieder fort.
shapeName Der Name der animierten Bildshape.

AnimationSet(shapeName,image)
Setzt das aktuell anzuzeigende Bild aus einer animierten Bildshape.
shapeName Der Name der animierten Bildshape.
image Die Nummer für das anzuzeigende Einzelbild (ab 1).

BrushColour(shapeName,colour)
Setzt/Ändert die Pinselfarbe für ein bestehendes Shape/Control (zB. Hintergrundfarbe für Button, TextBox, Textshape).
Sowohl für (LD)Controls.- als auch Geometrieshapes (Ellipse usw.).
Für Bildshapes s. LDShapes.SetImage.

shapeName Der Name der Shape/Steuerelement.
colour Die neue Pinselfarbe, "Transparent" für Transparenz (auch für Hintergrundbild aus ImageList), s. 'Shapes.SetOpacity'.
example "

BrushEllipse(brush,x,y,width,height)
Zeichnet eine Ellipse gefüllt mit einem Farbgradient. GraphicsWindow muß bereits initialisiert sein.
brush Ein zuvor erstellter Gradient-, Bild- oder Textpinsel (LDShapes.BrushGradient, .BrushImage, .BrushText).
x Die x-Koordinate der Ellipse.
y Die y-Koordinate der Ellipse.
width Die Breite der Ellipse.
height Die Höhe der Ellipse.

BrushGradient(colours,orientation)
Erstellt einen linearen oder radialen Farbgradientpinsel (Intern: Brush#).
colours Ein Array mit (mind. 2) anzuwendenden Gradientfarben für den GW-/Shapehintergrund.
orientation Die Orientierung für den Farbübergang:
"H" Horizontal (li -> re)
"V" Vertikal (ob -> unt)
"DU" Diagonal rauf (liU -> reO)
"DD" Diagonal runter ("a","Z",0 usw., liO -> reU)
"R" Radial (Standard, oder "", inn -> auß)

returns Der Name für den Gradientpinsel.
example brush = LDShapes.BrushGradient("1=Blue;2=#80FF0000;", "")
'Simple Regenbogenfarben zB.
"1=Red;2=Yellow;3=Lime;4=Cyan;5=Blue;6=Magenta;"


BrushImage(imageName)
Erstellt einen Bildpinsel (Intern: Brush#).
Diese Pinsel sollten auch überall dort funktionieren, wo BrushGradient verwendet werden kann.

imageName Das als Pinsel (Brush) zu ladende Bild.
Rückgabewert von ImageList.LoadImage, lokale oder Netzwerk- Bilddatei.
"" erstellt Leerpinsel mit Farbe #6A5ACD (106,90,205)

returns Der Name des Bildpinsel.

BrushPolygon(brush,points)
Zeichnet ein i-Vieleck gefüllt mit einem Farbgradient. GraphicsWindow muß bereits initialisiert sein.
brush Ein zuvor erstellter Gradient-, Bild- oder Textpinsel (LDShapes.BrushGradient, .BrushImage, .BrushText).
points Ein Array mit Koordinaten für die i-Polygonecken in der Form pkt[i][1] = x, pkt[i][2] = y.
Die Mindestanzahl der i-Eckpunkte beträgt 3.

example s. LDShapes.AddPolygon(points)

BrushRectangle(brush,x,y,width,height)
Zeichnet ein Rechteck gefüllt mit einem Farbgradient. GraphicsWindow muß bereits initialisiert sein.
brush Ein zuvor erstellter Gradient-, Bild- oder Textpinsel (LDShapes.BrushGradient, .BrushImage, .BrushText).
x Die x-Koordinate des Rechtecks.
y Die y-Koordinate des Rechtecks.
width Die Breite des Rechtecks.
height Die Höhe des Rechtecks.

BrushRoundedRectangle(brush,x,y,width,height,radius)
Zeichnet ein abgerundetes Rechteck gefüllt mit einem Farbgradient. GraphicsWindow muß bereits initialisiert sein.
brush Ein zuvor erstellter Gradient-, Bild- oder Textpinsel (LDShapes.BrushGradient, .BrushImage, .BrushText).
x Die x-Koordinate des Rechtecks.
y The y-Koordinate des Rechtecks.
width Die Breite des Rechtecks.
height Die Höhe des Rechtecks.
radius Der Radius der gerundeten Ecken.

BrushShape(shapeName,brush)
Setzt/Ändert den Hintergrund einer bestehenden Shape/Control als Gradient-, Bild- oder Textpinsel (Brush).
shapeName Der Name der Geometrie-/Textshape oder Steuerelement (KEINE Bildshape, s. 'SetImage').
brush Ein zuvor erstellter Gradient-, Bild- oder Textpinsel (LDShapes.BrushGradient, .BrushImage, .BrushText).
example slid = LDControls.AddSlider(200,22,"H")
brsh = LDShapes.BrushGradient("1=Red;2=Blue;","H")
LDShapes.BrushShape(slid, brsh)


BrushText(text,background,foreground)
Erstellt einen Textpinsel (Intern: Brush#).
Diese Pinsel sollten auch überall dort funktionieren, wo BrushGradient verwendet werden kann.

text Der als Pinsel (Brush) zu verwendende Text. Dabei werden aktuelle GraphicsWindow.Font.. Eigenschaften verwendet.
background Die Hintergrundfarbe (BrushColor).
foreground Die Vordergrund-/Textfarbe (PenColor).
returns Der Name des Textpinsel.

Centre(shapeName,x,y)
Zentriert eine Shape (deren Mittelpunkt) an einem angegebenen Punkt. Auch für vergrößerte (gezoomte) Shapes.
shapeName Der Name der Shape/Steuerelement.
x Die x-Koordinate des neuen Shape Mittelpunktes.
y Die y-Koordinate des neuen Shape Mittelpunktes.

FastMove(shapeName,x,y)
Verschiebt eine Shape an eine neue Position.
Diese Methode ist für maximale Geschwindigkeit optimiert.

shapeName Der Name der zu verschiebenden Shape.
x Die x-Koordinate der neuen Position.
y Die y-Koordinate der neuen Position.

Font(shapeName,family,size,bold,italic)
Setzt einen neuen Schriftstil für eine bestehende Shape/Control (Textshape, Button, TextBox usw.).
shapeName Der Name der Shape/Steuerelement.
family Der Name der neuen Schriftart (erforderlich, zB. GraphicsWindow.FontName, s. LDUtilities.FontList für verfügbare Schriftarten).
size Die neue Schriftgröße (erforderlich).
bold Die neue Schrift als Fettdruck? "True" oder "False" (Standard).
italic Die neue Schrift kursiv? "True" oder "False" (Standard).

GetAllShapes()
Ermittelt die (internen) Name# aller aktuell erstellten Shapes/Controls als Array (zB. "1=Button#;2=Text#;3=Control#;4=_turtle;5=_turtleLine#;..").
Bzgl. Anzahl erstellter Elemente eines Types s. LDUtilities.GetNextMapIndex.

returns Ein Array (ab 1) mit Name# aller vorhandenen Shapes/Controls in Reihenfolge ihrer Erstellung.

GetAllShapesAt(x,y)
Ermittelt alle (Bild-, Geometrie-, Text-) Shapes# (nicht Controls) an einer bestimmten Position im GraphicsWindow als Array.
Dies kann zB. die Position des Mauszeigers sein. Nicht für verborgene Shape (Shapes.HideShape).

x Die x-Koordinate der Position.
y Die y-Koordinate der Position.
returns Ein Array mit den (internen) Namen# aller Shapes an dieser Position oder "False" falls dort keine Shape liegt.
Die ermittelten Namen# sind nach Z-Index sortiert, erst die im Vordergrund, dann die im Hintergrund befindlichen.


GetColour(shapeName)
Ermittelt BrushColor, Opacity und PenColor einer Shape (s. LDShapes.GetOpacity bzw. UIElem. "Fill", "Opacity"*100, "Stroke").
shapeName Der Name der Shape/Steuerelement.
returns Ein 3-element. Array mit:
1=BrushColor (Hintergrundfarbe, Pinselfarbe) als #AARRGGBB;
2=ShapeOpacity (Deckkraft) von 0 bis 100 [%] (0 transparent, 100 deckend);
3=PenColor (Vordergrundfarbe, Stiftfarbe) als #AARRGGBB;

example LDShapes.GetColour("Button#") 'gibt zB:
1=System.Windows.Media.LinearGradientBrush;
2=100;
3=#FF6A5ACD; (SlateBlue)


GetLeft(shapeName)
Ermittelt die linke Position des Ankerpunktes einer Shape (auch für Dreieck, Linie, Polygon). Unbeeinflußt von Shapes.Zoom, -Rotate oder LDShapes.ReSize.
Funktioniert auch für Shapes während einer Animation.

shapeName Der Name der Shape/Steuerelement.
returns Die x-Koordinate der linken (oberen) Ecke der Shape.

GetOpacity(shapeName)
Ermittelt die Deckkraft einer Shape (s. LDShapes.GetColour).
shapeName Der Name der Shape/Steuerelement.
returns Der Wert der Deckkraft (0 bis 100 [%]). 0 ist völlig transparent und 100 ist völlig deckend (UIElem. "Opacity" * 100).

GetProperties(shapeName)
Ermittelt alle verfügbaren Eigenschaften einer Shape/Control als Array. Dies sind NET UIElement Eigenschaften.
shapeName Der Name der Shape/Steuerelement.
returns Ein Array aller verfügbaren Eigenschaften und deren Werte (zB: Fill, Height, IsMouseOver, IsVisible, Name, Opacity, Stroke, Width, usw.) bei Erfolg, sonst Fehlermeldung.
example 'Alle Eigenschaften zu 'shp':
prop = LDShapes.GetProperties(shp)
idcs = Array.GetAllIndices(prop)
For n = 1 To Array.GetItemCount(idcs)
TextWindow.WriteLine(idcs[n] +"="+ prop[idcs[n]])
EndFor

http://msdn.microsoft.com/library/system.windows.frameworkelement_properties.aspx
http://msdn.microsoft.com/library/system.windows.uielement_properties.aspx


GetProperty(shapeName,property)
Ermittelt eine spezielle Eigenschaft einer Shape/Control. Dies ist eine NET UIElement Eigenschaft.
shapeName Der Name der Shape/Steuerelement.
property Der (buchstabengetreue) Name der zu ermittelnden Eigenschaft (zB: Fill, Height, IsMouseOver, IsVisible, Name, Opacity, Stroke, Width, usw.).
returns Der Wert der Eigenschaft bei Erfolg, sonst Fehlermeldung.
example 'Text in Textshape:
GetProperty(shp, "Text")
'Bild in Bildshape:
GetProperty(shp, "Source")
'Markierungsfarbe/Zeilen in TB:
GetProperty(tb, "SelectionBrush") 'Strd: #FF3399FF
GetProperty(tb, "LineCount")

http://msdn.microsoft.com/library/system.windows.frameworkelement_properties.aspx
http://msdn.microsoft.com/library/system.windows.uielement_properties.aspx


GetTop(shapeName)
Ermittelt die obere Position des Ankerpunktes einer Shape (auch für Dreieck, Linie, Polygon). Unbeeinflußt von Shapes.Zoom, -Rotate oder LDShapes.ReSize.
Funktioniert auch für Shapes während einer Animation.

shapeName Der Name der Shape/Steuerelement.
returns Die y-Koordinate der oberen (linken) Ecke der Shape.

Height(shapeName)
Ermittelt die tatsächlich sichtbare Höhe einer Shape (zB. nach Zoom, umgebende Rechteckhöhe bei Erstellung, angenommene PenWidth = 0).
shapeName Der Name der Shape/Steuerelement.
returns Die sichtbare Höhe der Shape (Dezimalwert, UIElem. "ActualHeight").
example 'Turtle Höhe
Turtle.Show()
h = LDShapes.Height("_turtle") '16


LastEventShape
Ermittelt den Name der letzten Shape, für die ein (ShapeEvent) Ereignis aufgetreten ist (s. SetShapeEvent).

LastEventType
Ermittelt den letzten Shape-Ereignistyp, der in einem (ShapeEvent) Ereignis aufgetreten ist (s. SetShapeEvent). Mögliche Ereignisse:
"MouseDown", "MouseUp"
"MouseEnter", "MouseLeave"
"GotFocus", "LostFocus"

example "MouseDown" und "MouseUp" Ereignisse nicht für linke Maustaste auf Control (Steuerelement). Jedoch für rechte/mittlere Maustaste auf Slider/Button.
Alternativ s. FCControls.RegisterMouseDown(Up)Event


Move(shapeName,x,y)
Verschiebt eine Dreieck- oder Polygon-Shape an deren linken, oberen Position (Ankerpunkt).
Diese Methode funktioniert auch für Linien- (Shapes.AddLine), sowie Bildshapes (Shapes.AddImage), Ellipse, Rectangle, Textshape.

shapeName Der Name der Shape (Dreieck-, Polygon-, Linien- oder Bildshape).
x Die neue (linke) x-Koordinate der Shape.
y Die neue (obere) y-Koordinate der Shape.

MoveLine(shapeName,x1,y1,x2,y2)
Verschiebt/Skaliert eine Linien-Shape (Intern: Line#). Länge und Richtung werden je nach Zielkoordinaten angepasst.
shapeName Der Name der Shape (eine Linie, erstellt mit Shapes.AddLine).
x1 Die x-Koordinate für Zielpunkt 1 der Linie.
y1 Die y-Koordinate für Zielpunkt 1 der Linie.
x2 Die x-Koordinate für Zielpunkt 2 der Linie.
y2 Die y-Koordinate für Zielpunkt 2 der Linie.

MovePolygon(shapeName,points)
Verschiebt/Skaliert/Transformiert eine Vieleck Shape (Intern: Polygon#).
shapeName Der Name der Shape (Polygon, erstellt mit LDShapes.AddPolygon).
points Ein 2D Array mit den neuen Eckpunkt-Koordinaten des i-Polygons in der Form pkt[i][1] = x, pkt[i][2] = y, usw.
Die Indizes müssen nicht fortlaufend sein oder mit 1 beginnen.
Die Mindestanzahl der Eckpunkte beträgt 3 und Punktanzahl kann für jeden Aufruf geändert werden.


MoveTriangle(shapeName,x1,y1,x2,y2,x3,y3)
Verschiebt/Skaliert eine Dreieck-Shape (Intern: Triangle#). Seitenlänge(n), Form, Fläche werden je nach Zielkoordinaten angepasst.
shapeName Der Name der Shape (ein Dreieck, erstellt mit Shapes.AddTriangle).
x1 Die x-Koordinate für Zielpunkt 1 des Dreieckes.
y1 Die y-Koordinate für Zielpunkt 1 des Dreieckes.
x2 Die x-Koordinate für Zielpunkt 2 des Dreieckes.
y2 Die y-Koordinate für Zielpunkt 2 des Dreieckes.
x3 Die x-Koordinate für Zielpunkt 3 des Dreieckes.
y3 Die y-Koordinate für Zielpunkt 3 des Dreieckes.

Overlap(shape1,shape2)
Ermittelt ob sich die Ränder zweier Shapes beliebiger Form überschneiden (Kollisionserkennung).
shape1 darf nicht rotiert oder skaliert (gezoomt) sein.
Für weitere Überschneidungsarten s. 'OverlapDetail'.

shape1 Der Name der ersten Shape (unskaliert, nicht gedreht).
shape2 Der Name der zweiten Shape.
returns "True" wenn sich beide Shapes überlappen (gemeinsame Pixel besitzen), sonst "False".

OverlapBox(shape1,shape2)
Ermittelt ob sich die Ränder zweier eckiger Shapes überschneiden (Kollisionserkennung).
Für weitere Überschneidungsarten s. 'OverlapDetail'.

shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.
returns "True" wenn sich beide Shapes überlappen (gemeinsame Pixel besitzen), sonst "False".

OverlapCircle(shape1,shape2)
Ermittelt ob sich die Ränder zweier runder Shapes überschneiden (Kollisionserkennung).
Für weitere Überschneidungsarten s. 'OverlapDetail'.

shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.
returns "True" wenn sich beide Shapes überlappen (gemeinsame Pixel besitzen), sonst "False".

OverlapDetail
Ermittelt, nach Aufruf einer 'Overlap..' Methode, zusätzliche Details zu Überschneidungen.

Mögliche Ergebnisse:
"Empty" keine Überlappung
"FullyContains" shape1 gänzlich innerhalb von shape2
"Intersects" partielle Überlappung
"FullyInside" shape2 gänzlich innerhalb von shape1


PenColour(shapeName,colour)
Setzt/Ändert die Stiftfarbe für ein bestehendes Shape/Control (zB. Textfarbe in Button, TextBox oder Textshape, Shapes-Umrandungen, Turtle-Spur "_turtleLine#").
shapeName Der Name der Shape/Steuerelement.
colour Die neue Stiftfarbe (zB. "Transparent" verbirgt Buttontext).

PenStyle(shapeName,dash,space)
Setzt den Zeichenstil des Stiftes für eine bestehende Geometrieshape (Umrandung gestrichelt, gepunktet usw.).
shapeName Der Name der Shape.
dash Die einzelne Strichlänge oder 0 (keine Linie).
space Die Länge der Unterbrechungen oder 0 (durchgezogen).

PenWidth(shapeName,width)
Setzt die Strichbreite des Stiftes für eine bestehende Geometrieshape (zB. Umrandung, Turtle-Linie).
shapeName Der Name der Shape.
width Die neue Strichbreite.

RasteriseTurtleLines()
Rastert alle Turtle-Spur Linien (Intern: "_turtleLine#" Linienshape).
Bei großer Anzahl an Turtle-Spuren kann die Programmleistung durch die Anzahl vorhandener Linenshapes (Spuren) abnehmen.
Hiermit werden diese Turtle-Spuren von Linienshapes zu Hintergrundzeichnungen konvertiert.


RemoveTurtleLines()
Entfernt alle Turtle-Spur Linien (Intern: "_turtleLine#" Linienshape).

ResetTurtle()
Setzt die Turtle nach Aufruf von GW.Clear oder Turtle.Hide an ihre letzte Position zurück und blendet diese stets ein.

ReSize(shapeName,width,height)
Setzt optisch die Größe für ein bestehendes Shape/Control (uneingeschränkte Zoom-Möglichkeit, s. Shapes.Zoom).
Die Größenänderung erfolgt um den Mittelpunk der Shape nur optisch, dh. dieser und die tatsächlichen Abmessungen der Form bleiben erhalten.
s.a. SetSize, bzw. Controls.SetSize.

shapeName Der Name der Shape/Steuerelement.
width Die neue -/0/+ Breite der Shape (<0 Spiegelung an y-Achse).
height Die neue -/0/+ Höhe der Shape (<0 Spiegelung an x-Achse).
example Animation mittels s. LDShapes.AnimateZoom

RotateAbout(shapeName,x,y,angle)
Rotiert eine Shape optisch um einen angegebenen Punkt (Ankerpunkt bleibt unverändert).
shapeName Der Name der Shape.
x Die x-Koordinate des Pols um den die Shape gedreht wird (Standard: 0).
y Die y-Koordinate des Pols um den die Shape gedreht wird (Standard: 0).
angle Der Winkel [Grad] um den die Shape gedreht wird (+/- für im/gegen Uhrzeigersinn).
example Animation mittels s. LDShapes.AnimateRotation

SetImage(shapeName,imageName)
Setzt oder ändert ein Bild auf einem Button oder Bildshape (Intern: ImageList#+1). Bildgröße von ImageList/Dateipfad wird automatisch an Größe der Bildshape angepasst bzw. Buttongröße wird an Bildgröße angepasst (Buttonbreite/-höhe = Bildbreite/-höhe + 4).
ImageList Bild kann danach aus ImageList entfernt werden (LDImage.Remove). Entfernen des Bildes durch Ersetzen oder "none".
Nicht für animierte Bildshapes (s. AddAnimatedGif/-Image).

shapeName Der Name des Button oder Bildshape.
imageName Das zu setzende Bild als ImageList Name, Dateipfad oder Url. Sonstiger "string" oder Wert (außer "") entfernt Bild/Titel und setzt Buttongröße auf 4x4 bzw. Bildshape auf 0x0 Pxl.
example Eine Leershape von Shapes.AddImage("") wird nicht akzeptiert.
Für Bildshape wird UI-Eigenschaft "Stretch" zu "Fill" (Standard: Uniform) gesetzt (s. LDControls.MediaPlayerStretch).


SetProperty(shapeName,property,value)
Setzt den Wert einer Eigenschaft für eine Shape/Control. Dies ist eine NET UIElement Eigenschaft. Fehlermeldung bei Mißerfolg.
shapeName Der Name der Shape/Steuerelement.
property Der (buchstabengetreue) Name der zu setzenden Eigenschaft (zB: Fill, Height, IsMouseOver, IsVisible, Name, Opacity, Stroke, Width, usw.).
value Der zu setzende Eigenschaftswert.
example 'Markierungsfarbe in TB:
SetProperty(tb, "SelectionBrush","#FFRRGGBB")
'TB-Text zentriert,Block,links-/rechtsbündig:
SetProperty(tb, "TextAlignment","Center") 'Justify,Left,Right
'TB-Textumbruch:
SetProperty(tb, "TextWrapping","Wrap") 'NoWrap,WrapWithOverflow

http://msdn.microsoft.com/library/system.windows.frameworkelement_properties.aspx
http://msdn.microsoft.com/library/system.windows.uielement_properties.aspx


SetShapeEvent(shapeName)
Registriert eine bestehende Shape/Control zum Erkennen von Mausereignissen (per ShapeEvent) wie:
MouseDown, MouseUp,
MouseEnter, MouseLeave
(für Maus- Unten/Oben, Ein-/Austritt) und
GotFocus und LostFocus.

shapeName Der Name der Shape/Steuerelement (für Controls kein MouseDown/-Up).
example Alternativ s. FCControls.RegisterMouseDown(Up)Event

SetSize(shapeName,width,height)
Setzt die Größe einer bestehenden Shape, als ob sie in dieser Größe neu erstellt wurde (auch für Textshapes).
Die Position (l.o. Ankerpunkt) bleibt unverändert (ähnlich Controls.SetSize), s.a. ReSize.

shapeName Der Name der Shape/Steuerelement.
width Die neue Breite der Shape (>=0).
height Die neue Höhe der Shape (>=0).

SetTurtleImage(imageName,size)
Setzt ein alternatives Turtle-Bild anstatt der orig. Schildkröte (Intern: "_turtle" Bildshape) und zeigt dieses auch sofort an (Turtle.Show ist unnötig).
imageName Das zu ladende Alternativbild für die Turtle.
Rückgabewert von ImageList.LoadImage, lokale oder Netzwerk-Bilddatei (bmp, gif, ico, jpg, png, tiff, wdp).

size Die Abmessungen/Skalierung [Pxl] für das neue Turtle-Bild (size=B=H, Standard Turtle ist 16x16 Pxl).
"" zeigt kein Turtle-Bild. Unquadratische Originalbilder werden verzerrt dargestellt.
Das neue Turtle-Bild wird am Mittelpunkt zentriert.


ShapeEvent
Ereignisaufruf wenn ein Shape-Ereignis für eine (SetShapeEvent-) registrierte Shape/Control erkannt wird. Die Shape/Control muß bereits erstellt und (mittels SetShapeEvent) dafür registriert sein.

Skew(shapeName,angleX,angleY)
Abschrägen einer Shape um die angegebenen Winkel um den Shapemittelpunkt (2D Neigung, Scherung).
shapeName Der Name der abzuschrägenden Shape, zB. Bildshape.
angleX Der -/+ Scherwinkel [Grad] in x-Richtung (Neigungswinkel ab y-Achse im/gegen Uhrzeigersinn, Standard: 0).
angleY Der -/+ Scherwinkel [Grad] in y-Richtung (Neigungswinkel ab x-Achse im/gegen Uhrzeigersinn, Standard: 0).

Width(shapeName)
Ermittelt die tatsächlich sichtbare Breite einer Shape (zB. nach Zoom, umgebende Rechteckbreite bei Erstellung, angenommene PenWidth = 0).
shapeName Der Name der Shape/Steuerelement.
returns Die sichtbare Breite der Shape (Dezimalwert, UIElem. "ActualWidth").
example 'Turtle Breite
Turtle.Show()
w = LDShapes.Width("_turtle") '16


ZIndex(shapeName,z_index)
Setzt den Z-Index (Schichtposition) für eine Shape/Steuerelement.
shapeName Der Name der Shape/Steuerelement.
z_index Der ganzzahlige Z-Index (Standard: 0):
<0 Hintergrund
>0 Vordergrund

example http://msdn.microsoft.com/library/system.windows.controls.canvas.zindex.aspx

ZoomAll(scaleX,scaleY)
Vergrößert oder verkleinert alle Shapes im GraphicsWindow optisch mittels der angegebenen Zoomwerte.
Die Größenänderungen erfolgen im Mittelpunkt jeder Shape nur optisch, dh. dieser, der Ankerpunkt und die tatsächlichen Abmessungen der Basisshape bleiben erhalten.
Alle längenbezogenen Werte/Vektoren (zB. in LDPhysics) werden proportional mitskaliert.

scaleX Der -/+ Zoomfaktor in x-Richtung (1 Originalansicht).
scaleY Der -/+ Zoomfaktor in y-Richtung (1 Originalansicht).