LitDev 1.2.22.0 DE
http://litdev.co.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

LD3DView
3D Visualisierung im GraphicsWindow.

Standardkoordinaten (Rechtssystem) haben folgende Richtungen und keinen Bezug zu GraphicsWindow Koordinaten:
x - Links 0 Rechts +
y - Unten 0 Oben +
z - Hinten 0 Vorne +

Weitere Details zu untergeordneten Methoden s. http://msdn.microsoft.com/library/ms747437.aspx (Übersicht 3D-Grafiken).
Einige Add...-Methoden verwenden HelixToolkit (rekompiliert und angepasst für SB, http://www.helix-toolkit.org).
S.a. 'LDVector' für algebraische Vektormethoden.

example 3D-samples\*.sb

http://blogs.msdn.microsoft.com/smallbasic/2016/06/19/3d-visualisation/
http://docs.microsoft.com/dotnet/framework/wpf/graphics-multimedia/3-d-graphics-overview
http://msdn.microsoft.com/library/system.windows.media.media3d.aspx
http://msdn.microsoft.com/library/system.windows.controls.viewport3d.aspx
http://csharphelper.com/blog/2014/10/understand-three-dimensional-drawing-with-wpf-xaml-and-c
http://paulbourke.net
https://ebooks-it.org/0735623945-ebook.htm (3DProgramming For Windows.chm)

'Demo
view = LD3DView.AddView(gw,gh, "")
LDControls.AllowDrop(view)
LD3DView.AutoControl("","", 10,0)
...


AddAmbientLight AddArrow AddBackImage
AddCone AddCube AddDirectionalLight
AddGeometry AddIcosahedron AddImage
AddPipe AddPointLight AddPyramid
AddRectangle AddRevolute AddSphere
AddSpotLight AddTube AddView
AnimateRotation AnimateRotation2 AnimateTranslation
AutoControl AutoControl2 BoundingBox
CameraProperties CloneObject Freeze
GetCameraDirection GetCameraPosition GetCameraUpDirection
GetPosition HitTest LastRotationCompleted
LastTranslationCompleted LoadModel ModifyObject
MoveCamera QueuedRotationCompleted QueuedTranslationCompleted
ResetCamera ResetMaterial ReverseNormals
RotateGeometry RotateGeometry2 RotateGeometry3
RotationCompleted ScaleGeometry SetBackMaterial
SetBillBoard SetCentre SpecularExponent
SwapUpDirection TranslateGeometry TranslationCompleted

AddAmbientLight(shapeName,colour)
Fügt eine umgebende Lichtquelle hinzu, für gleichmäßige Beleuchtung aller Objekte aus allen Richtungen. Oft mit Farbe geringer Helligkeit zB. (Light)Gray, "#404040". Ungeeignet für spiegelnde Materialien "S" (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe (zB. "#808040").
returns Der 3DView Lichtname.
example Reflektierter Farbwert = Material Farbwert * Licht Farbwert / 255

AddArrow(shapeName,length,diameter,arrowLength,arrowDiameter,divisions,colour,materialType)
Fügt ein Pfeil/Vektor Geometrieobjekt hinzu, aufwärts gerichtet (+y, stehend auf x,z Ebene) beginnend an 0,0,0 (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
length Die Gesamtlänge des Pfeils (<0 Richtungsumkehr).
diameter Der Schaftdurchmesser des Pfeils.
arrowLength Die Länge der Pfeilspitze (Standard: 0, <0 Richtungsumkehr).
arrowDiameter Der untere Durchmesser der Pfeilspitze (Standard: diameter, Zylinder).
divisions Die Anzahl radialer Teilbereiche+1 für den Pfeil (>2, Standard: 18, nicht "").
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.
example vY = AddArrow(view, 8,0.1, 1,0.2, 18, "Lime","E")
TranslateGeometry(view, vY, 0,-4,0) 'y-Achse/Vektor

AddArrow(view, 10,0.1, "","", 18, "Red","D") 'Stab
AddArrow(view, 10,1, 10,1, 3, "Red","D") '2D-Kegel/Dreieck
AddArrow(view, 10,10, 10,10, 4, "Red","D") 'Tetraeder
AddArrow(view, 10,1, 10,"", 18, "Red","D") '2D-Kreis
AddArrow(view, -1,1, 10,"", 18, "Red","D") 'Rohr,Zylindermantel
AddArrow(view, 1,1, 10,"", 18, "Red","D") 'Vollzylinder


AddBackImage(shapeName,geometryName,textures,imageName,materialType)
Setzt/Ändert ein Bild/Farbe/Brush für die Rückseite auf einem Geometrieobjekt (Rückseite zur Auswärtsnormalen). S.a. 'SetBackMaterial' bzw. 'AddImage'.
Eine geometrische 'Ansicht' kann verschiedene Segmentbilder in einem Bild beinhalten.

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
textures Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von 2D Texturvektoren für jeden Gitterpunkt (points).
Für jeden Gitterpunkt 2 Werte u,v [0,1] welche die x,y Abbildung des Bildes zum Knoten bestimmen (zB. "0 1:1 1:1 0:0 0" für Gesamtbild auf 4eck).
Kann "" (Standard) sein, wenn die Textur zuvor bereits gesetzt wurde.

imageName Das im Geometrieobjekt zu ladende Bild (Rückgabewert von ImageList.LoadImage, lokale oder Netzwerk- Bilddatei), bzw. eine Farbe oder Gradientpinsel (Brush).
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst vom Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

example s. AddImage

AddCone(shapeName,baseRadius,topRadius,height,divisions,colour,materialType)
Fügt ein solides Kegel(stumpf) Geometrieobjekt hinzu, aufrecht (+y, stehend auf x,z Ebene) mit der Basis zentriert in 0,0,0 (Intern: Geometry#).
Info: Ein Zylinder entspricht einem Konus mit baseRadius = topRadius.

shapeName Der Name der 3DView Shape.
baseRadius Der Radius der Grundfläche.
topRadius Der obere Radius:
< 0 Verdrehung um y
= 0 Kegel (Standard)
> 0 Kegelstumpf
= baseRadius Zylinder

height Die Höhe des Konus (<0 Richtungsumkehr).
divisions Die Anzahl radialer Teilbereiche+1 für den Konus (>2, Standard: 0).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.
example AddCone(view, 1,0(0.5/1), 2, 3, "Red","D") 'Dreieck(Trapez/Quadrat)

AddCube(shapeName,sideLength,colour,materialType)
Fügt ein Würfel Geometrieobjekt hinzu, zentriert in 0,0,0 (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
sideLength Die Kantenlänge für den Würfel (<0 Normalenumkehr).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.
example Euler Polygonsatz E-K+F = 2
Ecken-Kanten+Flächen = 8-12+6 = 2


AddDirectionalLight(shapeName,colour,xDir,yDir,zDir)
Fügt eine gerichtete Lichtquelle hinzu, zur Beleuchtung durch weit entfernte Lichtquelle aus einer Richtung zB. Sonnenlicht (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe (zB. "#FFFF80", "#C0C0C0" bzw. "Silver").
xDir Der x-Richtungsvektor [-1,1] entlang dem der Lichteffekt wirkt (Standard: 0).
yDir Der y-Richtungsvektor [-1,1] entlang dem der Lichteffekt wirkt (Standard: 0).
zDir Der z-Richtungsvektor [-1,1] entlang dem der Lichteffekt wirkt (Standard: -1).
returns Der 3DView Lichtname.

AddGeometry(shapeName,points,indices,normals,colour,materialType)
Fügt ein math. Geometrieobjekt hinzu. Position und Dimension entsprechend 'points' Definition. (Intern: Geometry#).
s. http://sol.gfxile.net/sphere/index.html (Sphere Mesh Creation).

shapeName Der Name der 3DView Shape.
points Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste aller Gitter-/Eckpunkt-Koordinaten (zB. "x0:y0:z0 x1:y1:z1 ..").
indices Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von Eckpunkt-Indizes für jedes Dreieck (ab 0, im Gegenuhrzeigersinn je Außenfläche).
normals Optionale Leerzeichen- oder Doppelpunkt- begrenzte Liste von Auswärtsnormalen für jeden Gitterpunkt (points) oder "".
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst vom Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des neuen Geometrieobjekts in der 3DView bei Erfolg, sonst "" und Fehlermeldung.
example 'Tetraeder
'Kante 2, zentriert im Ursprung
pts= "1:0:-.707 -1:0:-.707 0:1:.707 0:-1:.707"
'Kante 1, Basis zentriert im Ursprung
pts= "0:.82:0 0:0:.58 .5:0:-.29 -.5:0:-.29"
'schräg liegend
pts= "1:1:1 1:-1:-1 -1:1:-1 -1:-1:1"
'pts= "1:1:-1 -1:-1:-1 -1:1:1 1:-1:1"
idcs= "0:1:2 0:2:3 0:3:1 1:3:2"
'Pyramide Höhe h, Basislänge 2*s
pts= "0:h:0 -s:0:-s -s:0:s s:0:s s:0:-s"
idcs= "0:1:2 0:2:3 0:3:4 0:4:1 1:3:2 1:4:3"


AddIcosahedron(shapeName,radius,colour,materialType)
Fügt ein regelmäßiges Ikosaeder (20Flächner) Geometrieobjekt hinzu, zentriert in 0,0,0 (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
radius Der Radius des Ikosaeder (Umkugelradius).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.
example Euler Polygonsatz E-K+F = 2
Ecken-Kanten+Flächen = 12-30+20 = 2


AddImage(shapeName,geometryName,textures,imageName,materialType)
Setzt/Ändert ein Bild/Farbe/Brush auf einem Geometrieobjekt (Seite der Auswärtsnormalen). S.a. 'ResetMaterial' bzw. 'AddBackImage'.
Eine 'geometrische Ansicht' kann verschiedene Segmentbilder in einem Bild beinhalten.
s.a. LDControls.AllowDrop

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
textures Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von 2D Texturvektoren für jeden Gitterpunkt (points).
Für jeden Gitterpunkt 2 Werte u,v [0,1] welche die x,y Abbildung des Bildes zum Knoten bestimmen (zB. "0 1:1 1:1 0:0 0" für Gesamtbild auf 4eck).
Kann "" (Standard) sein, wenn die Textur bereits gesetzt ist.
'Bild/Brush Basiskoordinaten u,v:
0,0 1,0 +-> u(x)
0,1 1,1 |
v v(y)

imageName Das im Geometrieobjekt zu ladende Bild (Rückgabewert von ImageList.LoadImage, lokale oder Netzwerk- Bilddatei), bzw. eine Farbe oder Gradientpinsel (Brush).
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst vom Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

example http://paulbourke.net/texturelibrary
http://paulbourke.net/miscellaneous/cubemaps
http://archivetextures.net
http://www.reinerstilesets.de
http://sftextures.com

'Vollbild auf 4eck (Breite w, Höhe h, y Pos)
pt4= "-w:y:h w:y:h w:y:-h -w:y:-h"
pt6= "-w:y:h w:y:h w:y:-h -w:y:h w:y:-h -w:y:-h"
ptN= LDText.Replace(ptN, "w",w/2)
ptN= LDText.Replace(ptN, "h",h/2)
ptN= LDText.Replace(ptN, "y",y)
id4= "0:1:2 3:4:5"
id6= "0:1:2 0:2:3"
tx4= "0:1 1:1 1:0 0:0"
tx6= "0:1 1:1 1:0 0:1 1:0 0:0"
rec= AddGeometry(view, ptN,idN,"", col,"D")
LD3DView.AddImage(view, rec,txN, img,"D")

0:1 1:1 1:0 0:0 'Strd (tx4)
1:1 1:0 0:0 0:1 '90° reRo
1:0 0:0 0:1 1:1 '180° Ro
0:0 0:1 1:1 1:0 '270° reRo = 90° liRo
1:1 0:1 0:0 1:0 'flipY
0:1 0:0 1:0 1:1 'flipY 90° reRo
0:0 1:0 1:1 0:1 'flipY 180° Ro = flipX
1:0 1:1 0:1 0:0 'flipY 270° reRo = flipY 90° liRo


AddPipe(shapeName,length,innerDiameter,outerDiameter,divisions,colour,materialType)
Fügt ein (Hohl)Zylinder/Rohr Geometrieobjekt hinzu, aufrecht (+y, stehend auf x,z Ebene) mit der Basis zentriert in 0,0,0 (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
length Die Länge des Rohres/Prismas (<0 Richtungsumkehr).
innerDiameter Der innere Rohrdurchmesser (0 Vollzylinder/-prisma).
outerDiameter Der äußere Rohrdurchmesser:
= innerD. Mantel
< innerD. umgestülpt

divisions Die Anzahl radialer Teilbereiche+1 für das Rohr (>2, Standard: 0).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.

AddPointLight(shapeName,colour,xPos,yPos,zPos,range)
Fügt eine ungerichtete Punktlichtquelle hinzu, begrenzte Reichweite, Intensität nimmt mit Entfernung ab (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe.
xPos Die x-Position des Lichtes.
yPos Die y-Position des Lichtes.
zPos Die z-Position des Lichtes.
range Der Lichtwirkungsbereich in alle Richtungen (Entfernung bis zu welcher der Lichteffekt wirkt).
returns Der 3DView Lichtname.

AddPyramid(shapeName,sideLength,height,colour,materialType)
Fügt ein Pyramide Geometrieobjekt hinzu, aufrecht (+y, stehend auf x,z Ebene) mit der Basis zentriert in 0,0,0 (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
sideLength Die Kantenlänge der quadratischen Basis.
height Die Höhe (<0 weist nach -y, umgekehrte Normalen).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.

AddRectangle(shapeName,width,height,colour,materialType)
Fügt ein Rechteck (einseitige Ebene) Geometrieobjekt hinzu, zentriert in 0,0,0, liegt in x,y Ebene mit Höhe z=0, Normale in +z Richtung (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
width Die Breite des Rechtecks (entlang x).
height Die Höhe des Rechtecks (entlang y).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt (nur Seite der Auswärtsnormalen, Gegenseite wirkt transparent).
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.
example AddRectangle(view, 2,2, "Red","D")
'Alternativ 2 Dreiecke:
pts = "-1:-1:0 1:-1:0 1:1:0 -1:1:0"
idcs = "0:1:3 1:2:3"
AddGeometry(view, pts,idcs,"", "Red","D")


AddRevolute(shapeName,path,divisions,colour,materialType)
Fügt ein Revolute Geometrieobjekt hinzu. Dies ist eine (offene/geschlossene) Oberfläche beginnend an 0,0,0 und aufwärts gerichtet.
Die Form ist definiert durch eine Punktemenge (y,z), wobei y die vertikale Distanz entlang der Oberfläche ab 0 beschreibt, z ist der Mantelradius.

shapeName Der Name der 3DView Shape.
path Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von 2D Punktkoordinaten zur Beschreibung der Revolutenform, zB. "y1:r1 y2:r2 ..." (y Höhe, r Umkreisradius).
divisions Die Anzahl radialer Teilbereiche+1 (>2, zB. 3 Fläche, Standard: 10, beeinflusst Anzahl der Dreiecke und Glattheit).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.
example '3-stöckiger Baum
pfad = "0:0 0:0.5 1:0.5 1:3 3:1 3:2.5 5:1 5:2 8:0"
'Regelm. n-Prisma/-(Doppel)Pyramide
pfad= "0:0 0:r h:r h:0"
pfad= "0:0 0:r h:0" 'Pyram
pfad= "0:0 h:r H:0" 'DoPyr
pfad= "-1:0 0:1 1:0" 'Oktaeder
AddRevolute(view, pfad,n+1, "Red","D")
'Pentagon
AddRevolute(view, "0 0:0 1:0 0", 6, "Red","D")


AddSphere(shapeName,radius,divisions,colour,materialType)
Fügt ein Kugel Geometrieobjekt zentriert in 0,0,0 hinzu (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
radius Der Kugelradius (<0 Normalenumkehr).
divisions Die Anzahl der Raumbereiche (>1, Standard: 10, beeinflusst Anzahl der Dreiecke und Glattheit, zB. 2 zeigt Oktaeder).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.

AddSpotLight(shapeName,colour,xPos,yPos,zPos,xDir,yDir,zDir,angle,range)
Fügt eine gerichtete Punktlichtquelle hinzu, begrenzter Lichtkegel und Reichweite, Intensität nimmt mit Entfernung ab (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe.
xPos Die x-Position des Lichtes.
yPos Die y-Position des Lichtes.
zPos Die z-Position des Lichtes.
xDir Der x-Richtungsvektor [-1,1] der Lichtprojektion (Standard: 0).
yDir Der y-Richtungsvektor [-1,1] der Lichtprojektion (Standard: 0).
zDir Der z-Richtungsvektor [-1,1] der Lichtprojektion (Standard: -1).
angle Der Lichtkegel des Strahls [Grad].
range Der Lichtwirkungsbereich (Entfernung bis zu welcher der Lichteffekt wirkt).
returns Der 3DView Lichtname.

AddTube(shapeName,path,diameter,divisions,colour,materialType)
Fügt ein rohr-/schlauchförmiges Geometrieobjekt hinzu (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
path Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von 3D Punktkoordinaten, zB. "x1:y1:z1 x2:y2:z2 ...".
diameter Der Rohr-/Schlauchdurchmesser.
divisions Die Anzahl radialer Rohrbereiche (>1, Standard: 10, beeinflusst Anzahl der Dreiecke und Glattheit).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige

returns Der Name des Geometrieobjekts in der 3DView.

AddView(width,height,performance)
Fügt eine 3DView Shape im GraphicsWindow hinzu, worin 3D Geometrieobjekte eingebunden und animiert werden können (Intern: View3D#).
width Die Breite der 3DView Shape.
height Die Höhe der 3DView Shape.
performance Vorzug von Schnelligkeit über Qualität? "True" oder "False" (Standard, 3DView fixiert auf definierte Breite/Höhe).
"True" entfernt visuelles Clipping (-> Größenänderung mit GW), 'HitTest' (nicht verwendet) und Antialias (nicht benötigt).
"False" zum Ablegen+Laden einer Bild-/3DModelldatei (s. LDControls.AllowDrop, -.FileDropped).

returns Der Name der 3DView Shape.

AnimateRotation(shapeName,geometryName,xDir,yDir,zDir,startAngle,endAngle,duration,repeats)
Setzt ein Geometrieobjekt auf animierte 3D-Rotation um einen Achsenvektor (asynchron, s. 'RotationCompleted' Ereignis).
Verwendet die zweite Rotation "R2". Die erste ist weiterhin verfügbar für eine andere Achsrotation.

shapeName Der Name der 3DView Shape.
geometryName Der Name des zu drehenden Geometrieobjekts, zB. model[1].
xDir Der x-Richtungsvektor [-1,1] der Drehachse.
yDir Der y-Richtungsvektor [-1,1] der Drehachse.
zDir Der z-Richtungsvektor [-1,1] der Drehachse.
startAngle Der Startwinkel [Grad] vom Grundzustand (Standard: 0).
endAngle Der Endwinkel [Grad] vom Grundzustand, zB. 359 (Standard: 0).
duration Die Dauer [sec] für einen Rotationszyklus start-/endAngle (0 beendet, max. 214.7).
duration = 60/umin [s] bzw.
umin = 60/duration [1/min]
loopDelay = duration/360 [s/°]

repeats Die Anzahl der Rotationszyklen, zB. 0.5 für Halbdrehung (<=0 für stetig).

AnimateRotation2(shapeName,geometryName,xDir,yDir,zDir,startAngle,endAngle,duration,repeats)
Setzt ein Geometrieobjekt auf animierte 3D-Rotation um einen Achsenvektor (asynchron, s. 'RotationCompleted' Ereignis).
Verwendet die dritte Rotation "R3". Die erste ist weiterhin verfügbar für eine andere Achsrotation.

shapeName Der Name der 3DView Shape.
geometryName Der Name des zu drehenden Geometrieobjekts, zB. model[1].
xDir Der x-Richtungsvektor [-1,1] der Drehachse.
yDir Der y-Richtungsvektor [-1,1] der Drehachse.
zDir Der z-Richtungsvektor [-1,1] der Drehachse.
startAngle Der Startwinkel [Grad] vom Grundzustand (Standard: 0).
endAngle Der Endwinkel [Grad] vom Grundzustand, zB. 359 (Standard: 0).
duration Die Dauer [sec] für einen Rotationszyklus start-/endAngle (0 beendet, max. 214.7).
duration = 60/umin [s] bzw.
umin = 60/duration [1/min]
loopDelay = duration/360 [s/°]

repeats Die Anzahl der Rotationszyklen, zB. 0.5 für Halbdrehung (<=0 für stetig).

AnimateTranslation(shapeName,geometryName,x,y,z,duration)
Setzt ein Geometrieobjekt auf animierte geradlinige 3D-Bewegung (asynchron, s. 'TranslationCompleted' Ereignis).
shapeName Der Name der 3DView Shape.
geometryName Der Name des zu bewegenden Geometrieobjekts, zB. model[1].
x Die x-Koordinate des Zielpunktes.
y Die y-Koordinate des Zielpunktes.
z Die z-Koordinate des Zielpunktes.
duration Die Dauer [sec] der Animation (0 beendet).

AutoControl(pitchRoll,shift,keyDistance,speed)
Setzt automatische Steuerung für die Kamera.
Dieser Modus ist zur allg. Kamerasteuerung, hauptsächlich zum Bewegen (Überflug) in einer 3D Szene.
Vor-|Rückwärtsbewegung per Mausrad (+Umsch/Strg Taste für 5x schneller/langsamer).
L|R Gieren (Yaw) und Auf|Ab Neigen (Pitch) Kamerabewegung mit L-Maus.
L|R Gieren mit A,D oder Links,Rechts Taste.
Vor-|Rückwärtsbewegung mit W,S oder Auf,Ab Taste.
Rollen (Drehen) Kamerabewegung mit R-Maus.
L-Doppelklick auf Objekt zur Zentrierung/Auswahl (Zentrum für Rotation R1).
R-Doppelklick zum Zurücksetzen der Aufwärts-Richtung zu y (yUp=1).
L|R Gieren (Yaw) und Auf|Ab Neigen (Pitch) Szenenbewegung mit Umsch+LMaus nach Objektwahl (worum die Szene dedreht wird).
X,Y,Z Taste setzt diese Ansichts-/Aufwärts-Richtung (Blick nach 0,0,0); +Umsch in die Gegenrichtung.

pitchRoll Auf|Ab Neigen und Rollen Bewegung erlauben? "True" oder "False" (Standard).
shift Umsch/Strg Tasten zur Maussteuerung erlauben? "True" oder "False" (Standard).
keyDistance Kameraabstand und Tastensteuerung:
>0 Kameraabstand zum Ursprung bei X,Y,Z Taste (Init: 0,0,10)
=0 blockt X,Y,Z Tasten (Standard, "")
<0 blockt auch A,D,W,S und Pfeiltasten

speed Vor/Zurück Schrittfaktor für W,Up,Rad↓ bzw. S,Down,Rad↑:
>0 zB. 0.833=1/1.2=5/6 für dStep=1
=0 blockt W,S, Up,Down, Mausrad (Standard)
<0 Gegenrichtung


AutoControl2(keyDistance,speed)
Setzt automatische Steuerung für die Kamera.
Dieser Modus ist eher für Drehen und Ansicht einer 3D Szene (Inspektion), als zum Bewegen durch die Szene.
Rein|Raus Zoom per Mausrad (+Umsch/Strg Taste für 5x schneller/langsamer).
L|R Schwenk mit A,D oder Links,Rechts Taste. Auf|Ab Schwenk mit W,S oder Auf,Ab Taste.
L-Doppelklick auf Objekt zur Zentrierung/Auswahl (Zentrum für Rotation R1).
R-Doppelklick zum Zurücksetzen der Aufwärts-Richtung zu y (yUp=1).
L|R Gieren (Yaw) und Auf|Ab Neigen (Pitch) Szenenbewegung mit LMaus nach Objektwahl (worum die Szene dedreht wird).
Rollen (Drehen) Szenenbewegung mit R-Maus.
X,Y,Z Taste setzt diese Ansichts-/Aufwärts-Richtung (Blick Richtung gewählten Zentrums); +Umsch in die Gegenrichtung.

keyDistance Kameraabstand und Tastensteuerung:
>0 Kameraabstand zum Ursprung bei X,Y,Z Taste (Init: 0,0,10)
=0 blockt X,Y,Z Tasten (Standard, "")
<0 blockt auch A,D,W,S und Pfeiltasten

speed Vor/Zurück Schrittfaktor für A,D,W,S, Pfeiltasten, Mausrad:
>0 zB. 0.833=1/1.2=5/6 für dStep=1
=0 blockt A,D,W,S, Pfeiltasten, Mausrad (Standard)
<0 Gegenrichtung


BoundingBox(shapeName,geometryName)
Ermittelt Abmessungen und Position des umgebenden Hüllkörpers für ein einzelnes Geometrieobjekt (s. GetPosition).
Dies sind die aktuellen Werte/Koordinaten (nach allen Transformationen).

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
returns Ein 6-element. Array (ab 1) folgender Dimensionen/Position bei Erfolg, sonst "FAILED":

dimX = box[1] (Breite)
dimY = box[2] (Höhe)
dimZ = box[3] (Tiefe)
minX = box[4]
minY = box[5]
minZ = box[6]


CameraProperties(shapeName,nearDistance,farDistance,angle)
Setzt den horiz. Blickwinkel der Kamera, sowie Clippingabstände (Distanz vordere/hintere Clippingebene).
Fundamentale Eigenschaften für perspektivische Kamerasicht.

shapeName Der Name der 3DView Shape.
nearDistance Der vordere Clippingabstand (kann nahes Objekt verbessern zB. Maueraufprall Erkennung).
Bei -angle ist 0.001 (Standard: 0.125, sonst >=0.001).

farDistance Der hintere Clippingabstand (kann Leistung verbessern).
Bei -angle ist unendlich (Standard, sonst >= nearDistance).

angle Der Sichtkegel der Kamera [Grad]. Beeinflusst den perspektivischen Fluchtpunkt (Standard: 60).
Falls negativ, wird eine orthographische Kamera (Parallelprojektion mit Sichtbreite -angle) verwendet (statt perspektivische Zentralprojektion).


CloneObject(shapeName,geometryName)
Erstellt eine komplette Kopie eines einzelnen Geometrieobjekts mit all seinen Eigenschaften, wie Farbe, Materal, MapImage, Pos/Drehung (Animation nicht) usw. (Intern: Geometry#+1).
shapeName Der Name der 3DView Shape.
geometryName Der Name des zu kopierenden Geometrieobjekts, zB. model[1].
returns Der Name des neuen kopierten Geometrieobjekts in der 3DView bei Erfolg, sonst "".

Freeze(shapeName,geometryName)
Einfrieren eines Geometrieobjekts zur kleinen Leistungsverbesserung. Dieses kann danach in keiner Weise modifiziert werden.
shapeName Der Name der 3DView Shape.
geometryName Der Name des einzufrierenden Geometrieobjekts, zB. model[1].
returns Nichts (Fehlermeldung bei Mißerfolg)

GetCameraDirection(shapeName)
Ermittelt die Blickrichtung der Kamera (Richtungsvektor) als Array der Komponenten "1=xDir;2=yDir;3=zDir;".
xDir*xDir + yDir*yDir + zDir*zDir = 1 (Einheitsvektor)

shapeName Der Name der 3DView Shape.
returns Ein 3-element. Array mit dem Richtungsvektor der Kamerasicht (Standard: "1=0;2=0;3=-1;").

GetCameraPosition(shapeName)
Ermittelt die Kameraposition als Array der Koordinaten "1=xPos;2=yPos;3=zPos;".
shapeName Der Name der 3DView Shape.
returns Ein 3-element. Array mit den Positionskoordinaten der Kamera (Standard: "1=0;2=0;3=10;").
example 'Radius zum Ursprung (0,0,0)
P = LD3DView.GetCameraPosition(view)
r = Math.SquareRoot(P[1]*P[1] + P[2]*P[2] + P[3]*P[3])

'Abstand 2er Punkte (Vektorlänge)
a = Math.SquareRoot(dx*dx + dy*dy + dz*dz)

'Koord. von P2 ab P,r,dir (Vektorverschiebung)
x2 = P[1] + r * dir[1]
y2 = P[2] + r * dir[2]
z2 = P[3] + r * dir[3]


GetCameraUpDirection(shapeName)
Ermittelt den Aufwärts-Richtungsvektor in der Szenenprojektion als Array der Komponenten "1=xUp;2=yUp;3=zUp;".
xUp*xUp + yUp*yUp + zUp*zUp = 1 (Einheitsvektor)

shapeName Der Name der 3DView Shape.
returns Ein 3-element. Array mit dem Aufwärts Richtungsvektor der 3DView (Standard: "1=0;2=1;3=0;").

GetPosition(shapeName,geometryName)
Ermittelt die transformierte (aktuelle) Zentrumsposition für ein bestehendes Geometrieobjekt (s. BoundingBox).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
returns Ein 3-element. Array (ab 1) der transformierten Position bei Erfolg, sonst "FAILED":

centX = pos[1]
centY = pos[2]
centZ = pos[3]


HitTest(shapeName,x,y)
Ermittelt ein Auftreffen auf ein Geometrieobjekt in der 3DView. s. LD3DView.AddView(w,h, "").
Ein negativer Wert für eine Koordinate bezieht sich auf die Mitte der 3DView (Kameraansicht).

shapeName Der Name der 3DView Shape.
x Die x-Koordinate im GraphicsWindow (innerhalb der 3DView).
y Die y-Koordinate im GraphicsWindow (innerhalb der 3DView).
returns Ein 2-element. Array mit dem Name des Zielobjekts und seiner Entfernung (zB. "1=Geometry#;2=dist;") oder "" für keinen Treffer.
example 3D-samples\LD3DView.sb, LD3DMazeGame.sb

LastRotationCompleted
Ermittelt den Name des Geometrieobjekts welches zuletzt eine animierte Volldrehung beendete.

LastTranslationCompleted
Ermittelt den Name des Geometrieobjekts welches zuletzt eine animierte Vollbewegung beendete.

LoadModel(shapeName,fileName)
Lädt ein geometrisches Modell von einer Datei und fügt dieses an 0,0,0 in der 3DView hinzu (Intern: Geometry#+1).
Unterstützte Formate: 3ds, lwo, obj, (obj.gz ->)objz, off, stl. Position und Dimension entsprechend vorgegebener Geometrieeigenschaften.

shapeName Der Name der 3DView Shape.
fileName Der volle Pfad der zu ladenden Modelldatei.
Oft sind auch (gleichnamige) Bilddateien usw. im selben Ordner erforderlich.

returns Ein Array mit den Namen der hinzugefügten Geometrieobjekte bzw. Teilobjekte.
example 3D-samples\LD3DViewImport.sb
http://archive3d.net
http://archibase.co
http://free3d.com
http://leopoly.com
http://tf3dm.com
http://yobi3d.com


ModifyObject(shapeName,geometryName,action)
Durchführen einer Aktion an einem Geometrie- oder Lichtobjekt.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrie- oder Lichtobjekts, zB. model[1].
action Die durchzuführende Aktion:
"H" Verbergen
"S" Anzeigen
"X" Entfernen


MoveCamera(shapeName,yaw,pitch,roll,move)
Ändert die Blickrichtung und Position der Kamera relativ zur aktuellen Ausrichtung/Position.
Winkelangaben im Bereich [0,-/+180] oder [0,-/+360], zB. 10|-350 bzw. -10|350.

shapeName Der Name der 3DView Shape.
yaw Die Links/Rechts ↔ Schwenkung [Grad] ab aktueller Ausrichtung (Gierung, Standard: 0).
+ Kamera rechts, Szene links
- Kamera links, Szene rechts

pitch Die Rauf/Runter ↕ Neigung [Grad] ab aktueller Ausrichtung (Standard: 0).
+ Kamera rauf, Szene runter
- Kamera runter, Szene rauf

roll Die Verdrehung in Blickrichtung [Grad] ab aktueller Ausrichtung (Standard: 0).
+ Kamera/Szene im/gegen Uhrzeigersinn
- Kamera/Szene gegen/im Uhrzeigersinn

move Die Vor-/Rückwärts Bewegung [Pxl] in Kamerakoordinaten (entlang Blickrichtung) ab aktueller Position.
+ Kamera vorwärts
- Kamera rückwärts


QueuedRotationCompleted
Ermittelt die Anzahl der aktuell abgeschlossenen animierten Volldrehungen.

QueuedTranslationCompleted
Ermittelt die Anzahl der aktuell abgeschlossenen animierten Vollbewegungen.

ResetCamera(shapeName,xPos,yPos,zPos,xDir,yDir,zDir,xUp,yUp,zUp)
Setzt die Position und Blickrichtung der Kamera, sowie (optional) die Aufwärtsrichtung der Ansicht.
Standard: Position in (0,0,10), zentrierte Ansicht entlang -z Achse abwärts, +y oben und +x rechts.
Mindestens ein Dir Vektor muß <>0 sein, alle anderen Pos/Dir Werte können dann "" sein.

shapeName Der Name der 3DView Shape.
xPos Die x-Position der Kamera (Standard: 0).
yPos Die y-Position der Kamera (Standard: 0).
zPos Die z-Position der Kamera (Standard: 10).
xDir Der x-Richtungsvektor [-1,1] der Kamerasicht (-/+ Links/Rechts, Standard: 0).
yDir Der y-Richtungsvektor [-1,1] der Kamerasicht (-/+ Runter/Rauf, Standard: 0).
zDir Der z-Richtungsvektor [-1,1] der Kamerasicht (-/+ Rein/Raus, Standard: -1).
xUp Optionaler x-Richtungsvektor [-1,1], definiert Aufwärts-Richtung der Szenenprojektion (Standard: 0).
yUp Optionaler y-Richtungsvektor [-1,1], definiert Aufwärts-Richtung der Szenenprojektion (Standard: 1).
zUp Optionaler z-Richtungsvektor [-1,1], definiert Aufwärts-Richtung der Szenenprojektion (Standard: 0).
example 'Z-Taste (Standard Ansicht):
ResetCamera(view, 0,0,10, 0,0,-1, 0,1,0)
ResetCamera(view, "","",10, "","",-1, "",1,"")
'Umsch+Z:
ResetCamera(view, 0,0,-10, 0,0,1, 0,1,0)
'X-Taste:
ResetCamera(view, 10,0,0, -1,0,0, 0,1,0)
'Umsch+X:
ResetCamera(view, -10,0,0, 1,0,0, 0,1,0)
'Y-Taste:
ResetCamera(view, 0,10,0, 0,-1,0, 0,0,1)
'Umsch+Y:
ResetCamera(view, 0,-10,0, 0,1,0, 0,0,1)


ResetMaterial(shapeName,geometryName,colour,materialType)
(Er)Setzt das Material/Farbe für ein bestehendes Geometrieobjekt. S.a. 'AddImage' bzw. 'SetBackMaterial'.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
colour Die neue Farbe oder ein Gradientpinsel (Brush) für das Objekt (nur Seite der Auswärtsnormalen).
materialType Der neue Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige


ReverseNormals(shapeName,geometryName)
Umkehren aller Auswärtsnormalen (1/Gitterpunkt) für ein Geometrieobjekt.
Macht zB. die Innenoberfläche eines Körpers sichtbar anstatt der Außenoberfläche (zB. SkyDome).
Normalen zeigen in Richtung der maximalen Lichtreflexion.

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts dessen Normalen umgekehrt werden.

RotateGeometry(shapeName,geometryName,x,y,z,angle)
Rotiert ein Geometrieobjekt um dessen Zentrum (erste Rotation "R1", relativ ab Originalposition).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
x Der x-Richtungsvektor [-1,1] der Drehachse.
y Der y-Richtungsvektor [-1,1] der Drehachse.
z Der z-Richtungsvektor [-1,1] der Drehachse.
angle Der Drehwinkel vom Grundzustand [Grad] ab Originalposition.
Blick entlang +/- Drehachse -> im/gegen Uhrzeigersinn


RotateGeometry2(shapeName,geometryName,x,y,z,angle)
Rotiert ein Geometrieobjekt um dessen Zentrum (zweite Rotation "R2", relativ ab aktueller Position).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
x Der x-Richtungsvektor [-1,1] der Drehachse.
y Der y-Richtungsvektor [-1,1] der Drehachse.
z Der z-Richtungsvektor [-1,1] der Drehachse.
angle Der Drehwinkel [Grad] ab aktueller Position.
Blick entlang +/- Drehachse -> im/gegen Uhrzeigersinn


RotateGeometry3(shapeName,geometryName,x,y,z,angle)
Rotiert ein Geometrieobjekt um dessen Zentrum (dritte Rotation "R3", relativ ab aktueller Position).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
x Der x-Richtungsvektor [-1,1] der Drehachse.
y Der y-Richtungsvektor [-1,1] der Drehachse.
z Der y-Richtungsvektor [-1,1] der Drehachse.
angle Der Drehwinkel [Grad] ab aktueller Position.
Blick entlang +/- Drehachse -> im/gegen Uhrzeigersinn


RotationCompleted
Ereignisaufruf bei Beendigung einer Drehanimation (AnimateRotation(2), für 'repeats' >0).

ScaleGeometry(shapeName,geometryName,scaleX,scaleY,scaleZ)
Skaliert (zoomt) ein Geometrieobjekt an dessen Zentrum. s. SetCentre(..,"S")
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
scaleX Der x-Skalierungsfaktor (Standard: 1).
scaleY Der y-Skalierungsfaktor (Standard: 1).
scaleZ Der z-Skalierungsfaktor (Standard: 1).

SetBackMaterial(shapeName,geometryName,colour,materialType)
(Er)Setzt das Material/Farbe der Rückseite für ein bestehendes Geometrieobjekt. S.a. 'AddBackImage' bzw. 'ResetMaterial'.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
colour Die neue Farbe oder ein Gradientpinsel (Brush) für das Objekt (nur Rückseite zur Auswärtsnormalen).
materialType Der neue Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte
"" Ohne, keine Anzeige


SetBillBoard(shapeName,geometryName)
Setzt ein Geometrieobjekt auf kontinuierliche Rotation zur Kameraverfolgung.
Verwendet die zweite und dritte Rotation "R2R3".

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts in der 3DView.

SetCentre(shapeName,geometryName,x,y,z,options)
Setzt das Zentrum von Rotate- und ScaleGeometry Transformationen für ein Geometrieobjekt.
Standardmäßig ist dies das Zentrum des Hüllkörpers für das Geometrieobjekt (meist 0,0,0).
Das Zentrum wird mittels der Koordinaten bei Erstellung des Geometrieobjekts definiert und kann auch außerhalb des Geometrieobjekts liegen.
Ist ein Koordinatenwert auf "" gesetzt, wird dafür der Standardwert für das Zentrum verwendet.

shapeName Der Name der 3DView Shape.
geometryName Der Name des zu transformierenden Geometrieobjekts.
x Die x-Koordinate des Zentrums.
y Die y-Koordinate des Zentrums.
z Die z-Koordinate des Zentrums.
options Optionen zur Steuerung der Zentrierung (auch Mehrfachwerte, zB. "R1R2R3" zum Setzen für alle drei Rotationen):
"R1" RotateGeometry
"R2" RotateGeometry2, AnimateRotation
"R3" RotateGeometry3, AnimateRotation2
"S" ScaleGeometry


SpecularExponent
Ermittelt oder setzt den Spiegelungsexponent bei Verwendung von spiegelndem Material "S" für Geometrieobjekte (Standard: 5).
Dieser Exponent definiert den rel. Anteil der Glanzkomponente des Beleuchtungsmodells für ein Material.
Ist zu setzen bevor ein neues Geometrieobjekt mit dieser Eigenschaft erstellt wird, danach unveränderbar.


SwapUpDirection(shapeName,geometryName)
Rotiert (Wechselt) die y<->z Richtungen für ein Geometrieobjekt (zB. der Reihe nach: y,z,-y,-z, .., entspricht 4x 90° Linksdrehung(en) um +x-Achse).
Hilfreich für Geometrieobjekte, die nach zUp=1 Regel erstellt wurden. Konvertiert diese zur yUp=1 Richtung (wie in LD3DView verwendet).
Direkt nach Erstellung/Laden anwenden, da skalierte Objekte dabei auf Originalgröße zurückgesetzt werden.

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
example http://de.wikipedia.org/wiki/Rechtssystem_(Mathematik)
ang = ang - 90
RotateGeometry(view, geo, 1,0,0, ang) 'SwapUpDirection(view, geo)

Bildstoß (für Kugel) verläüft an 0,[y,-y],-z


TranslateGeometry(shapeName,geometryName,dX,dY,dZ)
Verschiebt ein Geometrieobjekt geradlinig an dessen Zentrum, relativ ab Originalposition.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
dX Der Versatz in x-Richtung ab Originalposition.
dY Der Versatz in y-Richtung ab Originalposition.
dZ Der Versatz in z-Richtung ab Originalposition.

TranslationCompleted
Ereignisaufruf bei Beendigung einer geradlinigen Bewegungsanimation (AnimateTranslation).

LDArray
Ein 1D LDArray der schneller operiert als gewöhnliche SB-Arrays. LDArrays und SB-Arrays sind unterschiedlich definiert.
Ein neuer LDArray muß zuerst mit 'Create' erstellt werden (Intern: Array#, s. FastArray).
Nützlich für Arrays mit mehr als 100 bis 1000 Elementen (Zahl, String, Var). Unterstützt auch Leerwerte ("").
Bei Fehler wird "FAILED" zurückgegeben.

example other-samples\LDUnits.sb

Copy CopyNew CopyToSBArray
Count Create CreateFromIndices
CreateFromValues Delete GetIndex
GetValue Load Save
Search SetValue Sort
SortIndex

Copy(array1,array2)
Kopiert einen LDArray in einen bestehenden LDArray.
Beide LDArrays müssen gleich dimensioniert sein.

array1 Der zu kopierende LDArray (Quellarray).
array2 Der LDArray in den die Daten kopiert werden (Zielarray).
returns "" bei Erfolg, sonst "FAILED".

CopyNew(array)
Kopiert einen LDArray in einen neuen LDArray (Intern: Array#+1).
array Der zu kopierende LDArray.
returns Der Name des neuen LDArrays (Kopie) bei Erfolg, sonst "FAILED".

CopyToSBArray(array)
Kopiert einen LDArray in einen neuen SB-Array. Ein bestehender SB-Array wird überschrieben.
Die Umkehrung (SB-Array zu LDArray) ist problematisch, da SB-Arrays nicht zwangsläufig durch fortlaufendee Ganzzahlen indexiert sind.
SB-Arrays können keine Leerwerte ("") enthalten, daher werden diese Werte nicht mitkopiert.

array Der Name des LDArrays (Quelle).
returns Der Name des SB-Arrays (Ziel) bei Erfolg, sonst "FAILED".

Count(array)
Ermittelt die Anzahl nicht-leerer Elemente in einem LDArray.
array Der Name des LDArrays.
returns Die Anzahl der Elemente, die Werte enthalten.

Create(maxSize)
Erstellt einen neuen LDArray zur Verwendung mit Zahlen oder Strings. Ein neuer LDArray muß hiermit zuerst erstellt werden (Intern: Array#).
maxSize Die maximale Anzahl der Elemente im Array.
returns Der Name des LDArrays bei Erfolg, sonst "FAILED".

CreateFromIndices(sbArray)
Erstellt einen neuen LDArray aus den Indizes eines SB-Arrays (Intern: Array#+1).
sbArray Der SB-Array.
returns Der Name des neuen LDArrays bei Erfolg, sonst "FAILED".

CreateFromValues(sbArray)
Erstellt einen neuen LDArray aus den Werten eines SB-Arrays (Intern: Array#+1).
sbArray Der SB-Array.
returns Der Name des neuen LDArrays bei Erfolg, sonst "FAILED".

Delete(array)
Löscht einen bestehenden LDArray aus dem Arbeitsspeicher (nicht unbedingt nötig, zur Freigabe von Speicherplatz bei Verwendung vieler Arrays).
array Der Name des zu löschenden LDArrays.
returns "" bei Erfolg, sonst "FAILED".

GetIndex(sbArray,value)
Ermittelt den ersten Index für einen Wert in einem SB-Array.
sbArray Der SB-Array.
value Der zu suchende Arraywert (buchstabengetreu).
returns Der erste Index für den Wert im SB-Array oder "" (nicht gefunden), sonst "FAILED".

GetValue(array,index)
Ermittelt einen Wert in einem LDArray.
array Der Name des LDArrays.
index Der Index des Elementes, dessen Wert zu ermitteln ist (ab 1).
returns Der ermittelte Arraywert bei Erfolg, sonst "FAILED".

Load(array,fileName)
Lädt einen LDArray aus einer Datei.
array Der LDArray in den die Daten geladen werden. Dieser muß bereits bestehen.
fileName Der volle Dateipfad zum Laden des LDArrays.
returns Die Anzahl geladener Arrayelemente.

Save(array,fileName)
Speichert einen LDArray in eine Datei.
array Der zu speichernde LDArray.
fileName Der volle Dateipfad zum Speichern des LDArrays.
returns Die Anzahl gespeicherter Arrayelemente.

Search(array,searchString,match)
Ermittelt einen LDArray mit Indizes der Werte, welche den Suchstring beinhalten. GROß-/kleinschr. egal (keine Unterscheidung).
Der Eingabearray bleibt unverändert und der Trefferarray muß bereits bestehen (gleiche Größe wie durchsuchter LDArray).

array Der nach Treffern zu durchsuchende LDArray.
searchString Die zu suchende Zeichenfolge.
match Ein LDArray mit den Indizes der Trefferwerte.
returns Die Anzahl gefundener Suchtreffer.

SetValue(array,index,value)
Setzt einen Wert in einem bestehenden LDArray. Ein neuer LDArray muß zuerst mit 'Create' erstellt werden.
array Der Name des LDArrays.
index Der Index des zu ändernden Elementes im LDArray (ab 1).
value Der zu setzende Wert.
returns "" bei Erfolg, sonst "FAILED".

Sort(array)
Sortiert einen LDArray.
Standard ist alphabetische Sortierung, daher kommt "10" vor "2".
Um nach Zahlenwert zu sortieren, müssen alle Werte numerisch sein (oder leer).
Leerwerte sind am Ende der Sortierung angereiht.
Der angegebene LDArray wird durch den sortierten LDArray ersetzt.

array Zu sortierender LDArray.
returns "" bei Erfolg, sonst "FAILED".

SortIndex(array,index)
Füllt einen LDArray mit den sortierten Indizes eines zu sortierenden LDArrays.
Standard ist alphabetische Sortierung, daher kommt "10" vor "2".
Um nach Zahlenwert zu sortieren, müssen alle Werte numerisch sein (oder leer).
Leerwerte sind am Ende der Sortierung angereiht.
Der angegebene LDArray bleibt unverändert und der Indizes-beinhaltende LDArray muß zuvor auf die gleiche Größe wie der zu sortierende dimensioniert werden.

array Der LDArray welcher nach Sortierung die Reihenfolge der Indizes beinhaltet.
index Ein LDArray mit der Reihenfolge des sortierten LDArrays.
returns "" bei Erfolg, sonst "FAILED".

LDBits
Bitweise Logik zum Speichern binärer Flags als Bits in einer einzelnen -/+ Ganzzahl.
Intern wird dazu eine 32bit -/+ Ganzzahl (Int32, -2147483648 bis 2147483647, -2^31 bis 2^31-1) verwendet.
Index 32 ist Vorzeichenbit (wenn gesetzt -> neg. Ganzzahl als Zweierkomplement).
Vergleichbar mit 32-element. Array aus 1 und 0 Werten, gespeichert als einzelne Zahl.
Die 32 Bits (1 bis 32) werden ab 1 indexiert. Arraywerte (0|1) sind die gesetzten 2er Potenzen von 0 bis 30:
bit1..2^0, bit2..2^1, bit3..2^2, usw.

example http://www.catonmat.net/blog/low-level-bit-hacks-you-absolutely-must-know/
http://graphics.stanford.edu/~seander/bithacks.html


AndBits GetBit GetBits
Not OrBits SetBit
UnsetBit XOrBits

AndBits(var1,var2)
Bitweise And (&, Und) Verkettung zweier Zahlen.
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1

var1 Die erste Zahl.
var2 Die zweite Zahl.
returns Die And Zahl (Bit gesetzt, wenn beide Eingabebits gesetzt).
example 1100 (12) And
1010 (10) =
1000 (8)

LDBits.AndBits(15, 255) '15
(0F & FF = 0F, 00001111 & 11111111 = 00001111)
'n Geradzahl?
LDBits.AndBits(n,1) '0 gerade, 1 ungerade


GetBit(var,bit)
Ermittelt einen einzelnen Bitwert in einer angegebenen Zahl (s. GetBits für alle).
var Die zu überprüfende Zahl.
bit Der Index für das abzufragende Bit (1 bis 32, für 2er Potenzen 0-31).
returns Der Bitwert:
0 (ungesetzt)
1 (gesetzt)


GetBits(var)
Ermittelt alle Bitwerte einer angegebenen Zahl als Array (s. GetBit für Einzelbit).
Info: Der Arrayindex ist NICHT die 2er Potenz des Bits, diese ist Index-1.

var Die zu überprüfende Zahl.
returns Die einzelnen Bitwerte (0 oder 1) als 32-element. Array (ab 1).
example GetBits(6) ' "1=0;2=1;3=1;4=0;.."
Unteres Halbbyte/Nibble: 0+2^1+2^2+0 = 6


Not(var)
Bitweise Not (~, Nicht) Umkehrung für eine Zahl (Not(n) = -n-1).
~0 = 1
~1 = 0

var Die umzukehrende Zahl.
returns Die Not Zahl (alle Bits umgekehrt).
example Not 1100 (12) =
..110011 (-13)

LDBits.Not(0) 'gibt -1 (alle Bits gesetzt)


OrBits(var1,var2)
Bitweise Or (|, Oder) Verkettung zweier Zahlen.
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1

var1 Die erste Zahl.
var2 Die zweite Zahl.
returns Die Or Zahl (Bit gesetzt, wenn bereits ein Eingabebit gesetzt).
example 1100 (12) Or
1010 (10) =
1110 (14)

LDBits.OrBits(15, 255) '255
(0F | FF = FF, 00001111 | 11111111 = 11111111)


SetBit(var,bit)
Setzt ein Bit in einer Zahl (Setzen auf 1).
var Die Zahl in der das Bit gesetzt wird.
bit Der Index für das zu setzende Bit (1 bis 32).
returns Die geänderte Zahl mit neu gesetztem Bit.

UnsetBit(var,bit)
Entfernt ein Bit in einer Zahl (Setzen auf 0).
var Die Zahl von der das Bit entfernt wird.
bit Der Index für das zu entfernende Bit (1 bis 32).
returns Die geänderte Zahl nach entferntem Bit.

XOrBits(var1,var2)
Bitweise XOr (^, eXklusivOder) Verkettung zweier Zahlen.
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

var1 Die erste Zahl.
var2 Die zweite Zahl.
returns Die XOr Zahl (Bit gesetzt, wenn nur ein Eingabebit gesetzt).
example 1100 (12) XOr
1010 (10) =
0110 (6)

LDBits.XOrBits(15, 255) '240
(0F ^ FF = F0, 00001111 ^ 11111111 = 11110000)

'Komplementärfarbe zu col
compl = LDBits.XOrBits(col, "#FFFFFF")
'2x Anwendung -> Identität
LDBits.XOrBits(LDBits.XOrBits(var1,var2),var2) 'var1


LDBlueTooth
BlueTooth Steuerung.
Die erweiterten Features beziehen sich auf Nicht-Dateiübertragung (effektiv Schreiben eines Gerätetreibers).
Zur Kommunikation mit einem Bluetooth USB-Stick muß das externe Bluetooth Gerät angeschlossen und auf 'sichtbar' gesetzt sein, bevor das SB-Programm gestartet wird.

example other-samples\LDBlueTooth.sb

Connect DataAvailable Device
Encode GetDevices GetEncodings
GetServices Initialise InRange
LastDevice LastError OutOfRange
ReceiveData ReceiveFile SendData
SendFile Service

Connect()
Verbindet ein externes Gerät und Dienst mit dem Bluetooth USB-Stick (Erweitertes Feature).
Zuerst muß die Initialisierung erfolgen, dann Setzen des Gerätes, des Dienstes und der Codierung.

returns "True" bei Erfolg, sonst "False".

DataAvailable
Ermittelt die Anzahl empfangener Datenbytes in der Warteschlange zum Lesen.
Dies kann in einem Timer angewandt werden zur Überprüfung auf empfangene Daten.


Device
Ermittelt oder setzt das aktuelle Bluetooth Gerät.

Encode
Ermittelt oder setzt die aktuelle Bluetooth Datencodierung (Erweitertes Feature).

GetDevices()
Ermittelt eine Liste von erkannten Bluetooth Geräten.
returns Ein Array von Geräten bei Erfolg, sonst "".

GetEncodings()
Ermittelt eine Liste verfügbarer Codierungen (Erweitertes Feature).
returns Ein Array von Codierungen bei Erfolg, sonst "".

GetServices()
Ermittelt eine Liste verfügbarer Dienstprotokolle (Erweitertes Feature).
returns Ein Array von Diensten bei Erfolg, sonst "".

Initialise()
Initialisiert einen Bluetooth USB-Stick und erkennt sichtbare externe Geräte.
Sobald Geräte aus/in Reichweite gelangen, wird die Liste aktualisiert.

returns "True" oder "False", für Erfolg oder Fehler bei Konfiguration einer Bluetooth Schnittstelle.

InRange
Ereignisaufruf wenn ein Bluetooth Gerät in Reichweite gelangt (Scheint unerwartet zu feuern).

LastDevice
Ermittelt das letzte Gerät in- oder außerhalb der Reichweite.

LastError
Ermittelt die letzte Fehlermeldung. Fehlermeldungen können für verschiedene Fehlfunktionen gesetzt sein.

OutOfRange
Ereignisaufruf wenn ein Bluetooth Gerät außer Reichweite gelangt (Scheint nicht wie beabsichtigt zu funktionieren).

ReceiveData()
Empfängt (holt) Daten von einem Bluetooth Gerät (Erweitertes Feature).
Das Gerät muß initialisiert und verbunden sein. Die Codierung sollte ebenfalls gesetzt sein.

returns Ein String empfangener Zeichen bei Erfolg, sonst "".

ReceiveFile(fileName)
Empfängt (holt) eine Datei von einem angeschlossenen externen Bluetooth Gerät.
Zuerst muß Initialisierung erfolgen, dann Setzen des Gerätes.

fileName Der Ort zum Speichern der empfangenen Datei.
returns Eine Ergebnis Statusmeldung, "True" oder "False".

SendData(data)
Sendet Daten an ein Bluetooth Gerät (Erweitertes Feature).
Das Gerät muß initialisiert und verbunden sein. Die Codierung sollte ebenfalls gesetzt sein.

data Ein String zu sendender Zeichen.
returns Eine Ergebnis Statusmeldung, "True" oder "False".

SendFile(fileName)
Sendet eine Datei an ein angeschlossenes externes Bluetooth Gerät.
Zuerst muß Initialisierung erfolgen, dann Setzen des Gerätes.

fileName Die zu sendende Datei.
returns Eine Ergebnis Statusmeldung, "True" oder "False".

Service
Ermittelt oder setzt den aktuellen Bluetooth Dienst (Erweitertes Feature).

LDCall
(Rekursiver) Aufruf von Funktionen (Subs auch als Variablen) mit 1-5 optionalen Argumenten, mit/ohne Rückgabewert(e), bzw. asynchron von einer beliebigen Extension oder vorkompilierten SB Exe.
s. LDCall.Function für weitere Infos.

example other-samples\LDCall.sb, LDCallAsync.sb

args = ""
a = 3
b = 4
sum = LDCall.Function2("Addition", a,b)

Sub Addition
return = args[1] + args[2]
EndSub


CallAsync CallComplete CallInclude
Compile Function Function2
Function3 Function4 Function5
Include LastCall LastResult

CallAsync(dll,extension,obj,method,arguments)
Asynchroner Aufruf einer Extension Methode oder Programm Sub.
Sind 'dll', 'extension', 'obj' und 'arguments' alle "", dann kann 'method' eine Sub im SB Programm sein.

dll Die Extension Dll (zB. "LitDev.dll" oder "SmallBasicLibrary.dll") oder "".
extension Der Namespace der Extension (gewöhnlich wie Dll Name, zB. "LitDev" oder "Microsoft.SmallBasic.Library" in SmallBasicLibrary.dll) oder "".
obj Der Name des Extension Objekts (zB. "LDCall") oder "".
method Der Name der Extension Methode (zB. "Function") oder Name einer Sub im Programm (s.o., LDCall.Include).
arguments Ein Array mit Argumenten zur Übergabe oder "" für ohne. Ein einzelnes Argument muß nicht als Array übergeben werden.
returns "PENDING" bei Erfolg, sonst eine Fehlermeldung.
example other-samples\LDCallAsync.sb

CallComplete
Ereignisaufruf wenn der Aufruf einer asynchronen Methoden-Sub beendet ist.

CallInclude(include,method)
Aufruf einer Methode (Sub) in einer eingebundenen vorkompilierten Assembly (s. LDCall.Include).
Zur Argumentübergabe globale Variablennamen (Rückgabewerte) in beiden Programmen verwenden.

include Der Name der eingebundenen Assembly (Rückgabewert von 'Include' Methode, Intern: Include#).
method Der Name der aufzurufenden Sub Methode (in der eingebundenen Exe) in "".
returns "SUCCESS" bei Erfolg, sonst "FAILED".

Compile(path)
Kompiliert eine angegebene SB Quelldatei in ihrem Elternordner (incl. Kontrolle auf Existenz und Änderungszeit der .exe).
Voraussetzung ist, daß SmallBasic im STANDARDPFAD für das aktuelle Betriebssystem installiert ist.

path Der volle Pfad für die zu kompilierende SB Quelldatei (.sb).
returns Der Pfad der kompilierten Programmdatei (.exe) bei Erfolg, sonst "" (zB. .exe Änderungszeit >1 sec).

Function(funcName,arg1)
Aufruf einer SB Sub als Funktion mit 1 Übergabeargument, oder Sub als Variablenname.
Alle Variablen (Rückgabewerte) bleiben global. Eingabeargument(e) wird(en) in Array 'args' kopiert.
Ein (optionales) Ergebnis wird innerhalb der Sub in Variable (od. Array) 'return' übergeben.
Die Variable (Array) 'args' muß bei Programmstart mit "" belegt werden.
Eingabeparameter bleibt(en) unverändert, während 'args' und 'return' nach Rückgabe auf "" gesetzt werden.
Achtung: NICHT schachteln (2. LDCall aus LDCall-Sub), wegen überkreuzender Rückgabewerte.

funcName Der Name der aufzurufenden SB Sub in "" (auch als Variable).
arg1 Der Eingabewert (oder Array).
returns Ein Ergebnis der Funktion wird als optionale Variable "return" oder Fehlermeldung zurückgegeben.
example 'Aufruf der Subs Func1 bis Func3:
For n = 1 to 3
LDCall.Function("Func"+n, "")
EndFor

Sub Func1
...
EndSub

Sub fUNC2
...
EndSub
'usw.


Function2(funcName,arg1,arg2)
Aufruf einer SB Sub als Funktion mit 2 Argumenten zur Übergabe.
s. LDCall.Function für weitere Infos.

funcName Der Name der aufzurufenden SB Sub in "".
arg1 1. Eingabewert (oder Array).
arg2 2. Eingabewert (oder Array).
returns Ein Ergebnis der Funktion wird als Variable "return" oder Fehlermeldung zurückgegeben.
example other-samples\LDCall.sb

'Wert von 1D Rückgabearray
args = ""
arr = LDUtilities.ColourList()
val = LDCall.Function2("Val1D", arr,i)
'Einzelfarbe arr[i]

Sub Val1D
return = args[1][args[2]]
EndSub


Function3(funcName,arg1,arg2,arg3)
Aufruf einer SB Sub als Funktion mit 3 Argumenten zur Übergabe.
s. LDCall.Function für weitere Infos.

funcName Der Name der aufzurufenden SB Sub in "".
arg1 1. Eingabewert (oder Array).
arg2 2. Eingabewert (oder Array).
arg3 3. Eingabewert (oder Array).
returns Ein Ergebnis der Funktion wird als Variable "return" oder Fehlermeldung zurückgegeben.
example other-samples\LDCall.sb

'Wert von 2D Rückgabearray
args = ""
arr = LDFile.ReadCSV(csv)
val = LDCall.Function3("Val2D", arr,y,x)
'Zellenwert in Zeile y, Spalte x

Sub Val2D
return = args[1][args[2]][args[3]]
EndSub


Function4(funcName,arg1,arg2,arg3,arg4)
Aufruf einer SB Sub als Funktion mit 4 Argumenten zur Übergabe.
s. LDCall.Function für weitere Infos.

funcName Der Name der aufzurufenden SB Sub in "".
arg1 1. Eingabewert (oder Array).
arg2 2. Eingabewert (oder Array).
arg3 3. Eingabewert (oder Array).
arg4 4. Eingabewert (oder Array).
returns Ein Ergebnis der Funktion wird als Variable "return" oder Fehlermeldung zurückgegeben.
example other-samples\LDCall.sb

Function5(funcName,arg1,arg2,arg3,arg4,arg5)
Aufruf einer SB Sub als Funktion mit 5 Argumenten zur Übergabe.
s. LDCall.Function für weitere Infos.

funcName Der Name der aufzurufenden SB Sub in "".
arg1 1. Eingabewert (oder Array).
arg2 2. Eingabewert (oder Array).
arg3 3. Eingabewert (oder Array).
arg4 4. Eingabewert (oder Array).
arg5 5. Eingabewert (oder Array).
returns Ein Ergebnis der Funktion wird als Variable "return" oder Fehlermeldung zurückgegeben.
example other-samples\LDCall.sb

Include(path)
Lädt/Referenziert ein anderes, zuvor kompiliertes SB Programm(.exe) zur Verwendung einer darin enthaltenden Sub(routine) Methode (Intern: Include#).
Zum Methodenaufruf s. CallInclude.

path Der volle Dateipfad der untergeordneten, kompilierten SBAnwendung(.exe) zur Verwendung als Assembly.
Dateierweiterung .exe kann beliebig umbenannt sein (zB. dll, sbsub, incl).

returns Der Name der eingebundenen Assembly bei Erfolg, sonst "" (und Fehlermeldung).
example 'Test 'IsSBExe'? (_SmallBasicProgram Typ):
incl = LDCall.Include(pfad)
bIsSBExe = LDLogic.NE(incl,"") 'True|False


LastCall
Ermittelt den Name des letzen asynchronen Aufrufs (als "Namespace.Objekt.Methode(arg)" bei Methode, sonst "SubName()").

LastResult
Ermittelt den Rückgabewert des letzten asynchronen Aufrufs, sonst "".

LDChart
Darstellung von %-Daten als Kreis-/Tortendiagramm, Zeilen- oder Spalten-Histogramm.
GW.BackgroundColor/.PenColor für Hintergrund-/Textfarbe.
Segmentfolge im Uhrzeigersinn ab 12h, oben -> unten bzw. li -> re.

example other-samples\LDChart.sb
http://blogs.msdn.microsoft.com/smallbasic/2014/11/15/small-basic-chart-extension/


AddChart ColourMap DoughnutFraction
Highlight HighlightDuration LastChart
LastLabel Legend Properties
SetData Update ValueClicked

AddChart(width,height)
Fügt ein Kreisdiagramm im GraphicsWindow hinzu (Intern: Control#).
Akt. GraphicsWindow.BackgroundColor für Hintergrund.
Akt. GraphicsWindow.PenColor und -.Font.. Eigenschaften für Beschriftung, zB:
GraphicsWindow.FontName = "Segoe UI"
GraphicsWindow.FontBold = ""

width Die Breite des Chart Steuerelements.
height Die Höhe des Chart Steuerelements.
returns Der Name der Chart Shape.

ColourMap(chartName,hue,saturation,lightness,hsl,start,end,centralColour)
Setzt eine optionale Farbgebung für eine existierende Chart.
chartName Der Name der Chart.
hue Der Farbton (0 bis 360 [Grad], Standard: 0 für Rot).
saturation Die Farbsättigung (Intensität [0,1], Standard: 0.5).
lightness Die rel. Helligkeit ([0,1], Standard: 0.5).
hsl Der Parameter für Farbabstufung der verschiedenen Segmente:
"Hue" Farbton (Standard)
"Saturation" steigende Farbintensität
"Lightness" steigende Helligkeit

start Der Startwert für Farbvariation ([0,1], Standard: 0).
end Der Endwert für Farbvariation ([0,1], Standard: 1).
centralColour Optionale Zentralfarbe für radialen Farbverlauf (Standard: "").

DoughnutFraction
Ermittelt oder setzt den radialen Faktor für Sektorausschub beim 'Doughnut'-Chart Stil (Standard: 0.7).

Highlight(chartName,label,fraction)
Hebt ein Chartsegment animiert hervor/zurück (Sektor wird aus-/eingerückt).
chartName Der Name der Chart.
label Die Bezeichnung (Datenindex) für das Segment.
fraction Radialer Faktor für die Höhe des Sektorausschubs (Standard: 0 für zurücksetzen, 1 für Chartradius).

HighlightDuration
Ermittelt oder setzt die Animationsdauer [ms] für die Hervorhebung/Ausrückung (Standard: 100).

LastChart
Ermittelt den Name des zuletzt geklickten Chart Steuerelements.

LastLabel
Ermittelt den Segmentname (Datenindex) für das zuletzt geklickte Chartsegment.

Legend(chartName,scale,legend,background)
Setzt optionale Eigenschaften für Legende (Datenindizes) und Prozentsatz (Datenwerte) zu den Sektoren.
chartName Der Name der Chart.
scale Der Skalierungsfaktor für Legende und Prozentsatz im Sektor (Standard: 1).
legend Der Stil für Legende/Prozentsatz:
"Legend" nur Legendeblock rechts
"LegendPercent" Legendeblock rechts UND Prozentsatz im Sektor (Standard)
"None" ohne Legende/Prozent
"Overlay" Legende-Name (Datenindex) im Sektor
"Percent" Prozentsatz (Datenwert) im Sektor

background Farbiger Texthintergrund für Legende/Beschriftung? "True" oder "False" (Standard).

Properties(chartName,style,scale)
Setzt optionale Darstellungs-Eigenschaften für eine existierende Chart.
chartName Der Name der Chart.
style Der Chartstil (Standard: mit Legende):
"Bar" Zeilen-Histogramm
"Bubble" Einzelkreise
"Column" Spalten-Histogramm
"Doughnut" Kreisring
"Pie" Vollkreis (Standard)

scale Der Skalierungsfaktor für die gesamte Chart (Standard: 1, füllend ev. mit Legende).

SetData(chartName,data)
Setzt die Daten für eine existierende Chart (>=2 Datenwerte).
chartName Der Name der Chart.
data Die zu setzenden Daten als 1D Array, indexiert durch Sektorname (Legende-Label), zB.
data["Fred"] = 25
data["Mary"] = 15
data["John"] = 40


Update(chartName)
Neuzeichnen (aktualisieren) einer Chart.
Setzt alle hervorgehoben Segmente unmittelbar zurück oder aktualisiert alle geänderten Chart Eigenschaften.

chartName Der Name der Chart.

ValueClicked
Ereignisaufruf bei Anklicken eines Chartsegments.

LDClient
Server- und Klient Kommunikation zwischen Computern.
Für Server und Klient sind separate Programme erforderlich. Diese Klasse ist für den Klient (Intern: Client#). S.a. LDServer.

example client-server\*.sb

CheckServer CloseDelay Connect
Disconnect Disconnected GetClients
LastServerMessage Name SendMessage
ServerMessage UpdateDynamic UpdateStatic

CheckServer(server)
Testet ob ein Server für eine Verbindung zur Verfügung steht.
Diese Methode nicht mit hoher Frequenz (> 1x/sec) aufrufen.

server Die Server Verbindung als "IP:Port" (zB. "192.168.1.60:100").
Dieser Wert wird von von LDServer.Start zurückgegeben.

returns "AVAILABLE" oder "UNAVAILABLE".

CloseDelay
Ermittelt oder setzt eine Verzögerung [ms] (Standard: 100) bei Trennung, um das Senden einer Nachricht zu erlauben, bevor die Verbindung getrennt wird (Disconnect).
Diese Verzögerung sollte auch für den Server (LDServer.CloseDelay) gesetzt werden.


Connect(server,auto)
Verbindet zu einem Server.
server Die Server Verbindung als "IP:Port" (zB. "192.168.1.60:100").
Dieser Wert wird von 'LDServer.Start' zurückgegeben.

auto Automatiche Nachrichtenübergabe? "True" oder "False".
Bei (empfohlener) Verwendung werden alle Klientdaten via Server an alle anderen Klienten übergeben
und es ist keine weitere Verarbeitung von Senden- und Empfangen Ereignissen erforderlich.
Die Daten werden in Arrays (indexiert durch Klientname) aktualisiert, die von den 'Update..' Methoden zurückgegeben werden.
Die 'auto' Option sollte für Server und alle Klienten gleich sein.

returns "SUCCESS", "FAILED" oder "ALREADY_CONNECTED".

Disconnect()
Trennt den Klient vom Server ab.
returns "SUCCESS", "FAILED" oder "NOT_CONNECTED".

Disconnected
Ereignisaufruf wenn der Server diesen Klient abtrennt.

GetClients()
Ermittelt eine Liste aller aktuell verbundenen Klienten.
returns Ein Array mit aktuellen Klientnamen oder "" für 'keiner'.

LastServerMessage
Ermittelt die letzte Server Nachricht.

Name
Ermittelt oder setzt den eigenen Klientname.

SendMessage(message)
Sendet eine Nachricht an den Server.
message Die Nachricht. Kann eine beliebige Variable (auch Array) sein.
returns "SUCCESS", "FAILED" oder "NOT_CONNECTED".

ServerMessage
Ereignisaufruf wenn der Server eine Nachricht an diesen Klient sendet.

UpdateDynamic(data)
Aktualisiert Klientdaten bei Verwendung der 'auto' Nachrichtenübergabe (LDClient.Connect).
Verwendung für kleinere Anzahl von häufig wechselnden Daten (zB. Sprite Koordinaten).
Diese Methode verwendet klientseitg zuletzt aktualisierte Daten und ist dafür schnell.

data Die Daten dieses Klienten zur Übergabe an andere Klienten.
returns Ein Array (indexiert durch Klientname) mit aktuellen Daten für jeden existierenden Klient.

UpdateStatic(data)
Aktualisiert Klientdaten bei Verwendung der 'auto' Nachrichtenübergabe.
Verwendung für größere Anzahl von selten wechselnden Daten (zB. Klient Konfiguration).
Diese Methode verwendet serverseitig gespeicherte und abgerufene Daten.
Kann langsamer als UpdateDynamic sein, da auf serverseitig abgerufene Daten gewartet wird,
um sicherzustellen, daß alle Klientdaten voll synchronisiert werden.

data Die Daten dieses Klienten zur Übergabe an andere Klienten.
returns Ein Array (indexiert durch Klientname) mit aktuellen Daten für jeden existierenden Klient.

LDClipboard
Methoden zur Verwendung der System Zwischenablage.
example other-samples\LDClipboard.sb

Clear ClipboardChanged GetFileList
GetImage GetText ImageTransparency
SetFileList SetImage SetText

Clear()
Löscht den Inhalt der Zwischenablage. 'ClipboardChanged' Event wird immer ausgelöst.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

ClipboardChanged
Ereignisaufruf bei Statusänderung in der Zwischenablage.

GetFileList()
Ermittelt alle Pfade von Datei-/Ordnerobjekt(en) in der Zwischenablage als Array.
returns Ein Array mit Datei-/Ordnerpfad(en) oder "FAILED".

GetImage()
Lädt ein Bild von der Zwischenablage in ImageList (Intern: ImageList#+1).
returns Der Name des neuen Bildes in ImageList oder "FAILED".

GetText()
Ermittelt Text aus der Zwischenablage.
returns Der Text aus der Zwischenablage oder "FAILED".

ImageTransparency
Ermittelt oder setzt die Verwendung eines erweiterten Bildformats für 'SetImage', welches Transparenz unterstützt? "True" (Standard) oder "False".
Dieses Bildformat wird ev. von manchen Anwendungen (zB. ClipboardViewer) beim Einfügen nicht erkannt.
Ist ev. vor Aufruf von LDClipboard.SetImage zu setzen.


SetFileList(fileList)
Setzt mittels einer Liste von Pfaden deren Datei-/Ordnerobjekt(e) in die Zwischenablage.
fileList Ein einzelner Pfad oder Array mit vollen Datei-/Ordnerpfaden.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

SetImage(imageName)
Setzt ein ImageList Bild in die Zwischenablage (bzgl. Transparenz s. 'ImageTransparency').
'ClipboardChanged' Event wird immer ausgelöst.

imageName Der Name des ImageList Bildes.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

SetText(text)
Setzt einen angegebenen Text in die Zwischenablage. 'ClipboardChanged' Event wird immer ausgelöst.
text Der in die Zwischenablage zu kopierende Text.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

LDColours
Standard SB-Farben und farbbezogene Methoden.
(LDColours.)Farbname steht für HexWert #(AA)RRGGBB einer SB-Farbe (bzw. #00FFFFFF für Transparent).
Farbeingabe als (LDColours.)Farbname oder "#(AA)RRGGBB" (s. LDDialogs.Colour, LDUtilities.ColourList) für 141 CSS3 Farben (incl. Transparent).
#RGB (=> #RRGGBB = #FFRRGGBB) für 216 Websichere Farben.

example 3D-samples\LD3DMazeGame.sb
http://msdn.microsoft.com/library/System.Windows.Media.Colors.aspx
http://i.msdn.microsoft.com/dynimg/IC24340.png
http://de.wikipedia.org/wiki/Webfarbe
http://mkweb.bcgsc.ca/colornames/


AliceBlue AntiqueWhite Aqua
Aquamarine Azure Beige
Bisque Black BlanchedAlmond
Blue BlueViolet Brown
BurlyWood CadetBlue Chartreuse
Chocolate Coral CornflowerBlue
Cornsilk Crimson Cyan
DarkBlue DarkCyan DarkGoldenrod
DarkGray DarkGreen DarkKhaki
DarkMagenta DarkOliveGreen DarkOrange
DarkOrchid DarkRed DarkSalmon
DarkSeaGreen DarkSlateBlue DarkSlateGray
DarkTurquoise DarkViolet DeepPink
DeepSkyBlue DimGray DodgerBlue
Firebrick FloralWhite ForestGreen
Fuchsia Gainsboro GetBlue
GetGreen GetHue GetLightness
GetOpacity GetRed GetSaturation
GhostWhite Gold Goldenrod
Gray Green GreenYellow
Honeydew HotPink HSLtoRGB
IndianRed Indigo Ivory
Khaki Lavender LavenderBlush
LawnGreen LemonChiffon LightBlue
LightCoral LightCyan LightGoldenrodYellow
LightGray LightGreen LightPink
LightSalmon LightSeaGreen LightSkyBlue
LightSlateGray LightSteelBlue LightYellow
Lime LimeGreen Linen
Magenta Maroon MediumAquamarine
MediumBlue MediumOrchid MediumPurple
MediumSeaGreen MediumSlateBlue MediumSpringGreen
MediumTurquoise MediumVioletRed MidnightBlue
MintCream MistyRose Moccasin
NavajoWhite Navy OldLace
Olive OliveDrab Orange
OrangeRed Orchid PaleGoldenrod
PaleGreen PaleTurquoise PaleVioletRed
PapayaWhip PeachPuff Peru
Pink Plum PowderBlue
Purple Red RosyBrown
RoyalBlue SaddleBrown Salmon
SandyBrown SeaGreen SeaShell
SetOpacity Sienna Silver
SkyBlue SlateBlue SlateGray
Snow SpringGreen SteelBlue
Tan Teal Thistle
Tomato Transparent Turquoise
Violet Wheat White
WhiteSmoke Yellow YellowGreen

AliceBlue
Eis-/Weißblau
#F0F8FF
RGB: 240, 248, 255
HSL: 208, 1, 0.97
HSV: 208, 0.06, 1


AntiqueWhite
Antikweiß
#FAEBD7
RGB: 250, 235, 215
HSL: 34.29, 0.78, 0.91
HSV: 34.29, 0.14, 0.98


Aqua
Türkis (HTML4 Farbe, Websafe, s. Cyan, 11=Cyan in TW)
#00FFFF
RGB: 0, 255, 255
HSL: 180, 1, 0.5
HSV: 180, 1, 1


Aquamarine
Aquamarin
#7FFFD4
RGB: 127, 255, 212
HSL: 159.84, 1, 0.75
HSV: 159.84, 0.5, 1


Azure
Azurblau
#F0FFFF
RGB: 240, 255, 255
HSL: 180, 1, 0.97
HSV: 180, 0.06, 1


Beige
Beige
#F5F5DC
RGB: 245, 245, 220
HSL: 60, 0.56, 0.91
HSV: 60, 0.1, 0.96


Bisque
Fischcreme
#FFE4C4
RGB: 255, 228, 196
HSL: 32.54, 1, 0.88
HSV: 32.54, 0.23, 1


Black
Schwarz (HTML4 Farbe, Websafe, 0=Black in TW)
#000000
RGB: 0, 0, 0
HSL: 0, 0, 0
HSV: 0, 0, 0


BlanchedAlmond
Blanchierte Mandel
#FFEBCD
RGB: 255, 235, 205
HSL: 36, 1, 0.9
HSV: 36, 0.2, 1


Blue
Blau (HTML4 Farbe, Websafe, 9=Blue in TW)
#0000FF
RGB: 0, 0, 255
HSL: 240, 1, 0.5
HSV: 240, 1, 1


BlueViolet
Blauviolett
#8A2BE2
RGB: 138, 43, 226
HSL: 271.15, 0.76, 0.53
HSV: 271.15, 0.81, 0.89


Brown
Braun
#A52A2A
RGB: 165, 42, 42
HSL: 0, 0.59, 0.41
HSV: 0, 0.75, 0.65


BurlyWood
Wurzelholz
#DEB887
RGB: 222, 184, 135
HSL: 33.79, 0.57, 0.7
HSV: 33.79, 0.39, 0.87


CadetBlue
Kadettenblau
#5F9EA0
RGB: 95, 158, 160
HSL: 181.85, 0.25, 0.5
HSV: 181.85, 0.41, 0.63


Chartreuse
Blass Apfelgrün, Kartause
#7FFF00
RGB: 127, 255, 0
HSL: 90.12, 1, 0.5
HSV: 90.12, 1, 1


Chocolate
Schokolade
#D2691E
RGB: 210, 105, 30
HSL: 25, 0.75, 0.47
HSV: 25, 0.86, 0.82


Coral
Koralle
#FF7F50
RGB: 255, 127, 80
HSL: 16.11, 1, 0.66
HSV: 16.11, 0.69, 1


CornflowerBlue
Kornblumenblau
#6495ED
RGB: 100, 149, 237
HSL: 218.54, 0.79, 0.66
HSV: 218.54, 0.58, 0.93


Cornsilk
Maisfaden
#FFF8DC
RGB: 255, 248, 220
HSL: 48, 1, 0.93
HSV: 48, 0.14, 1


Crimson
Karmesinrot
#DC143C
RGB: 220, 20, 60
HSL: 348, 0.83, 0.47
HSV: 348, 0.91, 0.86


Cyan
Cyan (HTML4 Farbe, Websafe, s. Aqua, 11=Cyan in TW)
#00FFFF
RGB: 0, 255, 255
HSL: 180, 1, 0.5
HSV: 180, 1, 1


DarkBlue
Dunkelblau
#00008B
RGB: 0, 0, 139
HSL: 240, 1, 0.27
HSV: 240, 1, 0.55


DarkCyan
Dunkelcyan
#008B8B
RGB: 0, 139, 139
HSL: 180, 1, 0.27
HSV: 180, 1, 0.55


DarkGoldenrod
Dunkel Goldrute
#B8860B
RGB: 184, 134, 11
HSL: 42.66, 0.89, 0.38
HSV: 42.66, 0.94, 0.72


DarkGray
Dunkelgrau (heller als Gray)
#A9A9A9
RGB: 169, 169, 169
HSL: 0, 0, 0.66
HSV: 0, 0, 0.66


DarkGreen
Dunkelgrün
#006400
RGB: 0, 100, 0
HSL: 120, 1, 0.2
HSV: 120, 1, 0.39


DarkKhaki
Dunkelkhaki
#BDB76B
RGB: 189, 183, 107
HSL: 55.61, 0.38, 0.58
HSV: 55.61, 0.43, 0.74


DarkMagenta
Dunkelmagenta
#8B008B
RGB: 139, 0, 139
HSL: 300, 1, 0.27
HSV: 300, 1, 0.55


DarkOliveGreen
Dunkelolivgrün
#556B2F
RGB: 85, 107, 47
HSL: 82, 0.39, 0.3
HSV: 82, 0.56, 0.42


DarkOrange
Dunkelorange
#FF8C00
RGB: 255, 140, 0
HSL: 32.94, 1, 0.5
HSV: 32.94, 1, 1


DarkOrchid
Dunkelorchidee
#9932CC
RGB: 153, 50, 204
HSL: 280.13, 0.61, 0.5
HSV: 280.13, 0.75, 0.8


DarkRed
Dunkelrot
#8B0000
RGB: 139, 0, 0
HSL: 0, 1, 0.27
HSV: 0, 1, 0.55


DarkSalmon
Dunkel Lachsrosa
#E9967A
RGB: 233, 150, 122
HSL: 15.14, 0.72, 0.7
HSV: 15.14, 0.48, 0.91


DarkSeaGreen
Dunkel Meergrün
#8FBC8B
RGB: 143, 188, 139
HSL: 115.1, 0.27, 0.64
HSV: 115.1, 0.26, 0.74


DarkSlateBlue
Dunkel Schieferblau
#483D8B
RGB: 72, 61, 139
HSL: 248.46, 0.39, 0.39
HSV: 248.46, 0.56, 0.55


DarkSlateGray
Dunkel Schiefergrau
#2F4F4F
RGB: 47, 79, 79
HSL: 180, 0.25, 0.25
HSV: 180, 0.41, 0.31


DarkTurquoise
Dunkeltürkis
#00CED1
RGB: 0, 206, 209
HSL: 180.86, 1, 0.41
HSV: 180.86, 1, 0.82


DarkViolet
Dunkelviolett
#9400D3
RGB: 148, 0, 211
HSL: 282.09, 1, 0.41
HSV: 282.09, 1, 0.83


DeepPink
Dunkel-/Tiefrosa
#FF1493
RGB: 255, 20, 147
HSL: 327.57, 1, 0.54
HSV: 327.57, 0.92, 1


DeepSkyBlue
Tiefhimmelblau
#00BFFF
RGB: 0, 191, 255
HSL: 195.06, 1, 0.5
HSV: 195.06, 1, 1


DimGray
Gedämpftes Grau
#696969
RGB: 105, 105, 105
HSL: 0, 0, 0.41
HSV: 0, 0, 0.41


DodgerBlue
Dodgerblau
#1E90FF
RGB: 30, 144, 255
HSL: 209.6, 1, 0.56
HSV: 209.6, 0.88, 1


Firebrick
Ziegelrot
#B22222
RGB: 178, 34, 34
HSL: 0, 0.68, 0.42
HSV: 0, 0.81, 0.7


FloralWhite
Blütenweiß
#FFFAF0
RGB (255, 250, 240)
HSL: 40, 1, 0.97
HSV: 40, 0.06, 1


ForestGreen
Waldgrün
#228B22
RGB: 34, 139, 34
HSL: 120, 0.61, 0.34
HSV: 120, 0.76, 0.55


Fuchsia
Fuchsie (HTML4 Farbe, Websafe, s. 13=Magenta in TW)
#FF00FF
RGB: 255, 0, 255
HSL: 300, 1, 0.5
HSV: 300, 1, 1


Gainsboro
Blassgrau
#DCDCDC
RGB: 220, 220, 220
HSL: 0, 0, 0.86
HSV: 0, 0, 0.86


GetBlue(colour)
Ermittelt den Blauanteil einer Farbe.
colour Farbe deren Blauanteil zu ermitteln ist, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Der Blauanteil (0 bis 255).

GetGreen(colour)
Ermittelt den Grünanteil einer Farbe.
colour Farbe deren Grünanteil zu ermitteln ist, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Der Grünanteil (0 bis 255).

GetHue(colour)
Ermittelt den Farbton (Hue) einer Farbe im HSL Farbraum (zB. "White","Transparent" ergibt 0).
colour Der Hex Farbwert, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Der Farbton [0,360[ [Grad], wobei 0=360 = Red.
example 'Hue [°] Farben:
0=360 Red
30 Orange (Red-Yellow)
60 Yellow
90 Chartreuse (Yellow-Green)
120 Lime (Green)
150 SpringGreen (Green-Cyan)
180 Cyan
210 Azure (Cyan-Blue)
240 Blue
270 Violet (Blue-Magenta)
300 Magenta
330 Rose (Magenta-Red)


GetLightness(colour)
Ermittelt die relative Helligkeit (Lightness) einer Farbe im HSL Farbraum (Normalwert: 0.5, zB. "White","Transparent" ergibt 1).
colour Der Hex Farbwert, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Die rel. Helligkeit [0,1] [%/100], wobei 0=Black, 1=White, mit L = (Max(R,G,B) + Min(R,G,B))/2/255.
example Hellwert (Value) im HSV Farbraum: V = Max(R,G,B)/255 = 2*L - Min(R,G,B)/255 [0,1].

GetOpacity(colour)
Ermittelt die Deckkraft (Alphawert) einer Farbe (zB. "Transparent" ergibt 0).
colour Farbe deren Deckkraft zu ermitteln ist, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Die Deckkraft der Farbe (0 bis 255). 0 ist völlig transparent (#00) und 255 ist völlig deckend (#FF).
example Farbdeckkraft [%] = GetOpacity * 100/255

GetRed(colour)
Ermittelt den Rotanteil einer Farbe.
colour Farbe deren Rotanteil zu ermitteln ist, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Der Rotanteil (0 bis 255).

GetSaturation(colour)
Ermittelt die Sättigung (Saturation) einer Farbe im HSL Farbraum (zB. "White","Transparent" ergibt 0).
colour Der Hex Farbwert, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
returns Die Farbsättigung [0,1] [%/100], wobei 0=Gray, 1=hell.

GhostWhite
Phantomweiß
#F8F8FF
RGB: 248, 248, 255
HSL: 240, 1, 0.99
HSV: 240, 0.03, 1


Gold
Gold
#FFD700
RGB: 255, 215, 0
HSL: 50.59, 1, 0.5
HSV: 50.59, 1, 1


Goldenrod
Goldrute, Ocker
#DAA520
RGB: 218, 165, 32
HSL: 42.9, 0.74, 0.49
HSV: 42.9, 0.85, 0.85


Gray
Grau (HTML4 Farbe, 8=DarkGray in TW)
#808080
RGB: 128, 128, 128
HSL: 0, 0, 0.5
HSV: 0, 0, 0.5


Green
Grün (HTML4 Farbe, 2=DarkGreen in TW)
#008000
RGB: 0, 128, 0
HSL: 120, 1, 0.25
HSV: 120, 1, 0.5


GreenYellow
Grüngelb
#ADFF2F
RGB: 173, 255, 47
HSL: 83.65, 1, 0.59
HSV: 83.65, 0.82, 1


Honeydew
Honigtau
#F0FFF0
RGB: 240, 255, 240
HSL: 120, 1, 0.97
HSV: 120, 0.06, 1


HotPink
Warmrosa, Zyklam
#FF69B4
RGB: 255, 105, 180
HSL: 330, 1, 0.71
HSV: 330, 0.59, 1


HSLtoRGB(h,s,l)
Konvertiert HSL Farbwerte aus Farbton, Sättigung, relative Helligkeit (Hue, Saturation, Lightness = HSL) zu üblichen Rot, Grün, Blau Werten (RGB), wie in SB verwendet.
h Farbton / Hue (0 bis <360 [Grad], mit 0 = 360 = Red). Automatisch begrenzt auf [0,360[.
s Sättigung / Saturation (0 bis 1, Gray bis satt). Automatisch begrenzt auf [0,1], zB. 1.
l Rel. Helligkeit / Lightness (0 bis 1, Black bis White). Automatisch begrenzt auf [0,1], zB. 0.5.
returns Die RGB Farbe als #RRGGBB HexWert.
example http://de.wikipedia.org/wiki/HSV-Farbraum

IndianRed
Indischrot
#CD5C5C
RGB: 205, 92, 92
HSL: 0, 0.53, 0.58
HSV: 0, 0.55, 0.8


Indigo
Indigoblau
#4B0082
RGB: 75, 0, 130
HSL: 274.62, 1, 0.25
HSV: 274.62, 1, 0.51


Ivory
Elfenbein
#FFFFF0
RGB: 255, 255, 240
HSL: 60, 1, 0.97
HSV: 60, 0.06, 1


Khaki
Khaki
#F0E68C
RGB: 240, 230, 140
HSL: 54, 0.77, 0.75
HSV: 54, 0.42, 0.94


Lavender
Lavendel
#E6E6FA
RGB: 230, 230, 250
HSL: 240, 0.67, 0.94
HSV: 240, 0.08, 0.98


LavenderBlush
Lavendelröte
#FFF0F5
RGB: 255, 240, 245
HSL: 340, 1, 0.97
HSV: 340, 0.06, 1


LawnGreen
Rasengrün
#7CFC00
RGB: 124, 252, 0
HSL: 90.48, 1, 0.49
HSV: 90.48, 1, 0.99


LemonChiffon
Zitronenchiffon
#FFFACD
RGB: 255, 250, 205
HSL: 54, 1, 0.9
HSV: 54, 0.2, 1


LightBlue
Hellblau
#ADD8E6
RGB: 173, 216, 230
HSL: 194.74, 0.53, 0.79
HSV: 194.74, 0.25, 0.9


LightCoral
Hellkoralle
#F08080
RGB: 240, 128, 128
HSL: 0, 0.79, 0.72
HSV: 0, 0.47, 0.94


LightCyan
Hellcyan
#E0FFFF
RGB: 224, 255, 255
HSL: 180, 1, 0.94
HSV: 180, 0.12, 1


LightGoldenrodYellow
Hell Goldrutengelb
#FAFAD2
RGB: 250, 250, 210
HSL: 60, 0.8, 0.9
HSV: 60, 0.16, 0.98


LightGray
Hellgrau
#D3D3D3
RGB: 211, 211, 211
HSL: 0, 0, 0.83
HSV: 0, 0, 0.83


LightGreen
Hellgrün
#90EE90
RGB: 144, 238, 144
HSL: 120, 0.73, 0.75
HSV: 120, 0.39, 0.93


LightPink
Hellrosa (dunkler als Pink)
#FFB6C1
RGB: 255, 182, 193
HSL: 350.96, 1, 0.86
HSV: 350.96, 0.29, 1


LightSalmon
Hell Lachs
#FFA07A
RGB: 255, 160, 122
HSL: 17.14, 1, 0.74
HSV: 17.14, 0.52, 1


LightSeaGreen
Hell Meergrün
#20B2AA
RGB: 32, 178, 170
HSL: 176.71, 0.7, 0.41
HSV: 176.71, 0.82, 0.7


LightSkyBlue
Hell Himmelblau
#87CEFA
RGB: 135, 206, 250
HSL: 202.96, 0.92, 0.75
HSV: 202.96, 0.46, 0.98


LightSlateGray
Hell Schiefergrau
#778899
RGB: 119, 136, 153
HSL: 210, 0.14, 0.53
HSV: 210, 0.22, 0.6


LightSteelBlue
Hell Stahlblau
#B0C4DE
RGB: 176, 196, 222
HSL: 213.91, 0.41, 0.78
HSV: 213.91, 0.21, 0.87


LightYellow
Hellgelb
#FFFFE0
RGB: 255, 255, 224
HSL: 60, 1, 0.94
HSV: 60, 0.12, 1


Lime
Limette (HTML4 Farbe, Websafe, 10=Green in TW)
#00FF00
RGB: 0, 255, 0
HSL: 120, 1, 0.5
HSV: 120, 1, 1


LimeGreen
Limettengrün
#32CD32
RGB: 50, 205, 50
HSL: 120, 0.61, 0.5
HSV: 120, 0.76, 0.8


Linen
Leinen
#FAF0E6
RGB: 250, 240, 230
HSL: 30, 0.67, 0.94
HSV: 30, 0.08, 0.98


Magenta
Magenta (HTML4 Farbe, Websafe, s. Fuchsia, 13=Magenta in TW)
#FF00FF
RGB: 255, 0, 255
HSL: 300, 1, 0.5
HSV: 300, 1, 1


Maroon
Kastanienbraun (HTML4 Farbe, 4=DarkRed in TW)
#800000
RGB: 128, 0, 0
HSL: 0, 1, 0.25
HSV: 0, 1, 0.5


MediumAquamarine
Mittel Aquamarin
#66CDAA
RGB: 102, 205, 170
HSL: 159.61, 0.51, 0.6
HSV: 159.61, 0.5, 0.8


MediumBlue
Mittelblau
#0000CD
RGB: 0, 0, 205
HSL: 240, 1, 0.4
HSV: 240, 1, 0.8


MediumOrchid
Mittel Orchidee
#BA55D3
RGB: 186, 85, 211
HSL: 288.1, 0.59, 0.58
HSV: 288.1, 0.6, 0.83


MediumPurple
Mittel Purpurrot/Lila
#9370DB
RGB: 147, 112, 219
HSL: 259.63, 0.6, 0.65
HSV: 259.63, 0.49, 0.86


MediumSeaGreen
Mittel Meergrün
#3CB371
RGB: 60, 179, 113
HSL: 146.72, 0.5, 0.47
HSV: 146.72, 0.66, 0.7


MediumSlateBlue
Mittel Schieferblau
#7B68EE
RGB: 123, 104, 238
HSL: 248.51, 0.8, 0.67
HSV: 248.51, 0.56, 0.93


MediumSpringGreen
Mittel Frühlingsgrün
#00FA9A
RGB: 0, 250, 154
HSL: 156.96, 1, 0.49
HSV: 156.96, 1, 0.98


MediumTurquoise
Mitteltürkis
#48D1CC
RGB: 72, 209, 204
HSL: 177.81, 0.6, 0.55
HSV: 177.81, 0.66, 0.82


MediumVioletRed
Mittel Violettrot
#C71585
RGB: 199, 21, 133
HSL: 322.25, 0.81, 0.43
HSV: 322.25, 0.89, 0.78


MidnightBlue
Mitternachtsblau
#191970
RGB: 25, 25, 112
HSL: 240, 0.64, 0.27
HSV: 240, 0.78, 0.44


MintCream
Minzcreme
#F5FFFA
RGB: 245, 255, 250
HSL: 150, 1, 0.98
HSV: 150, 0.04, 1


MistyRose
Nebelrose
#FFE4E1
RGB: 255, 228, 225
HSL: 6, 1, 0.94
HSV: 6, 0.12, 1


Moccasin
Mokassin
#FFE4B5
RGB: 255, 228, 181
HSL: 38.11, 1, 0.85
HSV: 38.11, 0.29, 1


NavajoWhite
Navajoweiß
#FFDEAD
RGB: 255, 222, 173
HSL: 35.85, 1, 0.84
HSV: 35.85, 0.32, 1


Navy
Marineblau (HTML4 Farbe, 1=DarkBlue in TW)
#000080
RGB: 0, 0, 128
HSL: 240, 1, 0.25
HSV: 240, 1, 0.5


OldLace
Alte Spitze
#FDF5E6
RGB: 253, 245, 230
HSL: 39.13, 0.85, 0.95
HSV: 39.13, 0.09, 0.99


Olive
Oliv (HTML4 Farbe, 6=DarkYellow in TW)
#808000
RGB: 128, 128, 0
HSL: 60, 1, 0.25
HSV: 60, 1, 0.5


OliveDrab
Olivgrün, Braunoliv
#6B8E23
RGB: 107, 142, 35
HSL: 79.63, 0.6, 0.35
HSV: 79.63, 0.75, 0.56


Orange
Orange
#FFA500
RGB: 255, 165, 0
HSL: 38.82, 1, 0.5
HSV: 38.82, 1, 1


OrangeRed
Orchidee

Orchid
Orchidee
#DA70D6
RGB: 218, 112, 214
HSL: 302.26, 0.59, 0.65
HSV: 302.26, 0.49, 0.85


PaleGoldenrod
Blass Goldrute
#EEE8AA
RGB: 238, 232, 170
HSL: 54.71, 0.67, 0.8
HSV: 54.71, 0.29, 0.93


PaleGreen
Blassgrün
#98FB98
RGB: 152, 251, 152
HSL: 120, 0.93, 0.79
HSV: 120, 0.39, 0.98


PaleTurquoise
Blasstürkis
#AFEEEE
RGB: 175, 238, 238
HSL: 180, 0.65, 0.81
HSV: 180, 0.26, 0.93


PaleVioletRed
Blass Violettrot
#DB7093
RGB: 219, 112, 147
HSL: 340.37, 0.6, 0.65
HSV: 340.37, 0.49, 0.86


PapayaWhip
Papaya Sahne
#FFEFD5
RGB: 255, 239, 213
HSL: 37.14, 1, 0.92
HSV: 37.14, 0.16, 1


PeachPuff
Pfirsichhauch
#FFDAB9
RGB: 255, 218, 185
HSL: 28.29, 1, 0.86
HSV: 28.29, 0.27, 1


Peru
Dunkles Sandbraun
#CD853F
RGB: 205, 133, 63
HSL: 29.58, 0.59, 0.53
HSV: 29.58, 0.69, 0.8


Pink
Rosa
#FFC0CB
RGB: 255, 192, 203
HSL: 349.52, 1, 0.88
HSV: 349.52, 0.25, 1


Plum
Pflaumenblau
#DDA0DD
RGB: 221, 160, 221
HSL: 300, 0.47, 0.75
HSV: 300, 0.28, 0.87


PowderBlue
Pulverblau
#B0E0E6
RGB: 176, 224, 230
HSL: 186.67, 0.52, 0.8
HSV: 186.67, 0.23, 0.9


Purple
Purpurrot (Lila, HTML4 Farbe, 5=DarkMagenta in TW)
#800080
RGB: 128, 0, 128
HSL: 300, 1, 0.25
HSV: 300, 1, 0.5


Red
Rot (HTML4 Farbe, Websafe, 12=Red in TW)
#FF0000
RGB: 255, 0, 0
HSL: 0, 1, 0.5
HSV: 0, 1, 1


RosyBrown
Rosigbraun
#BC8F8F
RGB: 188, 143, 143
HSL: 0, 0.25, 0.65
HSV: 0, 0.24, 0.74


RoyalBlue
Königsblau
#4169E1
RGB: 65, 105, 225
HSL: 225, 0.73, 0.57
HSV: 225, 0.71, 0.88


SaddleBrown
Sattelbraun
#8B4513
RGB: 139, 69, 19
HSL: 25, 0.76, 0.31
HSV: 25, 0.86, 0.55


Salmon
Lachsrosa
#FA8072
RGB: 250, 128, 114
HSL: 6.18, 0.93, 0.71
HSV: 6.18, 0.54, 0.98


SandyBrown
Sandbraun
#F4A460
RGB: 244, 164, 96
HSL: 27.57, 0.87, 0.67
HSV: 27.57, 0.61, 0.96


SeaGreen
Meergrün
#2E8B57
RGB: 46, 139, 87
HSL: 146.45, 0.5, 0.36
HSV: 146.45, 0.67, 0.55


SeaShell
Muschelschale
#FFF5EE
RGB: 255, 245, 238
HSL: 24.71, 1, 0.97
HSV: 24.71, 0.07, 1


SetOpacity(colour,opacity)
Setzt die Deckkraft (Alphawert AA) einer Farbe, zB. Konvertierung von (LDColours.)Farbname zu #AARRGGBB.
colour Die zu ändernde Farbe, zB. (LDColours.)Farbname oder #(AA)RRGGBB.
opacity Deckkraft (0 bis 255). 0 ist völlig transparent (#00) und 255 ist völlig deckend (#FF).
returns Die geänderte Farbe als #AARRGGBB bei Erfolg, sonst Eingabefarbe.
example Farbdeckkraft [%] = opacity * 100/255

Sienna
Ockergelb
#A0522D
RGB: 160, 82, 45
HSL: 19.3, 0.56, 0.4
HSV: 19.3, 0.72, 0.63


Silver
Silber (HTML4 Farbe, 7=Gray in TW)
#C0C0C0
RGB: 192, 192, 192
HSL: 0, 0, 0.75
HSV: 0, 0, 0.75


SkyBlue
Himmelblau
#87CEEB
RGB: 135, 206, 235
HSL: 197.4, 0.71, 0.73
HSV: 197.4, 0.43, 0.92


SlateBlue
Schieferblau
#6A5ACD
RGB: 106, 90, 205
HSL: 248.35, 0.53, 0.58
HSV: 248.35, 0.56, 0.8


SlateGray
Schiefergrau
#708090
RGB: 112, 128, 144
HSL: 210, 0.13, 0.5
HSV: 210, 0.22, 0.56


Snow
Schneeweiß
#FFFAFA
RGB: 255, 250, 250
HSL: 0, 1, 0.99
HSV: 0, 0.02, 1


SpringGreen
Frühlingsgrün
#00FF7F
RGB: 0, 255, 127
HSL: 149.88, 1, 0.5
HSV: 149.88, 1, 1


SteelBlue
Stahlblau
#4682B4
RGB: 70, 130, 180
HSL: 207.27, 0.44, 0.49
HSV: 207.27, 0.61, 0.71


Tan
Hellbraun
#D2B48C
RGB: 210, 180, 140
HSL: 34.29, 0.44, 0.69
HSV: 34.29, 0.33, 0.82


Teal
Blaugrün (HTML4 Farbe, 3=DarkCyan in TW)
#008080
RGB: 0, 128, 128
HSL: 180, 1, 0.25
HSV: 180, 1, 0.5


Thistle
Distel
#D8BFD8
RGB: 216, 191, 216
HSL: 300, 0.24, 0.8
HSV: 300, 0.12, 0.85


Tomato
Tomate
#FF6347
RGB: 255, 99, 71
HSL: 9.13, 1, 0.64
HSV: 9.13, 0.72, 1


Transparent
Transparentes 'White' (nach Farbe entfernen, Radieren)
#00FFFFFF
ARGB: 0, 255, 255, 255
HSL: 0, 0, 1
HSV: 0, 0, 1

example #00000000 'Transp. 'Black' (nach Füllen mit #00000000)

Turquoise
Türkis
#40E0D0
RGB: 64, 224, 208
HSL: 174, 0.72, 0.56
HSV: 174, 0.71, 0.88


Violet
Violett, Veilchen
#EE82EE
RGB: 238, 130, 238
HSL: 300, 0.76, 0.72
HSV: 300, 0.45, 0.93


Wheat
Weizen
#F5DEB3
RGB: 245, 222, 179
HSL: 39.09, 0.77, 0.83
HSV: 39.09, 0.27, 0.96


White
Weiß (HTML4 Farbe, Websafe, 15=White in TW)
#FFFFFF
RGB: 255, 255, 255
HSL: 0, 0, 1
HSV: 0, 0, 1


WhiteSmoke
Weißer Rauch
#F5F5F5
RGB: 245, 245, 245
HSL: 0, 0, 0.96
HSV: 0, 0, 0.96


Yellow
Gelb (HTML4 Farbe, Websafe, 14=Yellow in TW)
#FFFF00
RGB: 255, 255, 0
HSL: 60, 1, 0.5
HSV: 60, 1, 1


YellowGreen
Gelbgrün
#9ACD32
RGB: 154, 205, 50
HSL: 79.74, 0.61, 0.5
HSV: 79.74, 0.76, 0.8


LDCommPort
Sendet und empfängt Daten über einen seriellen Port.
(Originalcode von Nino Carrillo)


AvailablePorts ClosePort DataReceived
ErrorReceived LastError LastPort
OpenPort RXAll RXByte
RXChar SetDataBits SetEncoding
SetHandshake SetParity SetStopBits
SwapPort TXByte TXString

AvailablePorts()
Listet alle verfügbaren seriellen Ports auf.
returns Ein Array mit den Namen aller verfügbaren seriellen Ports oder "".

ClosePort()
Schließt den geöffneten seriellen Port.
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

DataReceived
Ereignisaufruf wenn der serielle Port Daten empfängt.

ErrorReceived
Ereignisaufruf wenn der serielle Port einen Fehler empfängt.

LastError
Ermittelt den letzten Fehler, für den ein Fehlerereignis ausgelöst wurde.

LastPort
Ermittelt den letzten Portname, für den ein Ereignis ausgelöst wurde.

OpenPort(portName,baudRate)
Öffnet einen seriellen Port. Setzt 8 Datenbits voraus, keine Parität.
portName Der Identifikationsstring für den zu öffnenden Port als "COM#", zB. "COM3".
baudRate Die ganzzahlige Baud-Rate (zB. 9600).
returns "SUCCESS" bei Erfolg, sonst "NOSERIALPORTS", "PORTNOTFOUND" oder "CONNECTIONFAILED".

RXAll()
Liest alle vorhandenen Bytes aus dem Eingabepuffer des geöffneten Ports.
returns Ein String mit Bytes bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

RXByte()
Liest ein Byte vom geöffneten seriellen Port und gibt dessen Wert als Ganzzahl zurück.
returns Eine Ganzzahl (0 bis 255) bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

RXChar()
Liest ein Byte vom geöffneten seriellen Port und gibt dessen Wert als Unicode Zeichen zurück.
returns Das Unicode Zeichen bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

SetDataBits(dataBits)
Setzt Datenbits für den aktuellen Port. 5 bis 8 (Standard).
dataBits Die Datenbits: 5 bis 8 (Standard).
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

SetEncoding(encoding)
Setzt die Kodierung für Textumwandlung beim Senden und Empfangen für den aktuellen Port.
encoding Die Kodierung: "Ascii" (Standard), "Unicode", "UTF7", "UTF8", "UTF32" oder "BigEndianUnicode".
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

SetHandshake(handshake)
Schaltet die 'Hardware FlowControl' für den aktuellen Port an oder aus.
handshake "H" Hardware FlowControl
"HX" Hard- und Software FlowControl
"X" Software FlowControl
Sonstiges Zeichen zum Entfernen

returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

SetParity(parity)
Setzt die Parität für den aktuellen Port.
parity Die Parität: "None" (Standard), "Even", "Mark", "Odd" oder "Space".
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

SetStopBits(stopBits)
Setzt Stopbits für den aktuellen Port.
stopBits Die Stopbits: "One" (Standard), "None", "OnePointFive" oder "Two".
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

SwapPort(portName)
Vertauscht den aktuell aktiven Port mit einem zuvor geöffneten Port.
portName Ein bereits geöffneter Port als String.
returns "SUCCESS" bei Erfolg, sonst "PORTNOTFOUND".

TXByte(dataByte)
Sendet ein Byte an den seriellen Port.
dataByte Das zu sendende Byte.
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

TXString(dataString)
Sendet eine Zeichenfolge an den seriellen Port.
dataString Die zu sendende Zeichenfolge.
returns "SUCCESS" bei Erfolg, sonst "NOCONNECTION" oder "FAILED".

LDController
Ermittelt Eingaben von einem oder mehreren Game Controllern am USB-Anschluss (zB. Joystick oder GamePad).
Bei mehr als einem angeschlossenen Gerät, werden diese ab 1 durchnummeriert.

SlimDX (Net 4.0) Laufzeit-Dll muß installiert sein, um dieses Objekt zu verwenden (http://slimdx.org/download.php).


Buttons Count Position
POV Rotation Sliders

Buttons(controller)
Ermittelt den 'Gedrückt' Status für Controller Buttons.
controller Eine Controller Nummer am USB-Anschluss (zB. Joystick oder GamePad) indexiert ab 1.
returns Ein Array von Buttonstatus ("True" oder "False").

Count
Ermittelt die Anzahl angeschlossener USB Controller.

Position(controller)
Ermittelt die Position für einen Joystick Controller.
controller Eine Controller Nummer am USB-Anschluss (zB. Joystick oder GamePad) indexiert ab 1.
returns Ein Array von (X,Y,Z) Positionswerten (-100 bis 100).

POV(controller)
Ermittelt die POV (PointOfView) für Controller.
controller Eine Controller Nummer am USB-Anschluss (zB. Joystick oder GamePad) indexiert ab 1.
returns Ein Array von (X,Y,Z) POV Werten [Grad].

Rotation(controller)
Ermittelt die Rotation für einen Joystick Controller.
controller Eine Controller Nummer am USB-Anschluss (zB. Joystick oder GamePad) indexiert ab 1.
returns Ein Array von (X,Y,Z) Rotationswerten (-100 bis 100).

Sliders(controller)
Ermittelt die Schieberposition für Controller Slider.
controller Eine Controller Nummer am USB-Anschluss (zB. Joystick oder GamePad) indexiert ab 1.
returns Ein Array von Sliderpositionen (0 bis 100).

LDControls
Steuerelemente für das GraphicsWindow (Intern: Control#).
example other-samples\DragDrop.sb, ListBox.sb, MediaPlayer.sb, RadioButtons.sb, RichTextBox.sb, RightClickMenu.sb, TreeView.sb

s. 'IconSize' für Icongröße in 'AddContextMenu', 'AddMenu' (Ausgeblendet in IntelliSense)


AddBrowser AddCheckBox AddComboBox
AddContextMenu AddDataView AddDocumentViewer
AddListBox AddListView AddMediaPlayer
AddMenu AddPasswordBox AddProgressBar
AddRadioButton AddRichTextBox AddSlider
AddTreeView AllowDrop BrowserHistory
BrowserNavigate BrowserPageLoaded BrowserSetURL
CheckBoxChanged CheckBoxGetState CheckBoxState
ComboBoxContent ComboBoxGetSelected ComboBoxItemChanged
ComboBoxSelect ContextMenuClicked DataViewAllowSort
DataViewAllowUserEntry DataViewButtonClicked DataViewCellValueChanged
DataViewClear DataViewColAlignment DataViewColumnReadOnly
DataViewColumnSort DataViewColumnVisible DataViewColumnWidths
DataViewDeleteRow DataViewGetFocus DataViewGetRow
DataViewGetSelected DataViewGetValue DataViewReadFromCSV
DataViewRowColours DataViewRowCount DataViewSaveAsCSV
DataViewSelectionChanged DataViewSetColumnButton DataViewSetColumnCheckBox
DataViewSetColumnComboBox DataViewSetFocus DataViewSetRow
DataViewSetValue DocumentViewerLoadXPS FileDropped
IconSize LastBrowser LastBrowserPage
LastCheckBox LastCheckBoxState LastComboBox
LastComboBoxIndex LastContextControl LastContextItem
LastDataBaseTable LastDataView LastDataViewButtonClicked
LastDataViewCellValueChanged LastDropFiles LastDropShape
LastListBox LastListBoxIndex LastListView
LastListViewColumn LastListViewRow LastMediaPlayer
LastMenuControl LastMenuItem LastPassword
LastPasswordBox LastRadioButton LastRadioButtonGroup
LastRichTextBox LastSlider LastSliderValue
LastTreeView LastTreeViewIndex ListBoxContent
ListBoxGetSelected ListBoxItemChanged ListBoxSelect
ListBoxSelectionMode ListViewClear ListViewColAlignment
ListViewDeleteRow ListViewEdit ListViewGetRow
ListViewRowCount ListViewSelectionChanged ListViewSetRow
MediaPlayerEnded MediaPlayerLoad MediaPlayerOpened
MediaPlayerPause MediaPlayerPlay MediaPlayerPlayTime
MediaPlayerPosition MediaPlayerSeek MediaPlayerSpeed
MediaPlayerStop MediaPlayerStretch MediaPlayerVolume
MenuBackground MenuChecked MenuClicked
PasswordEntered ProgressBarValue RadioButtonClicked
RadioButtonGet RadioButtonSet RichTextBoxCaseSensitive
RichTextBoxClear RichTextBoxDefault RichTextBoxFontBackground
RichTextBoxFontBold RichTextBoxFontFamily RichTextBoxFontForeground
RichTextBoxFontItalic RichTextBoxFontSize RichTextBoxFontUnderline
RichTextBoxGetText RichTextBoxIndentToTab RichTextBoxLoad
RichTextBoxMargins RichTextBoxReadOnly RichTextBoxSave
RichTextBoxSelection RichTextBoxSetText RichTextBoxTextAlignment
RichTextBoxTextTyped RichTextBoxWord SetButtonStyle
SetCursorPosition SetCursorToEnd SetSpellCheck
SliderChanged SliderGetValue SliderMaximum
SliderValue TextBoxReadOnly TextBoxTab
TreeViewContent TreeViewEdit TreeViewExpand
TreeViewGetData TreeViewGetSelected TreeViewItemChanged
TreeViewSelect

AddBrowser(width,height,url)
Fügt ein WebBrowser Steuerelement im GraphicsWindow hinzu. AllowDrop ist voraktiviert (Intern: Control#).
Anzeige (lokaler) Webseiten (htm, mht, xht), Dokumente (pdf, xps), Text- (sb, txt, utf8, xml usw.; ini zuvor umbenennen) Media- (swf, flv), Bilddateien (bmp, gif, ico, svg usw.) oder Ordner (C:\Temp, cab, zip, ftp).
'BrowserPageLoaded' Ereignis wird ausgelöst, außer bei Ordner ("file:///Ordner" oder "ftp://").
Liegt über allen anderen Shapes/Controls, eigenes IE-Kontextmenü.

width Die Breite des Browserelementes.
height Die Höhe des Browserelementes.
url Die im Browser zu ladende Webadresse oder lokaler Absolutpfad (zB. "http://smallbasic.com", "litdev.co.uk", "file:///C:\Pfad\[Datei.ext]", "ftp://ftp.microsoft.com/").
returns Der Name des Browser Steuerelements.

AddCheckBox(title)
Fügt ein CheckBox Steuerelement im GraphicsWindow hinzu (Intern: Control#). B: 17 (Text ""), H: 15. Unveränderliche Boxgröße, aber optisch mit Shapes.Zoom.
title Der Titel rechts neben der CheckBox oder "".
returns Der Name der CheckBox Shape.

AddComboBox(list,width,height)
Fügt ein ComboBox Steuerelement im GraphicsWindow hinzu (Intern: Control#).
Akzeptiert (wenn fokusiert) Pfeiltasten, 'Pos1', 'Ende', Anfangszeichen zur Auswahl.
Linksbündige Anzeige aller Einträge (Text wie Zahl).

list Ein Array mit den ComboBox Daten.
Der Arrayindex ist die Reihe/Knotennummer und Arraywert ist der Anzeigetext im aktuellen Knoten:
list[1] = "Option 1"
list[2] = "Option 2"
list[3] = "Option 3"
list[4] = "Option 4"

width Die Breite der ComboBox (mind. 20, Buttonstandardhöhe bei Standard-FontSize 12: 20).
height Die max. Ausklapphöhe des Auswahlmenüs (Standard: 0).
returns Der Name der ComboBox Shape.

AddContextMenu(shapeName,items,images)
Fügt einem Steuerelement oder Shape (welches Kontextmenüs unterstützt) ein Rechtsklick Kontextmenü hinzu (s.a. LDDialogs.AddRightClickMenu).
shapeName Der Name der Shape/Steuerelement.
items Ein Array von Auswahltexten für jeden Kontextmenüpunkt.
images Optionaler Array von Bildsymbolen, jedes oder alle können "" sein (Standardgröße: 32x32 Pxl, zum Ändern s. 'IconSize').
Dies können Rückgabenamen von ImageList.LoadImage, lokale oder Netzwerk- Bilddateien sein.


AddDataView(width,height,headings)
Fügt ein DataView Steuerelement zum GraphicsWindow hinzu (Intern: Control#).
Alle Zeilen und Spalten sind ab 1 indexiert. Daten setzen durch Doppelklick in Zelle, 'DataViewSetRow' oder 'DataViewSetValue'.
Zellenfarbe wählbar mit 'LDShapes.PenColour'.
Spaltenbreite automat. nach längster Zelle (incl. Titel).
Liegt immer über allen anderen Objekten im GraphicsWindow (Z-Index).
Rechtsklick Kontextmenü:
C̲opy Selected Rows
D̲elete Selected Rows
S̲elect All Strg A
C̲opy Strg C
P̲aste Strg V

width Die Breite der DataView (Scrollleiste wird ev. angezeigt).
height Die Höhe der DataView (Zeilenhöhe ca. 20). Ev. größer setzen als erwartete Höhe (Toleranz), später erst mit Controls.SetSize skalieren).
headings Die Spaltentitel der DataView als Array ("1=;" oder "" leere DataView).
returns Der Name der DataView Shape.
example other-samples\DataView.sb

AddDocumentViewer(width,height)
Fügt ein DocumentViewer Steuerelement (mit Symbolleiste und Suchfunktion) hinzu (Intern: Control#).
Damit können Xps Dokumente (MS Version von Pdf) angezeigt werden.
AllowDrop ist voraktiviert.

width Die Breite des DocumentViewers.
height Die Höhe des DocumentViewers.
returns Der Name der DocumentViewer Shape.

AddListBox(list,width,height)
Fügt ein ListBox Steuerelement im GraphicsWindow hinzu (Intern: Control#).
Akzeptiert (wenn fokusiert) Pfeiltasten 'Up' und 'Down', 'Pos1' und 'Ende' zum Durchscrollen der Zeilen.
Linksbündige Ausrichtung für alle Zeilen.
Bei Bedarf rechte/untere Scrollleiste (Breite: 18).

list Die ListBox Zeilen/Daten als Array oder "".
Arrayindex ist die Reihe-/Zeilennummer und Arraywert ist der Anzeigetext in der Zeile:
list[1] = "Zeile 1"
list[2] = "Zeile 2"
list[3] = "Zeile 3"
usw.

Alternativ auch ein LDArray oder eine LDList.

width Die Breite der ListBox.
height Die Höhe der ListBox.
returns Der Name der ListBox Shape.

AddListView(width,height,headings)
Fügt ein ListView Steuerelement im GraphicsWindow hinzu (Intern: Control#, s.a. LDDataBase.AddListView).
width Die Breite der ListView.
height Die Höhe der ListView.
headings Ein Array mit den Spaltentiteln oder "" (Höhe Titelzeile: 20).
returns Der Name der ListView Shape.

AddMediaPlayer(width,height)
Fügt ein MediaPlayer Steuerelement (Abspielen von Musik, Videos usw.) im GraphicsWindow hinzu. AllowDrop ist voraktiviert (Intern: Control#).
width Die Breite des MediaPlayers (Standard: 0).
height Die Höhe des MediaPlayers (Standard: 0).
returns Der Name der MediaPlayer Shape.
example other-samples\MediaPlayer.sb

AddMenu(width,height,menuList,iconList,checkList)
Fügt ein Menüleiste Steuerelement im GraphicsWindow hinzu (Intern: Control#).
Farbgebung durch LDShapes.BrushColour bzw. MenuBackground für Untermenüs.

width Die Breite der Menüleiste.
height Die Höhe der Menüleiste (22 bei Standard Schrifteigenschaften).
menuList Ein 1D Array mit den Menüpunkten. Index ist der Text im Menüpunkt und Wert ist der Menütext der übergeordneten Ebene.
Name der Hauptebene sollte "Main" sein. Alle Namen dürfen nur einmalig vergeben werden, da diese beim 'MenuClicked'-Ereignis zurückgegeben werden.
Trennung mit "-", "--", "---" usw. Diese muß einmalig sein und kann nicht ausgewählt werden.
menu["Datei"] = "Main"
menu["Öffnen"] = "Datei"
menu["-"] = "Datei"
menu["Ende"] = "Datei"
menu["Hilfe"] = "Main"
menu["Hilfe zeigen"] = "Hilfe"

iconList Optionaler Array von Bildsymbolen (Datei, Url, ImageList) oder "" (Standardgröße: 32x32 Pxl, zum Ändern s. 'IconSize'):
icon["Datei"] = dir +"\Symbol.png"

checkList Optionaler Array mit Auswahlstatus für Menüpunkte (Haken, nicht exclusiv) oder "".
Der Wert ist der anfängliche Auswahlstatus ("True", "False" oder "" für keine Statusanzeige):
stat["Hilfe zeigen"] = "True"

returns Der Name der Menüleiste Shape.

AddPasswordBox(width,height,length)
Fügt ein PasswordBox Steuerelement hinzu (Intern: Control#).
TextBox ohne Anzeige eingegebener Zeichen. 'PasswordEntered' Ereignis wird erst nach Drücken der Eingabetaste ausgelöst.

width Die Breite der PasswordBox.
height Die Höhe der PasswordBox.
length Die maximale Zeichenanzahl für das einzugebene Passwort.
returns Der Name der PasswordBox Shape.

AddProgressBar(width,height,orientation)
Fügt ein Fortschrittsanzeige Steuerelement (Werte 0-100 [%]) hinzu (Intern: Control#).
width Die Breite der ProgressBar.
height Die Höhe der ProgressBar.
orientation Horizontal oder vertikal? "H" (Standard) oder "V".
returns Der Name der ProgressBar Shape.

AddRadioButton(title,group)
Fügt ein RadioButton Steuerelement im GraphicsWindow hinzu. Standard: BxH = 16x15 ohne Text (Intern: Control#).
Je Gruppe kann nur ein RadioButton aktiv gesetzt sein (XOR exklusiv).

title Der Titel rechts neben dem RadioButton oder "".
group Der Gruppenname für den RadioButton in "".
returns Der Name der RadioButton Shape.

AddRichTextBox(width,height)
Fügt eine RichTextBox im GraphicsWindow hinzu. AllowDrop ist voraktiviert. Anzeige von rtf und Textdateien (Intern: Control#).
Bei Bedarf rechte/untere Scrollleiste (Breite: 18).

width Die Breite der RichTextBox.
height Die Höhe der RichTextBox.
returns Der Name der RichTextBox Shape.
example other-samples\RichTextBox.sb

AddSlider(width,height,orientation)
Fügt ein Schieberegler Steuerelement (Standard: 0̲ - 100 bzw. SliderMaximum) hinzu (Intern: Control#).
Erlaubt Cursortasten Left|Down, Right|Up (um -/+0.1%), sowie PageUp/Next (um -/+1%), Home/End (zu 0/100%).

width Die Breite des Sliders ("V" Optimalbreite 22).
height Die Höhe des Sliders ("H" Optimalhöhe 22).
orientation Horizontal oder vertikal? "H" (Standard) oder "V".
returns Der Name der Slider Shape.

AddTreeView(tree,width,height)
Fügt ein Baumansicht Steuerelement im GraphicsWindow hinzu (Intern: Control#).
Akzeptiert (wenn fokusiert) Pfeiltasten, 'Pos1' und 'Ende' zum Durchscrollen der Knoten.

tree Die TreeView Daten als 2D Array:
Der 1. Index ist die fortlaufende Reihe/Knotennummer (ab 1).
Der 2. Index ist der Index des Elternknoten des aktuellen Knoten (0 für oberste Ebene).
Der Arraywert ist der Anzeigetext im betreffenden Knoten:
baum[1][0] = "Ebene 1"
baum[2][1] = "Ebene 1 1"
baum[3][1] = "Ebene 1 2"
baum[4][0] = "Ebene 2"
baum[i#][parent#] = "Text"

width Die Breite der TreeView.
height Die Höhe der TreeView.
returns Der Name der TreeView Shape.

AllowDrop(shapeName)
Setzt eine Shape um darauf 'Ziehen&Ablegen' (Drag&Drop) zu erlauben.
Folgende UI-Elemente werden unterstützt, um (+mit/-ohne FileDropped Ereignis) darauf abgelegte Datei(en)/Ordner zu verarbeiten:
+ Datei-/Orderpfad auf TextBox bzw. mehrere Datei-/Ordnerpfade (als Array) auf MultiLineTextBox oder Textshape.
+ Bilddatei auf Bildshape oder "Background" für GW-Hintergrund (Bildansicht).
+ 3D-Modelldatei (s. LD3DView.LoadModel) auf ein Objekt in 3DView.
+ Bilddatei auf 3D-Geometrie (LD3DView.AddImage).
- Zu öffnende Datei auf RichTextBox (voraktiviert, Textansicht).
- Anzuzeigendes Xps Dokument in DocumentViewer (voraktiviert).
- Mediendateien für MediaPlayer (wenn gültiges Medium bereits geladen, voraktiviert).
- Anzuzeigendes Dokument oder Url in Browser (voraktiviert).

shapeName Der Name der Shape für Dateiablage, oder
"Background" GW mit auto. DrawResizedImage(bild,0,0,gw,gh) ohne FileDropped Ereignis.


BrowserHistory(shapeName)
Ermittelt alle zuvor geladenen Adressen im Browserverlauf als Array.
Jede Adresse ist nur einmalig gelistet in der Reihenfolge des Erstbesuchs aber spiegelt nicht die konkrete Adressreihenfolge.

shapeName Der Name des Browser Steuerelements.
returns Ein Array mit den URLs/Pfaden des Verlaufs.

BrowserNavigate(shapeName,direction)
Navigiert im Inhaltsverlauf eines Browsers um eine Adresse vor (F) oder zurück (B) in der Besuchsreihenfolge. 'BrowserPageLoaded' Ereignis wird immer ausgelöst.
shapeName Der Name des Browser Steuerelements.
direction "B" oder "F" für Rück-/Vorwärts in 'BrowserHistory'.

BrowserPageLoaded
Ereignisaufruf bei Laden einer Seite/Datei in einem Browser Steuerelement.

BrowserSetURL(shapeName,url)
Setzt den Inhalt/Adresse für ein WebBrowser Steuerelement. 'BrowserPageLoaded' Ereignis wird immer ausgelöst.
shapeName Der Name des Browser Steuerelements.
url Die im Browser zu ladende Webadresse oder lokaler Pfad (zB. "http://smallbasic.com", "litdev.co.uk", "file:///C:\Pfad\[Datei.ext]", "ftp://ftp.microsoft.com/").

CheckBoxChanged
Ereignisaufruf bei Anklicken einer Checkbox (an-/abhaken).

CheckBoxGetState(shapeName)
Ermittelt den Auswahlstatus einer CheckBox.
shapeName Der Name der CheckBox Form.
returns Der Status der CheckBox ("True" oder "False").

CheckBoxState(shapeName,state)
Setzt den Auswahlstatus für eine CheckBox. Bei einer Statusänderung wird auch 'CheckBoxChanged' Event ausgelöst.
shapeName Der Name der CheckBox Form.
state Der CheckBox Auswahlstatus ("True" oder "False").

ComboBoxContent(shapeName,list)
Setzt/Ändert den Inhalt einer ComboBox.
shapeName Der Name der ComboBox Shape.
list Die neuen ComboBox Daten als Array oder "".
Der Arrayindex ist die Reihe/Knotennummer und Arraywert ist der Anzeigetext am aktuellen Knoten:
list[1] = "Option 1"
list[2] = "Option 2"
list[3] = "Option 3"


ComboBoxGetSelected(shapeName)
Ermittelt den aktuell gewählten Knoten in einer ComboBox.
shapeName Der Name der ComboBox.
returns Der gewählte Knotenindex (Standard: 1).

ComboBoxItemChanged
Ereignisaufruf bei Auswahländerung in einer ComboBox oder Anklicken des gewählten Elementes.

ComboBoxSelect(shapeName,node)
Setzt einen Knoten in einer ComboBox als Auswahl. Bei Auswahländerung wird auch 'ComboBoxItemChanged' Event ausgelöst.
shapeName Der Name der ComboBox.
node Der auszuwählende Knotenindex (Standard: 1).
example 'Auswahl entfernen
LDShapes.SetProperty(cb, "SelectedIndex",-1)


ContextMenuClicked
Ereignisaufruf bei Auswahl eines Rechtsklick-Kontextmenupunktes in einer Form oder Steuerelement .

DataViewAllowSort(shapeName,allow)
Erlaubt Spaltensortierung in einer DataView bei Mausklick auf einen Spaltentitel.
shapeName Der Name der DataView.
allow Sortierung erlauben? "True" (Standard) oder "False".
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewAllowUserEntry(shapeName,allow)
Setzt die Benutzereingabe von Daten in der untersten Zeile einer DataView.
Bei "False" wird diese Zeile auch ausgeblendet.

shapeName Der Name der DataView.
allow Benutzereingabe von Daten zulassen? "True" (Standard) oder "False".
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewButtonClicked
Ereignisaufruf bei Anklicken eines DataView Button.

DataViewCellValueChanged
Ereignisaufruf bei Änderung eines Zellenwertes in einer DataView, nachdem dieser übernommen wurde (zB. Auswahl außerhalb der Zelle).

DataViewClear(shapeName)
Löscht alle Zeilen in einer DataView (Spaltentitel bleiben erhalten).
shapeName Der Name der DataView.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewColAlignment(shapeName,col,alignment)
Setzt die Anzeigeausrichtung für eine gesamte Spalte in einer DataView.
shapeName Der Name der DataView.
col Die Spaltennummer (ab 1).
alignment Die Ausrichtung:
"Left" linksbündig (Standard)
"Center" zentriert
"Right" rechtsbündig

returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewColumnReadOnly(shapeName,col,readOnly)
Setzt Schreibschutz für eine Spalte in einer DataView.
shapeName Der Name der DataView.
col Die Spaltennummer (ab 1).
readOnly Schreibschutz setzen? "True" oder "False" (Standard).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewColumnSort(shapeName,col,ascending)
Sortiert die Einträge einer DataView nach einer bestimmten Spalte.
shapeName Der Name der DataView.
col Die Spaltennummer nach der sortiert wird (ab 1).
ascending Sortierrichtung? Aufsteigend ("True") oder absteigend ("False", Standard).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewColumnVisible(shapeName,col,visible)
Setzt die Sichtbarkeit für eine Spalte in einer DataView (nicht für linke Indexspalte).
Verwendung um zB. die ID Spalte einer Datenbank zu verbergen.

shapeName Der Name der DataView.
col Die Spaltennummer (ab 1).
visible Spalte anzeigen? "True" (Standard) oder "False".
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewColumnWidths(shapeName,widths)
Setzt die Spaltenbreiten in einer DataView (Linke Indexspalte: 60 Pxl Breite).
shapeName Der Name der DataView.
widths Ein Array mit den einzelnen Spaltenbreiten [Pxl] ("" zur Auto-Anpasssung).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewDeleteRow(shapeName,row)
Löscht eine gesamte Datenzeile aus einem DataView Steuerelement.
shapeName Der Name der DataView.
row Die Zeilennummer (ab 1).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewGetFocus(shapeName)
Ermittelt die aktuell fokusierte Zelle in einer DataView.
shapeName Der Name der DataView.
returns Ein 1D Array mit aktuell fokusierter Zeilen- und Spaltennummer ("1=Zeile#;2=Spalte#;"), sonst "".

DataViewGetRow(shapeName,row)
Ermittelt eine gesamte Datenzeile in einem DataView Steuerelement.
shapeName Der Name der DataView.
row Die Zeilennummer (ab 1).
returns Ein Array mit einzelnen Zellenwerten (einer pro Spalte) bei Erfolg, sonst "".

DataViewGetSelected(shapeName)
Ermittelt eine Liste aller ausgewählten Zellen in einer DataView.
shapeName Der Name der DataView.
returns Die aktuell gewählten Zeilen und Spalten als 2D Array:
zellen[1][1] = zeile# bzw.
zellen[1][2] = spalte# 'Zelle1


DataViewGetValue(shapeName,row,col)
Ermittelt den Wert in einer angegebenen Zelle einer DataView.
shapeName Der Name der DataView.
row Die Zeilennummer (ab 1).
col Die Spaltennummer (ab 1).
returns Der Zellenwert oder "".

DataViewReadFromCSV(shapeName,fileName,append)
Fügt alle Daten aus einer CSV (comma separated values) Textdatei in eine bestehende DataView ein (Zeile für Zeile).
Die Spaltentitel müssen definiert und ihre Anzahl <= CSV-Spalten sein.

shapeName Der Name der DataView.
fileName Der volle Pfad der CSV Datei.
append Daten am Ende der DataView anfügen? "True" oder "False".
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewRowColours(shapeName,row,background,foreground)
Setzt Hinter- und Vordergrundfarbe für eine Datenzeile in einer DataView.
Die entsprechenden Zeilen müssen bereits definiert/gesetzt sein.

shapeName Der Name der DataView.
row Die Zeilennummer oder 0 (alle Zeilen abwechselnd).
background Die Hintergrundfarbe.
foreground Die Text-/Vordergrundfarbe (PenColour).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewRowCount(shapeName)
Ermittelt die Zeilenanzahl in einem DataView Steuerelement.
shapeName Der Name der DataView.
returns Die Anzahl der Zeilen.

DataViewSaveAsCSV(shapeName,fileName,append)
Speichert die Gesamtdaten einer DataView in eine CSV (comma separated values) Textdatei.
shapeName Der Name der DataView.
fileName Der volle Pfad der CSV Datei.
append Daten am Ende der CSV Datei anfügen? "True" oder "False".
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewSelectionChanged
Ereignisaufruf bei Auswahländerung in einer DataView.
Wird nicht ausgelöst für DataView(SetColumn) Button Klicks, dafür 'DataViewButtonClicked' verwenden.
Wird nicht ausgelöst für DataView(SetColumn) CheckBox oder -ComboBox Klicks, dafür 'DataViewCellValueChanged' verwenden.


DataViewSetColumnButton(shapeName,col)
Ändert ein Spaltenelement einer DataView zu Button(s). Für Ereignis s. DataViewButtonClicked.
Dies sollte gesetzt werden bevor Daten hinzugefügt werden, nach Erstellung der DataView.
Ist die DataView an die Datenbank gebunden, dann nach dem Setzen von LDDataBase.EditTable setzen.
Die Daten in diesen Zellen werden zu den Buttontiteln.

shapeName Der Name der DataView.
col Die Spaltennummer (ab 1).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewSetColumnCheckBox(shapeName,col)
Ändert ein Spaltenelement einer DataView zu CheckBox(en). Für Ereignis s. DataViewCellValueChanged.
Dies sollte gesetzt werden bevor Daten hinzugefügt werden, nach Erstellung der DataView.
Ist die DataView an die Datenbank gebunden, dann nach dem Setzen von LDDataBase.EditTable setzen.
Die Daten für diese Zellen sollten "True" oder "False" beinhalten.

shapeName Der Name der DataView.
col Die Spaltennummer (ab 1).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewSetColumnComboBox(shapeName,col,data)
Ändert eine Spalte in einer DataView zu ComboBox(en) mit wählbaren Werten. Für Ereignis s. DataViewCellValueChanged.
Sollte gesetzt werden bevor Daten eingetragen werden, nach Erstellung der DataView.
Ist die DataView an die Datenbank gebunden, dann nach dem Setzen von LDDataBase.EditTable setzen.
Die zu ermittelnden/setzenden Zellendaten sind die unter 'data' Parameter gesetzten Arraywerte.

shapeName Der Name der DataView.
col Die Spaltennummer (ab 1).
data Die gewählten Daten für die ComboBox(en) als Array.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewSetFocus(shapeName,row,col)
Setzt den Fokus auf eine angegebene Zelle in einer DataView.
shapeName Der Name der DataView.
row Die Zeilennummer (ab 1).
col Die Spaltennummer (ab 1).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewSetRow(shapeName,row,values)
Setzt eine Datenzeile in einem DataView Steuerelement (hinzu).
shapeName Der Name der DataView.
row Die Zeilennummer (ab 1).
Ist diese Zeilennummer höher als die aktuelle Zeilenanzahl, wird eine neue Zeile angefügt. Sonst werden vorhandene Zeilendaten überschrieben.

values Ein Array mit einzelnen Zellenwerten (einer pro Spalte).
Leere Zellen/Arraywerte mit " " besetzen/auffüllen.

returns "SUCCESS" bei Erfolg, sonst "FAILED".

DataViewSetValue(shapeName,row,col,value)
Ändert den Wert in einer angegebenen Zelle einer DataView (Zeile muß bereits definiert sein, s. 'DataViewSetRow').
shapeName Der Name der DataView.
row Die Zeilennummer (ab 1, bestehende Zeile).
col Die Spaltennummer (ab 1).
value Der zu setzende Wert oder "" (entfernt Zellenwert).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DocumentViewerLoadXPS(shapeName,fileName)
Lädt eine Xps Datei zur Ansicht in einen DocumentViewer.
shapeName Der Name der DocumentViewer Shape.
fileName Der volle Pfad der zu ladenden und anzuzeigenden Xps Datei.

FileDropped
Ereignisaufruf wenn Datei(en) oder Ordner auf ein Steuerelement, Bildshape oder 3DView (per AllowDrop) gezogen&abgelegt wurde(n).

IconSize
Ermittelt oder setzt die Icongröße (w=h Pxl) für 'AddContextMenu', 'AddMenu' oder 'LDDialogs.AddRightClickMenu' (Ausgeblendet in IntelliSense):
-1 32x32 (Standard)
>0 zB. 16,24


LastBrowser
Ermittelt den Name der letzten Browser Shape, worin eine Seite geladen wurde.

LastBrowserPage
Ermittelt die letzte geladene Browserseite (Url oder file:///C:/lokale/Datei.ext), nachdem die Seite vollständig geladen ist.

LastCheckBox
Ermittelt den Name der zuletzt geklickten CheckBox (An- oder Abwahl).

LastCheckBoxState
Ermittelt den Auswahlstatus ("True" oder "False") der zuletzt geklickten CheckBox.

LastComboBox
Ermittelt den Name der letzten ComboBox mit Auswahländerung.

LastComboBoxIndex
Ermittelt den gewählten Knotenindex für die letzte ComboBox mit Auswahländerung.

LastContextControl
Ermittelt das Steuerelement/Shape mit dem letzten gewählten Rechtsklick-Kontextmenüpunkt.

LastContextItem
Ermittelt den Arrayindex der Kontextauswahl im letzten Steuerelement/Shape mit gewähltem Rechtsklick-Kontextmenüpunkt.

LastDataBaseTable
Ermittelt den Name der letzten Datenbank Tabelle, für welche Auswahländerung in einer DataView stattfand.

LastDataView
Ermittelt den Name der letzen DataView mit Auswahländerung.

LastDataViewButtonClicked
Ermittelt Zeile, Spalte und Wert des zuletzt geklickten DataView Button als 3-element. Array.

LastDataViewCellValueChanged
Ermittelt Zeile, Spalte und Wert der letzten Zelle einer DataView, deren Wert geändert wurde, als 3-element. Array.

LastDropFiles
Ermittelt die Pfad(e) der zuletzt 'gezogen&abgelegten' Datei(en)/Ordner als Array.

LastDropShape
Ermittelt den Name der Shape, worauf zuletzt eine Datei/Ordner 'gezogen&abgelegt' wurde (zB. Background, Image#, View3D# usw.).

LastListBox
Ermittelt den Name der letzten ListBox mit Auswahländerung.

LastListBoxIndex
Ermittelt den gewählten Index (Zeilennummer) für die letzte ListBox mit Auswahländerung.

LastListView
Ermittelt den Name der letzten ListView mit Auswahländerung.

LastListViewColumn
Ermittelt die zuletzt gewählte Spaltennummer in einer ListView.

LastListViewRow
Ermittelt die zuletzt gewählte Zeilennummer in einer ListView.

LastMediaPlayer
Ermittelt den Name des letzten MediaPlayer, für den ein Ereignis stattfand.

LastMenuControl
Ermittelt den Name des letzten Menü Steuerelements mit Auswahländerung.

LastMenuItem
Ermittelt den Name des zuletzt gewählten Menüpunktes in einem Menü Steuerelement.

LastPassword
Ermittelt das zuletzt in eine PasswordBox eingegebene Passwort.

LastPasswordBox
Ermittelt den Name der letzten PasswordBox mit Eingabeereignis (Eingabetaste gedrückt).

LastRadioButton
Ermittelt den Name für den letzten gewählten RadioButton.

LastRadioButtonGroup
Ermittelt den Gruppenname für den zuletzt gewählten RadioButton.

LastRichTextBox
Ermittelt den Name der RichTextBox, in der zuletzt Text geschrieben/eingefügt/geändert wurde.

LastSlider
Ermittelt den Name des letzten Sliders mit Auswahländerung.

LastSliderValue
Ermittelt den Wert des zuletzt aktiven Sliders (Std: 0-100 bzw. 0-SliderMaximum, 13 Dezimalen).

LastTreeView
Ermittelt den Name der letzten TreeView mit Auswahländerung.

LastTreeViewIndex
Ermittelt die Indexnummer für den letzten TreeView Knoten mit Auswahländerung.

ListBoxContent(shapeName,list)
Setzt/Ändert den Inhalt einer ListBox.
shapeName Der Name der ListBox Shape.
list Die neuen ListBox Zeilen/Daten als Array oder "". Alternativ auch ein LDArray oder eine LDList.
Arrayindex ist die Reihe-/Zeilennummer und Arraywert ist der Anzeigetext in der Zeile:
list[1] = "Zeile 1"
list[2] = "Zeile 2"
list[3] = "Zeile 3"


ListBoxGetSelected(shapeName)
Ermittelt die gewählte Zeile in einer ListBox (Arrayindex).
shapeName Der Name der ListBox.
returns Die ausgewählte Zeilennummer in der ListBox.
Bei Mehrfachauswahl (s. ListBoxSelectionMode) als Array mit Zeilennummern oder "" für keine Auswahl.


ListBoxItemChanged
Ereignisaufruf bei Auswahländerung in einer ListBox oder Anklicken der gewählten Zeile.

ListBoxSelect(shapeName,node)
Wählt eine oder mehrere Zeilen in einer ListBox.
shapeName Der Name der ListBox.
node Die auszuwählende Zeilennummer gemäß Arrayindex.
Bei Mehrfachauswahl ein Array mit den Zeilennummern (s. ListBoxSelectionMode).

example 'Auswahl entfernen
LDShapes.SetProperty(lb, "SelectedIndex",-1)


ListBoxSelectionMode(shapeName,mode)
Setzt den Auswahlmodus für Zeilen in einer ListBox.
shapeName Der Name der ListBox.
mode Der Auswahlmodus:
"Single" Einzelauswahl (Standard)
"Multiple" Mehrfachauswahl mit [Strg] Taste
"Extended" Erweiterte Auswahl mit [Strg]+[Umsch] Tasten


ListViewClear(shapeName)
Entfernt alle Zeilen aus einem ListView Steuerelement.
shapeName Der Name der ListView.

ListViewColAlignment(shapeName,col,alignment)
Setzt die Anzeigeausrichtung für eine Spalte in einer ListView.
shapeName Der Name der ListView.
col Die Spaltennummer (ab 1).
alignment Die Ausrichtung:
"Left" linksbündig (Standard)
"Center" zentriert
"Right" rechtsbündig


ListViewDeleteRow(shapeName,row)
Löscht eine Datenzeile aus einem ListView Steuerelement.
shapeName Der Name der ListView.
row Die Zeilennummer (ab 1).
Ist diese Zeilennummer höher als die aktuelle Zeilenanzahl, wird keine Aktion durchgeführt.


ListViewEdit(shapeName,editable)
Setzt den 'Bearbeiten' Status für die Zellen in einer ListView.
shapeName Der Name der ListView.
editable "True" (TextBoxen zur Bearbeitung) oder "False" (nicht bearbeitbare Textblöcke, Standard).

ListViewGetRow(shapeName,row)
Ermittelt eine Datenzeile in einem ListView Steuerelement.
shapeName Der Name der ListView.
row Die Zeilennummer (ab 1).
returns Ein Array mit den Werten (ein Wert pro Spalte) bei Erfolg, sonst "".

ListViewRowCount(shapeName)
Ermittelt die Spaltenanzahl in einem ListView Steuerelement.
shapeName Der Name der ListView.
returns Die Anzahl der Spalten in der ListView.

ListViewSelectionChanged
Ereignisaufruf bei Auswahländerung in einer ListView.

ListViewSetRow(shapeName,row,values)
(Er)Setzt eine Datenzeile in einem ListView Steuerelement (hinzu).
shapeName Der Name der ListView.
row Die Zeilennummer (ab 1).
Ist diese Zeilennummer höher als die aktuelle Zeilenanzahl, wird eine neue Zeile hinzugefügt. Sonst werden bestehende Zeilendaten überschrieben.

values Ein Array mit den Werten (ein Wert pro Spalte).

MediaPlayerEnded
Ereignisaufruf wenn ein MediaPlayer das Abspielen des aktuellen Mediums beendet.

MediaPlayerLoad(shapeName,media)
Lädt ein Medium in ein MediaPlayer Steuerelement.
shapeName Der Name des MediaPlayers.
media Das zu ladende Medium, zB. eine Bild-, Audio- oder Videodatei (bmp, (anim)gif, ico, jp, png; au, flac, m4a, mid, mp3, ogg, wav, wma; avi, mp4, mpg, wmv usw.)

MediaPlayerOpened
Ereignisaufruf wenn ein MediaPlayer (ein) neues Medien(um) öffnet.

MediaPlayerPause(shapeName)
Pausiert das Abspielen in einem MediaPlayer (für aktuell geladenes Medium).
shapeName Der Name des MediaPlayers.

MediaPlayerPlay(shapeName)
Startet das Abspielen/Anzeige in einem MediaPlayer (für aktuell geladenes Medium).
shapeName Der Name des MediaPlayers.

MediaPlayerPlayTime(shapeName)
Ermittelt die Gesamtspieldauer (für aktuell geladenes Medium) in einem MediaPlayer.
shapeName Der Name des MediaPlayers.
returns Die Gesamtspieldauer des Mediums [ms].

MediaPlayerPosition(shapeName)
Ermittelt die aktuelle Laufzeit (für aktuell geladenes Medium) in einem MediaPlayer.
shapeName Der Name des MediaPlayers.
returns Die aktuelle Laufzeit des Mediums [ms].

MediaPlayerSeek(shapeName,seek)
Setzt die Abspielposition eines Mediums in einem MediaPlayer (für aktuell geladenes Medium).
shapeName Der Name des MediaPlayers.
seek Die neue Abspielposition [ms].

MediaPlayerSpeed(shapeName,speed)
Setzt die Wiedergabegeschwindigkeit für einen MediaPlayer.
shapeName Der Name des MediaPlayers.
speed Die Abspielgeschwindigkeit (0 bis 100). Standard: 1 (normales Abspielen).

MediaPlayerStop(shapeName)
Stoppt das Abspielen in einem MediaPlayer (für aktuell geladenes Medium).
shapeName Der Name des MediaPlayers.

MediaPlayerStretch(shapeName,stretch)
Setzt die Streckung eines visuellen Mediums (wie die Ansicht einen Bereich ausfüllt).
shapeName Der Name der MediaPlayer Shape.
stretch Die Streckmethode:
"None" Inhalt behält seine Originalgröße.
"Uniform" Inhaltsgröße wird angepasst um in die Zielabmessungen zu passen, wobei natürliches Ansichtsverhältnis beibehalten wird (Standard).
"Fill" Inhaltsgröße wird angepasst um die Zielabmessungen auszufüllen. Ansichtsverhältnis wird nicht beibehalten.
"UniformToFill" Inhaltsgröße wird angepasst um die Zielabmessungen auszufüllen, während natürliches Ansichtsverhältnis beibehalten wird, mittels Clipping falls nötig.


MediaPlayerVolume(shapeName,volume)
Setzt die Lautstärke für einen MediaPlayer.
shapeName Der Name des MediaPlayers.
volume Die Lautstärke (0 bis 1, Standard: 0.5).

MenuBackground(shapeName,colour)
Setzt die Hintergrundfarbe für Untermenüs.
Das obere Haupmenü kann separat mit LDShapes.BrushColour gefärbt werden.
Beachte daß Trennungen nicht gefärbt werden und oft ist es besser nur das Hauptmenü zu färben.

shapeName Der Name des Menü Steuerelements.
colour Die Hintergrundfarbe (#(AA)RRGGB, aber keine Transparenz).

MenuChecked(shapeName,itemName)
Ermittelt den Auswahlstatus eines Menüpunktes.
shapeName Der Name des Menü Steuerelements.
itemName Der Name des Menüpunktes.
returns "True" oder "False".

MenuClicked
Ereignisaufruf bei Auswahl eines Menüpunktes.

PasswordEntered
Ereignisaufruf bei Eingabe eines Passwortes in eine PasswordBox (nachdem Eingabetaste gedrückt).

ProgressBarValue(shapeName,value)
Setzt den Wert für eine Fortschrittsanzeige (UIElem. "Value").
shapeName Der Name der Fortschrittsanzeige Shape.
value Der Wert für die Fortschrittsanzeige (Standard: 0 bis 100 [%]).

RadioButtonClicked
Ereignisaufruf bei Auswahländerung eines RadioButton (anwählen).

RadioButtonGet(shapeName)
Ermittelt den Auswahlstatus eines RadioButton.
shapeName Der RadioButton dessen Status ermittelt wird.
returns Der Status des RadioButton ("True" oder "False").

RadioButtonSet(shapeName)
Setzt einen RadioButton als ausgewählt/aktiviert. Bei einer Statusänderung wird auch 'RadioButtonClicked' Event ausgelöst.
shapeName Der zu setzende RadioButton.

RichTextBoxCaseSensitive
Ermittelt oder setzt die Beachtung von GROß-/kleinschr. bei Wort-/Ausdruckhervorhebung? "True" oder "False" (Standard).
Ist zu setzen bevor 'RichTextBoxWord' aufgerufen wird.


RichTextBoxClear(shapeName)
Entfernt den gesamten Text aus einer RichTextBox.
shapeName Der Name der RichTextBox.

RichTextBoxDefault(shapeName)
Setzt den Standard Schriftstil mittels aktueller RichTextBox Eigenschaften.
Info: Textdekoration (zB. RichTextBoxFontUnderline) ist für diese Option nicht verfügbar.

shapeName Der Name der RichTextBox.

RichTextBoxFontBackground
Ermittelt oder setzt die Schrift Hintergrundfarbe (Standard: "White").
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxFontBold
Ermittelt oder setzt den Schriftstil Fettdruck? "True" oder "False" (Standard).
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxFontFamily
Ermittelt oder setzt die Schriftart, zB. "Century Gothic" (Standard: "Segoe UI").
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxFontForeground
Ermittelt oder setzt die Schrift Vordergrundfarbe (Standard: "Black").
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxFontItalic
Ermittelt oder setzt den Schriftstil Kursiv? "True" oder "False" (Standard).
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxFontSize
Ermittelt oder setzt die Schriftgröße Punktehöhe (Standard: 12).
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxFontUnderline
Ermittelt oder setzt den Schriftstil Unterstreichung (Strg+U)? "True" oder "False" (Standard).
Vor dem Aufruf von RichTextBoxSelection, RichTextBoxWord oder RichTextBoxDefault setzen.


RichTextBoxGetText(shapeName)
Ermittelt den Text (unformatiert) in einer angegebenen RichTextBox.
shapeName Der Name der RichTextBox.
returns Der Text in der RichTextBox (CrLf wird angefügt, Tab am Zeilenanfang s. RichTextBoxIndentToTab).

RichTextBoxIndentToTab
Ermittelt oder setzt die Umwandlung des ersten Zeileneinzugzeichens zu einem Tab? "True" (Standard) oder "False".
Ein eingetippter Tab als erstes Zeichen einer RichTextBox Zeile erstellt einen Einzug ("False"), sonst einen Tabulator ("True").


RichTextBoxLoad(shapeName,fileName,append)
Lädt Text (mit Formatierung) aus einer Rtf Datei in eine RichTextBox.
shapeName Der Name der RichTextBox.
fileName Der volle Pfad der Rtf Datei zum Laden des Textes (mit Formatierung, keine Formatierung/Zeilenumbruch für Textdatei).
append Anfügen an bestehenden Textinhalt? "True" oder "False" (Standard).

RichTextBoxMargins(left,right,top,bottom)
Setzt Randabstand [Pxl] für Absätze in der RichTextBox.
Für jeden angefügten oder erstellten Text (per RichTextBoxSetText) wird ein neuer Absatz erstellt.

left Linker Rand (Standard: 0).
right Rechter Rand (Standard: 0).
top Oberer Rand (Standard: 0).
bottom Unterer Rand (Standard: 0).

RichTextBoxReadOnly
Ermittelt oder setzt den 'Schreibschutz' Status für die folgende RichTextBox? "True" oder "False" (Standard).
Ist zu setzen bevor 'AddRichTextBox' aufgerufen wird.


RichTextBoxSave(shapeName,fileName)
Speichert den Text (mit Formatierung) aus einer RichTextBox in eine Rtf Datei.
shapeName Der Name der RichTextBox.
fileName Der volle Pfad der Rtf Datei zum Speichern des Textes (mit Formatierung).

RichTextBoxSelection(shapeName)
Setzt den Schriftstil für markierten RichTextBox Text mittels aktueller RichTextBox Eigenschaften.
shapeName Der Name der RichTextBox.

RichTextBoxSetText(shapeName,text,append)
Setzt Text (unformatiert) in eine RichTextBox.
shapeName Der Name der RichTextBox.
text Der zu ladende Text.
append An bestehenden Text anfügen? "True" oder "False" (Standard).
Für jeden angefügten Text wird ein neuer Absatz erstellt. S. RichTextBoxMargins zum Setzen von Rand für den Absatz.


RichTextBoxTextAlignment
Ermittelt oder setzt die Textausrichtung in der RichTextBox:
"Left" linksbündig (Standard, Strg+L)
"Center" zentriert
"Right" rechtsbündig (Strg+R)
"Justify" Blocksatz

Ist zu setzen bevor 'AddRichTextBox' aufgerufen wird.


RichTextBoxTextTyped
Ereignisaufruf wenn Text in einer RichTextBox eingegeben oder geändert wurde.
Nicht bei Mausklick, Cursortasten, Pos1/Ende usw. Jedoch bei 'Back'(Space), Ausschneiden/Einfügen.


RichTextBoxWord(shapeName,text,mode)
Setzt den Schriftstil für ein angegebenes Wort/Ausdruck mittels aktueller RichTextBox Eigenschaften.
shapeName Der Name der RichTextBox.
text Der zu ändernde Text (GROß-/kleinschr. setzen durch RichTextBoxCaseSensitive Parameter).
mode Anwenden für Instanzen von Wort/Ausdruck:
0 Alle Instanzen (Standard)
1 Erste Instanz
2 Letzte Instanz


SetButtonStyle(shapeName,brushUnpressed,brushMouseOver,brushPressed,penUnpressed,penMouseOver,penPressed,radius,shine)
Setzt/Ändert den Ansichtsstil für einen bestehenden Button. Für verwendbare Gradient-, Bild- od. Textpinsel (Brush) s. LDShapes.BrushGradient, -Image, -Text.
brush- und pen- Parameter NICHT "". Jeder erstellte Pinsel (Brush) kann nur 1x verwendet werden.

shapeName Der Name des zu ändernden Button.
brushUnpressed Die Hintergrundfarbe im UNgedrückten Status, bzw. Pinsel (Brush), wie LDShapes.BrushColour.
brushMouseOver Die Hintergrundfarbe beim Überfahren mit Mauszeiger, bzw. Pinsel (Brush).
brushPressed Die Hintergrundfarbe im GEdrückten Status, bzw. Pinsel (Brush).
penUnpressed Die Textfarbe im UNgedrückten Status ("Transparent" verbirgt Buttontext), wie LDShapes.PenColour.
penMouseOver Die Textfarbe beim Überfahren mit Mauszeiger ("Transparent" verbirgt Buttontext).
penPressed Die Textfarbe im GEdrückten Status ("Transparent" verbirgt Buttontext).
radius Der Eckenradius für abgerundeten Button (Standard: 3, "" für 0).
shine Leuchteffekt oben am Button? "True" oder "False" (Standard).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

SetCursorPosition(shapeName,position)
Setzt die Cursor Einfügemarke hinter die angegebene Position innerhalb einer (MultiLine)TextBox. Nicht für RichTextBox.
shapeName Der Name der (MultiLine)TextBox Shape.
position Die Cursorposition hinter dem entsprechenden Zeichen (0 ist vor dem ersten Zeichen, höhere Werte zB. 1000 zum Setzen des Cursors ans Textende).

SetCursorToEnd(shapeName)
Scrollt die Ansicht in einer MultiLine- oder RichTextBox bis zum Ende des Textinhalts.
Die Cursorposition bleibt dabei unverändert.

shapeName Der Name der TextBox Shape.

SetSpellCheck(shapeName,state)
Setzt die Rechtschreibprüfung für eine (Rich)TextBox an/aus.
shapeName Der Name der (Rich)TextBox Shape.
state Der Status für Rechtschreibprüfung? "True" oder "False" (Standard).

SliderChanged
Ereignisaufruf wenn der Wert eines Schiebereglers geändert wurde.
Bei Verschub mit Maus bzw. L-Mausklick (PageUp/Next) um 1%, Cursortasten Left|Down (-), Right|Up (+) um 0.1%, Home/End auf 0/100%.

example 'Trackbar Slider
LDControls.SliderMaximum = 2
slid = LDControls.AddSlider(200,22,"")
LDControls.SliderChanged = SlidChange
LDControls.SliderValue(slid, 1) '-0+

Sub SlidChange
val = 0.1*Math.Round(LDControls.LastSliderValue/0.1)-1
GraphicsWindow.Title = val
EndSub


SliderGetValue(shapeName)
Ermittelt den aktuellen Wert eines Schiebereglers (Position, UIElem. "Value").
shapeName Der Name der Schieberegler Shape.
returns Der Wert für den Schieberegler (Standard: 0, >=0 bis 100 bzw. SliderMaximum).

SliderMaximum
Ermittelt oder setzt den Maximalwert für einen Slider (Standard: 100, UIElem. "Maximum"). Der Minimalwert ist stets 0.
Vor dem Aufruf von AddSlider setzen/ändern. Gilt für alle weiteren neu erstellten LDSlider bis zur erneuten Änderung.


SliderValue(shapeName,value)
Setzt den Wert für einen Schieberegler (Position, UIElem. "Value"). Bei Wert-/Positionsänderung wird auch 'SliderChanged' Event ausgelöst.
shapeName Der Name der Schieberegler Shape.
value Der neue Wert für den Schieberegler (Standard: 0, >=0 bis 100 bzw. SliderMaximum).

TextBoxReadOnly(shapeName,readOnly)
Setzt den 'Schreibschutz' Status für eine (MultiLine)TextBox (UIElem. "IsReadOnly").
Cursor(steuerung) sowie Ausschneiden/Einfügen (Kontextmenü) deaktiviert.

shapeName Der Name der (MultiLine)TextBox.
readOnly "True" oder "False" (Standard).
example 'Schreibschutz in RichTextBox
LDShapes.SetProperty(rtb, "IsReadOnly","True")
'LDShapes.SetProperty(rtb, "IsReadOnlyCaretVisible","True")


TextBoxTab(shapeName,acceptsTab)
Setzt ob eine (Rich)TextBox einen Tab(ulator) akzepiert oder dieser zum nächsten Steuerelement weiterspringt (UIElem. "AcceptsTab").
shapeName Der Name der (Rich)TextBox.
acceptsTab "True" oder "False" (Standard).

TreeViewContent(shapeName,tree)
Setzt/Ändert den Ansichtsbaum in einer TreeView.
shapeName Der Name der TreeView Shape.
tree Die neuen TreeView Daten als 2D Array:
Der 1. Index ist die fortlaufende Reihe/Knotennummer (ab 1).
Der 2. Index ist der Index des Elternknoten des aktuellen Knoten (0 für oberste Ebene).
Der Arraywert ist der Anzeigetext im betreffenden Knoten:
baum[1][0] = "Ebene 1"
baum[2][1] = "Ebene 1 1"
baum[3][1] = "Ebene 1 2"
baum[4][0] = "Ebene 2"
baum[i#][parent#] = "Text"


TreeViewEdit(shapeName,node,editable)
Setzt den Änderungsstatus für Text in einem TreeView Knoten.
shapeName Der Name der TreeView Shape.
node Die Indexnummer des Knoten.
editable Knotentext bearbeitbar (via TextBox)? "True" oder "False" (Standard).

TreeViewExpand(shapeName,node,expand,recursive)
Erweitert/Schließt Knoten in einer TreeView unter dem Eingabeknoten.
shapeName Der Name der TreeView Shape.
node Die Knotennummer zum Erweitern/Schließen. 0 erweitert/schließt rekursiv ALLE Knoten.
expand Knotennummer erweitern? "True" oder "False" (Schließen).
recursive Rekursives Erweitern/Schließen der Unterknoten (aller Knoten)? "True" oder "False" (Standard).

TreeViewGetData(shapeName)
Ermittelt die Daten von einem TreeView Baum.
shapeName Der Name der TreeView Shape.
returns Die aktuellen TreeView Daten als 2D Array:
Der 1. Index ist die fortlaufende Reihe/Knotennummer (ab 1).
Der 2. Index ist der Index des Elternknoten des aktuellen Knoten (0 für oberste Ebene).
Der Arraywert ist der Anzeigetext im betreffenden Knoten:
baum[1][0] = "Ebene 1"
baum[2][1] = "Ebene 1 1"
baum[3][1] = "Ebene 1 2"
baum[4][0] = "Ebene 2"
baum[i#][parent#] = "Text"


TreeViewGetSelected(shapeName)
Ermittelt den gewählten Knoten in einer TreeView.
shapeName Der Name der TreeView Shape.
returns Die Indexnummer des gewählten Knoten in der TreeView.

TreeViewItemChanged
Ereignisaufruf bei Auswahländerung in einer TreeView oder Anklicken des gewählten Elementes.

TreeViewSelect(shapeName,node)
Wählt einen Knoten in einer TreeView.
shapeName Der Name der TreeView Shape.
node Die Indexnummer des zu wählenden Knoten.

LDCursors
Setzen von Symbolen für den Mauszeiger im GraphicsWindow (entsprechend aktivem Zeigerstil).
example physics-samples\pool.sb

Arrow ArrowCD CreateCursor
Cross Hand Help
IBeam Invalid None
Pen Scroll SetShapeCursor
SetUserCursor SizeAll SizeNESW
SizeNS SizeNWSE SizeWE
Starting UpArrow Wait

Arrow()
Pfeil (Normale Auswahl, Standard).

ArrowCD()
Pfeil mit CD Cursor.

CreateCursor(imageName,xHotSpot,yHotSpot)
Erstellt einen temporären Cursor, welcher mittels 'SetUserCursor' oder 'SetShapeCursor' gesetzt werden kann (Intern: Cursor#).
Die Größe des ImageList Bildes kann zuvor mit 'LDImage.Resize' angepasst werden.
Zum Speichern als Cursordatei s. 'LDIcon.CreateCursor'.

imageName Der ImageList Name oder voller Pfad einer lokalen oder Netzwerk Bilddatei.
xHotSpot Die x-Position des Steuerpunktes (Standard: 0, auch <0 oder >Bildbreite).
yHotSpot Die y-Position des Steuerpunktes (Standard: 0, auch <0 oder >Bildhöhe).
returns Der Name für den neu erstellten, interen Cursor.

Cross()
Kreuz (Präzisionsauswahl).

Hand()
Hand (Verknüpfungsauswahl, Zeigefinger).

Help()
Hilfe (Hilfeauswahl, Pfeil mit Fragezeichen).

IBeam()
Einfügemarke (Textauswahl, I).

Invalid()
Unmöglich/Verboten (Nicht verfügbar, Verbotstafel).

None()
Kein Mauszeiger (s. Mouse.HideCursor).

Pen()
Stift (Handschrift, Füllfeder).

Scroll()
Größe ändern/Verschieben (4Pfeile-Kreuz).

SetShapeCursor(shapeName,cursor)
Setzt einen eigenen Cursor für eine angegebene Shape oder Steuerelement, wenn der Mauszeiger über dieser steht.
shapeName Der Name der Shape/Steuerelement.
cursor Ein mittels 'CreateCursor' erstellter oder Standard Cursor in dieser Klasse (zB. "ArrowCD") oder
voller Pfad einer .cur/.ani Datei zur Verwendung als Cursor.

example Erstellen einer externen Cursor-Datei (.cur) s. 'LDIcon.CreateCursor'.

SetUserCursor(cursor)
Setzt einen benutzerdefinierten Cursor als Mauszeiger im GraphicsWindow.
cursor Ein mittels 'LDCursors.CreateCursor' erstellter oder Standard Cursor in dieser Klasse (zB. "ArrowCD") oder
voller Pfad einer .cur/.ani Datei zur Verwendung als Cursor.

example Erstellen einer externen Cursor-Datei (.cur) s. 'LDIcon.CreateCursor'.

SizeAll()
Doppelpfeil Kreuz (Größenänderung, Verschieben).

SizeNESW()
NO-SW Doppelpfeil Cursor (Größenänderung).

SizeNS()
AufAb Doppelpfeil (Größenänderung).

SizeNWSE()
NW-SO Doppelpfeil Cursor (Größenänderung).

SizeWE()
LinksRechts Doppelpfeil (Größenänderung).

Starting()
Start (Hintergrundaktivität, Pfeil mit Sanduhr).

UpArrow()
Pfeil nach oben (Einfügemarke).

Wait()
Warten (Ausgelastet, Sanduhr).

LDDataBase
Unterstützung und Methoden für verschiedene Datenbank Formate:

SQL Datenbank mit ListView Steuerelement.
ConnectSQLite für SQLite Datenbanken (s. http://zetcode.com/db/sqlite für SQLite Befehle).
ConnectMySQL für MySQL Datenbanken (s. http://www.mysql.de für MySQL Downloads und Setup).
ConnectSqlServer für SqlServer Datenbanken (s. http://www.microsoft.com/de-de/server-cloud/products/sql-server-editions/sql-server-express.aspx für SqlServer Downloads und Setup).
ConnectOleDb für Access OleDb Datenbanken.
ConnectOdbc für Odbc Datenbanken.

example other-samples\LDDataBase.sb
http://blogs.msdn.microsoft.com/smallbasic/2014/05/24/small-basic-database-extension
http://blogs.msdn.microsoft.com/smallbasic/2015/10/15/small-basic-featured-program-database-sample


AddListView Command Connection
ConnectMySQL ConnectOdbc ConnectOleDb
ConnectSQLite ConnectSqlServer EditTable
Query SaveTable

AddListView(width,height)
Fügt ein datengebundendes ListView Steuerelement zur Datenbankanzeige im GraphicsWindow hinzu (Intern: ListView#, s.a. LDControls.AddListView).
Dient zur schreibgeschützten Anzeige einer Datenbankabfrage (s. 'LDControls.AddDataView' mit Bearbeitungsfunktion).

width Die Breite der ListView.
height Die Höhe der ListView.
returns Der Name des ListView Steuerelements.

Command(database,command)
Führt einen SQLite, MySQL, SqlServer, OleDb oder Odbc Befehl (keine Abfrage) an einer Datenbank durch.
Bei Anzeige der Datenbank in einer DataView gehen ungespeicherte Benutzeränderungen verloren, wenn die DataView im Anschluss an diese Operation aktualisiert wird.

database Bezeichnung der bestehenden Datenbank (s. ConnectSQLite, ConnectMySQL, ConnectSqlServer, ConnectOleDb oder ConnectOdbc).
command Der SQL Befehl.
returns Die Anzahl aktualisierter Reihen.

Connection
Ermittelt oer setzt einen String zur Umgehung des Verbindungsstrings für eine SQL Datenbank (nur fortgeschrittene Verwendung).
Ist vor der Verbindung zur Datenbank zu setzen, wenn dieser Verbindungsstring anstatt der eingegebenen Verbindungsparameter zu verwenden ist.
Standard: "" (nicht verwendet).


ConnectMySQL(server,user,password,database)
Verbinden zu einer MySQL Datenbank (Intern: DataBase#).
Dies ist vor allen weiteren SQL Methoden aufzurufen.
Der MySQL Dienst muß laufen und die Datenbank (mitsamt Anmeldeinformationen) bereits erstellt sein. Im Zweifel verwende SQLite.

server Der MySQL Server (zB. "localhost" bzw. "127.0.0.1").
user Der MySQL Benutzername.
password Das MySQL Benutzerpasswort oder "".
database Der Name der MySQL Datenbank.
returns Eine Bezeichnung zur Identifizierung der Datenbank.

ConnectOdbc(driver,server,port,user,password,option,database)
Verbinden zu einer Odbc Treiber verbundenen Datenbank (Intern: DataBase#).
Dies ist vor allen weiteren SQL Methoden aufzurufen.
Der Odbc Dienst muß laufen und die Datenbank (mitsamt Anmeldeinformationen) bereits erstellt sein. Im Zweifel verwende SQLite.

driver Der Odbc Treiber (zB. "{MySQL ODBC 3.51 Driver}").
server Der Odbc Server (zB. "localhost").
port Die Odbc Portnummer.
user Der Odbc Benutzername.
password Das Odbc Benutzerpasswort.
option Die Odbc Optionsnummer zur Steuerung der Odbc Verbindung (zB. 0 oder 3).
database Der Name der Odbc Datenbank.
returns Eine Bezeichnung zur Identifizierung der Datenbank.

ConnectOleDb(provider,server,database)
Verbinden zu einer Access OleDb Datenbank (Intern: DataBase#).
Dies ist vor allen weiteren SQL Methoden aufzurufen.
Der Access OleDb Dienst muß laufen und die Datenbank (mitsamt Anmeldeinformationen) bereits erstellt sein. Im Zweifel verwende SQLite.

provider Der OleDb Anbieter (zB. "SQLOLEDB").
server Der OleDb Server (zB. "localhost").
database Der Name der OleDb Datenbank.
returns Eine Bezeichnung zur Identifizierung der Datenbank.

ConnectSQLite(fileName)
Erstellt oder öffnet eine SQLite Datenbank (Intern: DataBase#).
Dies ist vor allen weiteren SQL Methoden aufzurufen.
Wird eine Tabelle erstellt, so muß deren erste Spalte "Id INTEGER PRIMARY KEY" sein.

fileName Der volle Pfad zur SQLite Datenbankdatei (gewöhnlich mit Erweiterung .db).
returns Eine Bezeichnung zur Identifizierung der Datenbank.

ConnectSqlServer(server,database)
Verbinden zu einer SqlServer Datenbank (Intern: DataBase#).
Dies ist vor allen weiteren SQL Methoden aufzurufen.
Der SqlServer Dienst muß laufen und die Datenbank (mitsamt Anmeldeinformationen) bereits erstellt sein. Im Zweifel verwende SQLite.

server Der SqlServer Server (zB. "(local)\SQLEXPRESS").
database Der Name der SqlServer Datenbank.
returns Eine Bezeichnung zur Identifizierung der Datenbank.

EditTable(database,table,dataview)
Anzeige einer Datenbanktabelle zur Bearbeitung in einem 'LDControls' DataView Steuerelement.
Bei Verwendung dieser Methode ist die Datenbank an das DataView Steuerelement gebunden und wird darin gespiegelt.

database Die Bezeichnung der bestehenden Datenbank (s. ConnectSQLite, ConnectMySQL, ConnectSqlServer, ConnectOleDb oder ConnectOdbc).
table Der Tabellenname für die Anzeige und Bearbeitung.
dataview Der Name des DataView Steuerelements.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

Query(database,query,listview,getRecords)
Führt eine SQLite, MySQL, SqlServer, OleDb oder Odbc Abfrage (keinen Befehl) an einer Datenbank durch.
database Bezeichnung der bestehenden Datenbank (s. ConnectSQLite, ConnectMySQL, ConnectSqlServer, ConnectOleDb oder ConnectOdbc).
query Die SQL Abfrage. zB. "SELECT * FROM myTable;".
listview Eine ListView, um diese mit dem Abfrageergebnis aufzufüllen oder "" für keine.
getRecords Optionale Rückgabe eines Arrays mit den Ergebnissen? "True" oder "False".
Beachte, daß große mehrdimensionale Arrays in SB langsam sind.

returns Optionaler Array mit den Ergebnissen oder "".

SaveTable(database,dataview)
Übernimmt Änderungen in einer 'LDControls' DataView in die Datenbank.
database Die Bezeichnung der bestehenden Datenbank (s. ConnectSQLite, ConnectMySQL, ConnectSqlServer, ConnectOleDb oder ConnectOdbc).
dataview Der Name des DataView Steuerelements.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

LDDateTime
Zeit- und Datumskonvertierungen.

Datumsformat ist zB. "25.01.2012 22:18:52" (DE) und hängt von lokalen Benutzereinstellungen ab.
Der Zeitteil ist optional.
Format für USA wäre zB. "01/25/2012 22:18:52".

Ein OADatum (Ole Automation Date) zeigt die Anzahl der Tage (incl. Teile angebrochener Tage), die seit Sa, 30.12.1899 00:00:00 vergangen sind.
Somit lassen sich Daten einfach addieren oder subtrahieren.


Add FromOADate GetDay
GetDayName GetHour GetMinute
GetMonth GetMonthName GetSecond
GetYear Now NowOADate
OADate Subtract ToOADate

Add(date,offset)
Ermittelt ein Datum aus einem angegebenen Datum und einem Zeitraum in Tagen.
date Das Kalenderdatum.
offset Der -/+ Zeitraum in Tagen.
returns Das Zieldatum, resultierend aus vorgegebenem Datum und gegebener Differenz an Tagen.

Datumsformat ist zB. "25.01.2012 22:18:52" (DE). Der Zeitteil ist optional.

example LDDateTime.Add("30.November 2011", 50)
Werden dem 30.November 2011 zB. 50 Tage hinzuaddiert, erhält man den 19.Januar 2012 (zB. als "19.01.12 00:00:00").


FromOADate(oaDate)
Konvertiert ein OADatum zu einem Kalenderdatum.
oaDate Das zu konvertierende OADatum (Vergangene und angebrochene Tage seit Sa, 30. Dez 1899 00:00).
returns Das Kalenderdatum.

Datumsformat ist zB. "25.01.2012 22:18:52" (DE). Der Zeitteil ist optional.
Der Datumsteil hängt von lokalen Einstellungen ab, für USA zB. "01/25/2012".

example FromOADate(0) ' "30.12.1899 00:00:00"

GetDay(oaDate)
Ermittelt die Tagnummer (im Monat) aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Die Tagnummer im Monat (1 bis 31).

GetDayName(oaDate)
Ermittelt den Wochentagname aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit Sa, 30. Dez 1899).
returns Der Wochentagname (zB. Montag).
example 'Kurzform, zB. Mo,Di,..,So
Text.GetSubText(LDDateTime.GetDayName(oa), 1,2)
'Starttag des OADatum
LDDateTime.GetDayName(0) 'Samstag


GetHour(oaDate)
Ermittelt die Stunde aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Die Stunde (0 bis 23).

GetMinute(oaDate)
Ermittelt die Minute aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Die Minute (0 bis 59).

GetMonth(oaDate)
Ermittelt die Monatsnummer aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Die Monatsnummer (1 bis 12).

GetMonthName(oaDate)
Ermittelt den Monatsname aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Der Monatsname (zB. Januar).
example 'Kurzform, zB. Jan,Feb,..,Dez
Text.GetSubText(LDDateTime.GetMonthName(oa), 1,3)


GetSecond(oaDate)
Ermittelt die Sekunde aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Die Sekunde (0 bis 59).

GetYear(oaDate)
Ermittelt die Jahreszahl aus einem OADatum (vergangene und angebrochene Tage seit 30. Dez 1899).
oaDate Das OADatum (Vergangene und angebrochene Tage seit 30. Dez 1899).
returns Die Jahreszahl (4-stellig).
example '2-stellig, zB. 14
Text.GetSubTextToEnd(LDDateTime.GetYear(oa), 3)


Now()
Ermittelt das aktuelle Datum und Uhrzeit.
returns Das aktuelle Datum und Uhrzeit [TT.MM.JJ hh:mm:ss].

Datumsformat ist zB. "25.01.2012 22:18:52" (DE), für USA zB. "01/25/2012 22:18:52")


NowOADate()
Ermittelt das OADatum für das aktuelle Datum (und Uhrzeit).
returns Die Anzahl der seit 30. Dez 1899 vergangenen und angebrochenen Tage [ttttt.ffffffffff].

OADate(year,month,day,hour,minute,second)
Ermittelt das OADatum (vergangene und angebrochene Tage seit Sa, 30. Dez 1899 00:00) aus einzelnen Datums- und Zeitangaben.
year Die Jahreszahl (als JJJJ, zB. 2014).
month Die Monatsnummer (zB. 4 od. 04).
day Die Tagnummer (zB. 4 od. 04).
hour Die Stunde (0 bis 23).
minute Die Minute (0 bis 59).
second Die Sekunde (0 bis 59).
returns Das OADatum (Vergangene und angebrochene Tage seit Sa, 30. Dez 1899 00:00).

Subtract(date1,date2)
Ermittelt die Anzahl der Tage zwischen zwei Kalenderdaten (Der Zeitteil ist optional).
date1 Das erste Kalenderdatum/-zeit (später).
date2 Das zweite Kalenderdatum/-zeit (früher).
returns Die Differenz als ganze und ev. angebrochene Tage (date1-date2). Für pos. Ergebnis, date1>date2 wählen.

ToOADate(date)
Konvertiert ein Kalenderdatum zu einem OADatum.
date Das zu konvertierende Datum (zB. Clock.Date, "02.8.14", "9.Aug 2014", "02.März.14", "7.1 2014" oder LDDateTime.Now)

Datumsformat ist zB. "25.01.2012 22:18:52" (DE). Der Zeitteil ist optional.
Der Datumsteil hängt von lokalen Einstellungen ab, für USA zB. "01/25/2012".

returns Das OADatum als Anzahl vergangener und angebrochener Tage seit Sa, 30. Dez 1899 00:00 bei Erfolg, sonst "" (und Fehlermeldung).
example ToOADate("30.12.1899 00:00:00") '0

LDDebug
Hilfsfunktionen zur Fehlersuche (Debugging).
example debug\*.sb

Break Instrument Start

Break(label)
Setzt an dieser Stelle manuell einen Breakpoint, an dem der Programmablauf angehalten wird und Variablen überprüft werden können.
label Die Bezeichnung für den Breakpoint.
Dies sollte ein String (in "", zB. "MeineMarkierung01") oder eine Indexnummer sein.
Jede Bezeichnung sollte einmalig sein, dh. jeder Breakpoint erhält eine eigene Markierung.
Für Breakpoints innerhalb Ereignis-Subs bestehen einige Einschränkungen.


Instrument(fileName)
Erstellt eine gleichnamige Datei 'NAME_debug.sb' mit automatisch eingesetzten Breakpoints.

Danach diese Datei in SB-IDE laden und zur Fehlersuche starten.
Bei Auftreten eines Problems, kann das Original leicht korrigiert werden. Danach erneut 'LDDebug.Instrument' aufrufen um diese korrigierte Datei weiter zu untersuchen.

fileName Der volle Pfad der zu debuggenden Originaldatei (*.sb).

Start()
Startet eine 'Debugging Sitzung' ('Debug SmallBasic' GUI wird dabei angezeigt).
Gewöhnlich steht dieser Befehl in der ersten Programmzeile.
Breakpoints (Zeilen an denen der Programmablauf unterbrochen wird) werden gewöhnlich vor Programmstart manuell eingetragen (LDDebug.Break). Die Methode 'LDDebug.Instrument' setzt diese Breakpoints allerdings auch automatisch ein.


LDDialogs
Verschiedene Methoden für Dialoge, Steuerelemente und Popup-Fenster.
example other-samples\ClockWidget.sb, RichTextBox.sb, RightClickMenu.sb

s. 'LDControls.IconSize' für Icongröße in 'AddRightClickMenu' (Ausgeblendet in IntelliSense)


AddRightClickMenu Calendar Colour
Confirm EndWait Font
GetFolder LastRightClickMenuItem OpenFile
RightClickMenu SaveFile SetStartupPosition
ToolTip Wait

AddRightClickMenu(items,images)
Fügt ein Rechtsklick-Kontextmenü für das GraphicsWindow hinzu (s.a. LDControls.AddContextMenu). GraphicsWindow MUSS initialisiert sein.
Ein-/Ausblenden durch (Rechts)klick oder 'Apps' Taste.

items Die Titel der Auswahlpunkte im Kontextmenü als Array.
images Optionaler Array von Bildsymbolen. Jedes oder alle können "" sein. zB. Ergebnis von ImageList.LoadImage, lokale oder Netzwerk-Bilddatei (Standardgröße: 32x32 Pxl, zum Ändern s. 'LDControls.IconSize').

Calendar(start)
Zeigt einen Kalender-Dialog zur Datumsauswahl. Doppelklick oder Eingabe-Taste zur Auswahl eines Datums.
start Das zunächst angezeigte Datum (zB. "TT.MM.JJ") oder "" für aktuelles (heute, Clock.Date).
returns Das gewählte Datum in der Form TT.MM.JJ 00:00:00, das Startdatum bei Abbruch.

Colour()
Zeigt einen Dialog zur Farbauswahl (s. LDColours).
returns Die gewählte Farbe als #RRGGBB HexWert oder SB-Farbname (CSS3-Farbname, zB. Red) wenn zutreffend. "" bei Abbruch.
example http://msdn.microsoft.com/library/System.Windows.Media.Colors.aspx
http://i.msdn.microsoft.com/dynimg/IC24340.png


Confirm(text,title)
Zeigt einen Mitteilungsdialog mit Buttons 'Ja', 'Nein' und 'Abbruch' (mit Fragezeichensymbol, 'Ja' Button ist voraktiviert) und wartet auf Bestätigung.
Erlaubt Tastendrücke 'J̲', 'N̲', 'Escape (Cancel)', 'Space/Return (J̲)' und Pfeiltasten. Unabhängig vom GW.

text Der Mitteilungs-/Abfragetext im Dialogfenster.
title Der Titel des Dialogfensters.
returns "Yes", "No" oder "Cancel" für den gedrückten Button. "Cancel" bei Schließen per 'X' Feld.

EndWait()
Schließt das 'Bitte warten!' Popup-Fenster wieder.

Font(font)
Zeigt einen Dialog zur Auswahl einer Schriftart.
font Die vorgewählten Schrifteigenschaften als Array (gleiches Format wie Rückgabearray) oder "".
returns "" bei Abbruch, sonst die gewählten Schrifteigenschaften als Array:
schrift[1] Schriftname
schrift[2] Schriftgröße
schrift[3] Schriftstil Fett? "True" oder "False"
schrift[4] Schriftstil Kursiv? "True" oder "False"


GetFolder(initialFolder)
Zeigt einen Dialog zur Auswahl eines bestehenden Ordners (Verzeichnisses, s. 'LDShell.SelectFolder').
initialFolder Der Startordner oder "" für zuletzt gewählten Ordner bzw. Arbeitsplatz. Für Ordner unter den Benutzerprofilen ist C:\Documents and Settings\.. statt C:\Users\.. anzugeben (W7).
returns Der volle gewählte Ordnerpfad oder "" bei Abbruch.

LastRightClickMenuItem
Der Index des zuletzt im Rechtsklick-Kontextmenü gewählten Auswahlpunktes.

OpenFile(extension,folder)
Zeigt einen Dialog zum Öffnen einer bestehenden Datei (url, lnk nicht).
extension Die Dateierweiterung (ohne Punkt) zum Öffnen zB."sb" oder "*".
Oder Array mit Erweiterungen zB. "1=jpg;2=png;" (Standard: extension[1]).
Nach einem "|" Trennzeichen werden Erweiterungen direkt verwendet. zB. "Bilddateien|*.bmp;*.gif;*.jpg;*.png|Alle Dateien (*.*)|*.*".
"" zeigt nur Ordner und Verknüpfungen (lnk, url).

folder Der Startordner bei Öffnen des Dialogs. "" für aktuellen/letzten Ordner.
Unter Benutzerprofilen öffnet ev. entsprechende Bibliothek, sonst für Direktpfad hier C:\Documents and Settings\.. statt C:\Users\.. angeben (W7).

returns Der volle existierende Dateipfad oder "" bei Abbruch.

RightClickMenu
Ereignisaufruf bei Auswahl eines Punktes im Rechtsklick-Kontextmenü.

SaveFile(extension,folder)
Zeigt einen Dialog zum Speichern/Erstellen einer Datei. Mit Rückfrage/Bestätigung wenn Datei bereits besteht.
extension Die Dateierweiterung (ohne Punkt) zum Speichern zB."sb" oder "*".
Oder Array mit Erweiterungen zB. "1=jpg;2=png;" (Standard: extension[1]).
Nach einem "|" Trennzeichen werden Erweiterungen direkt verwendet. zB. "Bilddateien|*.bmp;*.gif;*.jpg;*.png|Alle Dateien (*.*)|*.*".
"" zeigt nur Ordner und Verknüpfungen (lnk, url).

folder Der Startordner bei Öffnen des Dialogs, "" für aktuellen/letzten Ordner.
Unter Benutzerprofilen öffnet ev. entsprechende Bibliothek, sonst für Direktpfad hier C:\Documents and Settings\.. statt C:\Users\.. angeben (W7).

returns Der volle gewählte Dateipfad oder "" bei Abbruch.

SetStartupPosition(x,y,mode)
Setzt die Startkoordinaten (linke obere Ecke) für die meisten Dialoge. Ist vor dem Dialogaufruf zu setzen.
x Die x-Koordinate.
y Die y-Koordinate.
mode Der Bezugsmodus:
0 Inaktiv (Standard).
1 Koordinaten relativ zum GraphicsWindow (gemäß GW.MouseX/.MouseY).
2 Koordinaten relativ zum Bildschirm (gemäß Desktop.MouseX/.MouseY).


ToolTip(shapeName,tip)
Setzt/Ändert einen Tooltip (Infotip Kontextinfo) für eine Shape oder Steuerelement.
shapeName Der Name der Shape/Steuerelement.
tip Der im Tooltip anzuzeigende Text (Systemstandard für Farbe und Schrifteigenschaften).

Wait(text,colour)
Zeigt ein rahmenloses 'Bitte warten!' Popup-Fenster mit einer Nachricht (ohne Button). GW wird währenddessen blockiert.
text Die anzuzeigende Nachricht im Popup Fenster.
colour Die Randfarbe des Popup-Fensters, "" für lokale Systemeinstellung.

LDDictionary
Ermöglicht den Zugriff auf einen Online Lexikon-Dienst.
Alternative für das SB Dictionary Objekt (Fehlschlag in SB 1.0).

example http://rr.office.microsoft.com/Research/query.asmx (Research WebService)

GetDefinition GetDefinitionInFrench GetDefinitionInSpanish
Url

GetDefinition(word)
Ermittelt die Definition zu einem Wort in Englisch.
word Das zu definierende Wort.
returns Die Definition(en) zum angegebenen Begriff bei Erfolg, sonst "".

GetDefinitionInFrench(word)
Ermittelt die Definition zu einem Wort in Französisch.
word Das zu definierende Wort.
returns Die Definition(en) zum angegebenen Begriff bei Erfolg, sonst "".

GetDefinitionInSpanish(word)
Ermittelt die Definition zu einem Wort in Spanisch.
word Das zu definierende Wort.
returns Die Definition(en) zum angegebenen Begriff bei Erfolg, sonst "".

Url
Ermittelt oder setzt die Webadresse für MS Office Suchabfrage (OfficeResearch, Ausgeblendet in IntelliSense).

LDEffect
Anwenden visueller Effekte für eine beliebige Shape (zB. "_turtle" Bild) oder Control/Steuerelement.
example http://msdn.microsoft.com/library/system.windows.media.effects.aspx
http://msdn.microsoft.com/library/microsoft.expression.media.effects.aspx


Bloom Blur Clear
ColourTone DropShadow Embossed
Magnify Monochrome Pixelate
Ripple Sharpen Swirl

Bloom(shapeName,properties)
Wendet einen Glüheffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
BaseIntensity (Strd: 1)
BaseSaturation (Strd: 1)
BloomIntensity (Strd: 1.25)
BloomSaturation (Strd: 1)
Threshold (Strd: 0.25)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.bloomeffect.aspx

Blur(shapeName,properties)
Wendet einen Verwischungseffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
KernelType (Strd: "Gaussian" oder "Box")
Radius (Strd: 5)

example http://msdn.microsoft.com/library/system.windows.media.effects.blureffect.aspx

Clear(shapeName)
Löscht angewendete Effekte von einer Shape.
shapeName Der Name der Shape deren Effekte zu entfernen sind.

ColourTone(shapeName,properties)
Wendet einen Einfärbungseffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Desaturation (Strd: 0.5)
ToneAmount (Strd: 0.5)
LightColor (Strd: "#FFE580")
DarkColor (Strd: "#338000")

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.colortoneeffect.aspx

DropShadow(shapeName,properties)
Wendet einen perspektivischen Schlagschatten Effekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
BlurRadius (Strd: 5)
Color (Strd: "Black")
Direction (Strd: 315)
Opacity (Strd: 1)
ShadowDepth (Strd: 5)

example http://msdn.microsoft.com/library/system.windows.media.effects.dropshadoweffect.aspx

Embossed(shapeName,properties)
Wendet einen Prägeeffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Amount (Strd: 3)
Color (Strd: "Gray")
Height (Strd: 0.001)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.embossedeffect.aspx

Magnify(shapeName,properties)
Wendet einen Lupeneffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein 2D Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Amount (Strd: 0.5)
Center (Strd: "X=0.5;Y=0.5;")
InnerRadius (Strd: 0.2)
OuterRadius (Strd: 0.4)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.magnifyeffect.aspx

Monochrome(shapeName,properties)
Wendet einen Farbfilter Effekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Color (Strd: "White")

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.monochromeeffect.aspx

Pixelate(shapeName,properties)
Wendet einen Verpixelungseffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Pixelation (Strd: 0.75)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.pixelateeffect.aspx

Ripple(shapeName,properties)
Wendet einen Welleneffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein 2D Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Center (Strd: "X=0.5;Y=0.5;")
Frequency (Strd: 40)
Magnitude (Strd: 0.1)
Phase (Strd: 10)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.rippleeffect.aspx

Sharpen(shapeName,properties)
Wendet einen Bildschärfe Effekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
Amount (Strd: 2)
Height (Strd: 0.0005)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.sharpeneffect.aspx

Swirl(shapeName,properties)
Wendet einen Wirbeleffekt für eine Shape an.
shapeName Der Name der Shape.
properties Ein 2D Array optionaler Eigenschaften (indexiert durch Eigenschaftsname) oder "":
AngleFrequency (Strd: 45)
Center (Strd: "X=0.5;Y=0.5;")
TwistAmount (Strd: 10)

example http://msdn.microsoft.com/library/microsoft.expression.media.effects.swirleffect.aspx

LDEmail
Methoden zum Senden von eMails.

Attachment Body From
Password Port Recipient
Send Server Subject
UseSSL

Attachment
Ermittelt oder setzt den Dateipfad für optionalen eMail-Anhang oder "".

Body
Ermittelt oder setzt den Nachrichtentext der eMail.

From
Ermittelt oder setzt die eMail-Adresse des Absenders.

Password
Ermittelt oder setzt das Passwort für das eMail-Senderkonto .

Port
Ermittelt oder setzt die SMTP Portnummer (Standard: 587).

Recipient
Ermittelt oder setzt die eMail-Adresse des Empfängers.

Send()
Versenden einer eMail per SMTP Server.
Voreingestellter SMTP Klient ist "smtp.gmail.com" und voreingestellter Port ist 587. Folgende und auch weitere eMail-Klienten können ebenso funktionieren:
"smtp.live.com" (Hotmail)
"smtp.mail.yahoo.com"

Ein Minimum der "From, Password und Recipient"- Eigenschaften muß zuerst festgelegt werden.
Die "From" und "Password"-Eigenschaften sollten den LogIn-Daten des eMail-Anbieters entsprechen.
Zusätzlich sollten "Subject" (Betreff) und "Body" (Textinhalt der eMail) festgelegt werden.
Die "Attachment" (Anhang)-Eigenschaft kann optional einen Dateipfad oder "" für keinen Anhang enthalten.

Es kann nicht mehr als EINE eMail/min versandt werden.

returns "" bei Erfolg, sonst eine Fehlermeldung.

Server
Ermittelt oder setzt die SMTP Serveradresse (Standard: "smtp.gmail.com").

Subject
Ermittelt oder setzt den 'Betreff' Text (Standard: "Email from SmallBasic").

UseSSL
Ermittelt oder setzt die Verwendung einer sicheren Übertragung? "True" (Standard) oder "False".

LDEncryption
Methoden zur Dateiverschlüsselung (Ver-/Entschlüsseln von Text oder Passwort) und Generieren von Prüfsummen.
example other-samples/LDEncryption.sb

AESDecrypt AESEncrypt MD5Hash
MD5HashFile RSADecrypt RSAEncrypt
RSAPrivateKey RSAPublicKey RSAReset
RSASign RSAVerify SHA512Hash
SHA512HashFile

AESDecrypt(cypher,password)
Entschlüsselt eine AES/Rijndael verschlüsselte Chiffre (zuvor verschlüsselt) durch einen Passwortschlüssel.
cypher Der verschlüsselte Text (Chiffre).
password Der Passwortschlüssel von der Verschlüsselung.
returns Der unverschlüsselte Originaltext oder "", falls Passwort und Cypher nicht kombinieren.

AESEncrypt(source,password)
Verschlüsselt einen Text mittels AES/Rijndael Verschlüsselung und einem Passwortschlüssel.
Der verschlüsselte Text kann daraufhin in einer Datei gespeichert werden.
Beachte, daß bei Verlust des Passwortes KEINE MÖGLICHKEIT der Entschlüsselung mehr besteht!

source Der zu verschlüsselnde Text.
password Der Passwortschlüssel für die Verschlüsselung oder "".
returns Der verschlüsselte Text (Chiffre).
example http://de.wikipedia.org/wiki/Advanced_Encryption_Standard

MD5Hash(text)
Erstellt eine 32-stellige MD5 Prüfsumme für den angegebenen Text. String-Hash (http://de.wikipedia.org/wiki/MD5)
Der Hash kann daraufhin in eine Datei gespeichert werden.
Dieser 32-stellige Hash empfiehlt sich, wo ein allgemeiner oder kürzerer Hash erforderlich ist (Passwort oder Datenintegrität).

text Der Text für den der MD5Hash generiert wird (oft ein Passwort).
returns Der 32-stellige Hex-MD5Hash.
example http://de.wikipedia.org/wiki/Message-Digest_Algorithm_5

MD5HashFile(fileName)
Erstellt eine MD5 Prüfsumme für eine angegebene Datei.
Dieser 32-stellige Hash dient zur Integritätsprüfung von Dateidaten (zB. Dateiinhalt (un)verändert?).

fileName Der volle Dateipfad zur Ermittlung des Hashwertes.
returns Der 32-stellige Hex MD5 Hash.

RSADecrypt(encrypted)
Entschlüsselt eine RSA Nachricht.
Erfordert, daß ein persönlicher Schlüssel gesetzt ist.
Ist keiner gesetzt, so wird nur für diese Sitzung ein Schlüssel erstellt und verwendet.

encrypted Die verschlüsselte Nachricht (Chiffre).
returns Der unverschlüsselte Originaltext.

RSAEncrypt(unencrypted)
Verschlüsselt eine RSA Nachricht.
Erfordert, daß ein öffentlicher Schlüssel gesetzt ist (Jeder kann mit öffentlichem Schlüssel verschlüsseln).
Ist keiner gesetzt, so wird nur für diese Sitzung ein Schlüssel erstellt und verwendet.

unencrypted Der zu verschlüsselnde Text.
returns Die verschlüsselte Nachricht (Chiffre).
example http://de.wikipedia.org/wiki/RSA-Kryptosystem

RSAPrivateKey
Ermittelt oder setzt einen persönlichen RSA Schlüssel.

RSAPublicKey
Ermittelt oder setzt einen öffentlichen RSA Schlüssel.

RSAReset()
Ersetzt den persönlichen und öffentlichen Schlüssel (Zufallsprinzip).

RSASign(data)
Signiert eine RSA Nachricht.
Erfordert, daß ein persönlicher Schlüssel gesetzt ist (Nur der Verfasser kann mit persönlichem Schlüssel signieren).
Ist keiner gesetzt, so wird nur für diese Sitzung ein Schlüssel erstellt und verwendet.

data Die zu signierende Nachricht.
returns Die Signatur für die Nachricht.

RSAVerify(data,sign)
Verifiziert eine signierte RSA Nachricht.
Erfordert, daß ein öffentlicher Schlüssel gesetzt ist (Jeder kann mit öffentlichem Schlüssel verifizieren).
Ist keiner gesetzt, so wird nur für diese Sitzung ein Schlüssel erstellt und verwendet.

data Die signierte Nachricht.
sign Die Signatur für die Nachricht.
returns "True" oder "False".

SHA512Hash(password)
Erstellt eine SHA512 Prüfsumme für eine Texteingabe.
Dieser 128-stellige Hash empfiehlt sich zur sichersten Passwortverschlüsselung.

password Der Text für den der Hash generiert wird (oft ein Passwort).
returns Der 128-stellige Hex-SHA512 Hash.
example http://de.wikipedia.org/wiki/SHA-2

SHA512HashFile(fileName)
Erstellt eine SHA512 Prüfsumme für eine angegebene Datei.
Dieser 128-stellige Hash dient zur Integritätsprüfung von Dateidaten (zB. Dateiinhalt (un)verändert?).

fileName Der volle Dateipfad zur Ermittlung des Hashwertes.
returns Der 128-stellige Hex SHA512 Hash.

LDEvents
Zusätzliche Ereignisaufrufe für Maus, GraphicsWindow und Dateisystem.
Für weitere Tastaturereignisse s. LDTextWindow.KeyDown und .KeyUp (mit .LastKey, LowLevel für GW u/o TW dh. auch OHNE Fensterfokus).

example graph_samples\graph-shapes.sb, graph-statistics.sb

Error FileChange FileFilter
FilePath LastError LastFileChanged
LastFileChangeType LastMouseWheelDelta MouseDoubleClick
MouseWheel Resized

Error
Ereignisaufruf bei Auftreten eines Fehlers bei einer LD Methode (LitDev Erweiterung).
Dies ist zusätzlich zu Warnungen im TextWindow, welche mit LDUtilties.ShowErrors, LDUtilties.ShowFileErrors und LDUtilties.ShowNoShapeErrors abgeschaltet werden können.


FileChange
Ereignisaufruf wenn eine Datei erstellt, geändert oder gelöscht wurde.
Das Verzeichnis (s. FilePath) und Dateifilter (s. FileFilter) müssen zuvor festgelegt werden, damit dieses Ereignis registriert werden kann.


FileFilter
Ermittelt oder setzt den Dateifilter für die mit LDEvents.FileChange zu überwachenden Dateitypen (Standard: "*.*").

FilePath
Ermittelt oder setzt das Stammverzeichnis welches von LDEvents.FileChange zu überwachen ist (Standard: "C:").

LastError
Ermittelt den Inhalt der letzten aufgetretenen Fehlermeldung.

LastFileChanged
Ermittelt den vollen Pfad der zuletzt geänderten Datei.

LastFileChangeType
Ermittelt die Art der letzten Änderung ("Created", "Changed" oder "Deleted" falls die letzte Datei erstellt, geändert oder gelöscht wurde).

LastMouseWheelDelta
Ermittelt die letzte Drehrichtung des Mausrades im GraphicsWindow (1/-1 für auf/ab bzw. vor/zurück, je Schritt).
example 'GW/Bild/Shape zoomen:
f = 1 'Faktor
dZ = 1.1 'Zoom delta
w = GraphicsWindow.Width
h = GraphicsWindow.Height
LDEvents.MouseWheel = OnWheel

Sub OnWheel
f = f * Math.Power(dZ, LDEvents.LastMouseWheelDelta)
f = Math.Round(100*f)/100 '2 Dez.
GraphicsWindow.Width = f*w
GraphicsWindow.Height = f*h
EndSub


MouseDoubleClick
Ereignisaufruf wenn ein (nur) Doppelklick im GraphicsWindow erfolgt (sowohl Doppelklick links wie rechts, ZeitDiff gemäß Systemeinstellung 500 ms).

MouseWheel
Ereignisaufruf wenn das Mausrad im GraphicsWindow gedreht wird (nicht bei Klick auf Mausrad, s. 'LastMouseWheelDelta').

Resized
Ereignisaufruf wenn die Größe des GraphicsWindow geändert wird (auch für 'Maximieren' und 'Verkleinern', nicht bei 'Minimieren').
example graph_samples\graph-statistics.sb
other-samples\RichTextBox.sb

LDEvents.Resized = OnResize
While "True"
If resz Then
resz = ""
Controls.SetSize(tb, GraphicsWindow.Width-20,22)
EndIf
Program.Delay(20)
EndWhile

Sub OnResize
resz = "True"
EndSub


LDFastArray
Bietet weitere schnellere Wege zum Speichern von Werten in Arrays (inkompatibel zu SB Arrays).
Verarbeitet 1D, 2D, 3D und höher dimensionale Arrays und bietet Methoden zum Lesen und Schreiben von Arrays in Dateien, incl. CSV Format.
Weiters geeignet für verschiedene Dimensionen oder Elementanzahl in unterschiedlichen Reihen (Unterarrays, nicht rechteckige/irrreguläre/'Jagged' Arrays), wie in SB Arrays.
Interne Verwendung von Listen, welche es erlauben, die Anfangsgrößen zu erhöhen, sodaß die Arraydimension oder -größe anfangs nicht gesetzt werden müssen. Unterstützt auch Leerwerte ("").
Ganzzahlige Indexierung ab 1 (Intern: FastArray#, s. LDArray).
Für 1D Arrays ist 'LDList' wegen zusätzlicher Sortiermethoden besser geeignet.
Elemente in Arrays mit Dimension > 3 werden indexiert durch eine 'Komma getrennte Liste' von Indizes oder Index Variablennamen.


Add Collapse Copy
CreateFromIndices CreateFromValues Dimension
Get Get1D Get2D
Get3D Read ReadCSV
Remove Set Set1D
Set2D Set3D Size
Size1 Size2 Size3
ToArray Write WriteCSV

Add()
Erstellt einen neuen FastArray (Intern: FastArray#+1).
Dies ist ein allgemeiner Array zur Verwendung als 1D, 2D, 3D oder höher dimensionaler Array, abhängig von der Datenbesetzung.

returns Der Name des neuen FastArray.

Collapse(arrayName)
Entfernt alle Leereinträge ("") in einem FastArray.
Beachte daß sich Indizes oder ganze Dimensionen ändern können, wenn interne Einträge gelöscht werden.

arrayName Der Name des FastArray.

Copy(arrayName)
Kopiert einen FastArray in einen neuen FastArray (Intern: FastArray#+1).
arrayName Der Name des zu kopierenden FastArray.
returns Der Name des neuen FastArray.

CreateFromIndices(sbArray)
Konvertiert einen SB Array (bis zu 3 Dimensionen) zum entsprechenden FastArray (Intern: FastArray#+1).
Diese Methode erstellt einen FastArray nur aus den Indizes des SB Array.

sbArray Der Name des SB Arrays.
returns Der Name des neuen FastArray bei Erfolg, sonst "".

CreateFromValues(sbArray)
Konvertiert einen SB Array zum entsprechenden FastArray (Intern: FastArray#+1).
Alle Indizes im SB Array werden durch fortlaufende ganzzahlige Indizes (ab 1) ersetzt.

sbArray Der Name des SB Arrays.
returns Der Name des neuen FastArray bei Erfolg, sonst "".

Dimension(arrayName)
Ermittelt die Dimension eines FastArray.
arrayName Der Name des FastArray.
returns Die Dimension des FastArray bei Erfolg, sonst 0.

Get(arrayName,indices)
Ermittelt einen Arraywert.
Die Methoden Get1D, Get2D oder Get3D sind etwas schneller für Arrays kleinerer Dimensionen.

arrayName Der Name des FastArray.
indices Eine Komma- (oder Leerzeichen " ") getrennte Liste von Indexwerten (langsamer) oder Index Variablennamen (schneller).
zB. "3,2,6" oder "i j k".
Wenn auf "" gesetzt, dann werden zuvor gesetzte Indexvariablen verwendet.

returns Der ermittelte Arraywert bei Erfolg, sonst "".

Get1D(arrayName,index1)
Ermittelt einen 1D Wert in einem FastArray.
arrayName Der Name des FastArray.
index1 Der ganzzahlige Index in der 1. Dimension.
returns Der Arraywert bei Erfolg, sonst "".

Get2D(arrayName,index1,index2)
Ermittelt einen 2D Wert in einem FastArray.
arrayName Der Name des FastArray.
index1 Der ganzzahlige Index in der 1. Dimension.
index2 Der ganzzahlige Index in der 2. Dimension.
returns Der Arraywert bei Erfolg, sonst "".

Get3D(arrayName,index1,index2,index3)
Ermittelt einen 3D Wert in einem FastArray.
arrayName Der Name des FastArray.
index1 Der ganzzahlige Index in der 1. Dimension.
index2 Der ganzzahlige Index in der 2. Dimension.
index3 Der ganzzahlige Index in der 3. Dimension.
returns Der Arraywert bei Erfolg, sonst "".

Read(fileName,binary)
Erstellt einen neuen FastArray aus den Daten einer angegebenen Datei (Intern: FastArray#+1).
Für eine textbasierte Datei mit anderem Indexierungsformat wie 'Write', wird ein 1D Array mit jeder Zeile erstellt.

fileName Der volle Pfad der zu ladenden Datei.
binary Als Binärdatei laden? "True" oder "False" (Standard, Textdatei).
returns Der Name des neuen FastArray.

ReadCSV(fileName)
Einlesen einer CSV (comma separated values) Datei in einen 2D FastArray (Intern: FastArray#+1).
Das Trennzeichen (Standard: "," Komma) kann mit LDUtilities.CSVDeliminator geändert werden.

fileName Der volle Pfad der CSV Datei.
returns Ein 2D FastArray mit den importierten Daten der CSV Datei bei Erfolg, sonst "".

Remove(arrayName)
Löscht einen bestehenden FastArray.
arrayName Der Name des FastArray.

Set(arrayName,indices,value)
Setzt einen Arraywert.
Die Methoden Set1D, Set2D oder Set3D sind etwas schneller für Arrays kleinerer Dimensionen.

arrayName Der Name des FastArray.
indices Eine Komma- (oder Leerzeichen " ") getrennte Liste von Indexwerten (langsamer) oder Index Variablennamen (schneller).
zB. "3,2,6" oder "i j k".
Wenn auf "" gesetzt, dann werden zuvor gesetzte Indexvariablen verwendet.

value Der zu setzende Arraywert.

Set1D(arrayName,index1,value)
Setzt einen 1D Wert in einem FastArray.
arrayName Der Name des FastArray.
index1 Der ganzzahlige Index in der 1. Dimension.
value Der zu setzende Arraywert.

Set2D(arrayName,index1,index2,value)
Setzt einen 2D Wert in einem FastArray.
arrayName Der Name des FastArray.
index1 Der ganzzahlige Index in der 1. Dimension.
index2 Der ganzzahlige Index in der 2. Dimension.
value Der zu setzende Arraywert.

Set3D(arrayName,index1,index2,index3,value)
Setzt einen 3D Wert in einem FastArray.
arrayName Der Name des FastArray.
index1 Der ganzzahlige Index in der 1. Dimension.
index2 Der ganzzahlige Index in der 2. Dimension.
index3 Der ganzzahlige Index in der 3. Dimension.
value Der zu setzende Arraywert.

Size(arrayName,indices)
Ermittelt die aktuelle Größe/Länge einer Dimension.
Die Methoden Size1, Size2 or Size3 sind etwas schneller für Arrays kleinerer Dimensionen.

arrayName Der Name des FastArray.
indices Eine Komma- (oder Leerzeichen " ") getrennte Liste von Indizes.
zB. "" für erste Dimension oder "3" für zweite Dimension des 3. Elementes in der 1. Dimension.

returns Die Dimensionsgröße bei Erfolg, sonst 0.

Size1(arrayName)
Ermittelt die aktuelle Größe/Länge der ersten Dimension.
arrayName Der Name des FastArray.
returns Die Dimensionsgröße bei Erfolg, sonst 0.

Size2(arrayName,index1)
Ermittelt die aktuelle Größe/Länge der zweiten Dimension.
arrayName Der Name des FastArray.
index1 Der erste Index dessen Größe zu ermitteln ist. Kann 1 sein, wenn alle Reihen gleiche Größe haben.
returns Die Dimensionsgröße bei Erfolg, sonst 0.

Size3(arrayName,index1,index2)
Ermittelt die aktuelle Größe/Länge der dritten Dimension.
arrayName Der Name des FastArray.
index1 Der erste Index dessen Größe zu ermitteln ist. Kann 1 sein, wenn alle Reihen gleiche Größe haben.
index2 Der zweite Index dessen Größe zu ermitteln ist. Kann 1 sein, wenn alle Reihen gleiche Größe haben.
returns Die Dimensionsgröße bei Erfolg, sonst 0.

ToArray(arrayName)
Konvertiert einen FastArray zu einem SB Array.
arrayName Der Name des FastArray.
returns Der Name des neuen SB Arrays bei Erfolg, sonst "".

Write(arrayName,fileName,binary)
Speichert einen FastArray in eine Datei.
Für einen textbasierten 1D Array, wird jeder Eintrag nur als Zeile (ohne Indexierung) geschrieben.

arrayName Der Name des FastArray.
fileName Der volle Pfad der zu speichernden Datei.
binary Als Binärdatei speichern? "True" oder "False" (Standard, Textdatei).

WriteCSV(arrayName,fileName)
Speichert einen 2D FastArray in eine CSV (comma separated values) Datei.
Das Trennzeichen (Standard: "," Komma) kann mit LDUtilities.CSVDeliminator geändert werden.

arrayName Der Name des 2D FastArray.
fileName Der volle Pfad der CSV Datei.

LDFastShapes
Schnellere Shape Methoden als die Standard SB Shape Operationen.
Vorrangig zur Bewegung einer großen Anzahl von Shapes, die in einem GameLoop (Hauptschleife) aktualisiert werden.
Es werden nur die Haupt-Shapebefehle unterstützt, da es diejenigen sind, die im Allgemeinen oft wiederholt werden.
Die Shape wird zuerst erstellt, dann registriert (ShapeIndex) und der dabei zurückgegebene, ganzzahlige Index wird für die weiteren Methoden verwendet.
Die visuelle Aktualisierung der erfolgten Änderungen erfolgt dann erst nach Aufruf von 'Update', wodurch alle Änderungen gemeinsam stattfinden.
Leistungsverbesserung durch die gemeinsame, ganzzahlige Indexierung und Stapel-Aktualisierung.

example other-samples\LDFastShapes.sb

GetLeft GetOpacity GetTop
HideShape Move Rotate
SetOpacity ShapeIndex ShowShape
Update Zoom

GetLeft(index)
Ermittelt die linke Koordinate (Ankerpunkt) einer angegebenen Shape.
index Der Index der Shape (Rückgabewert von ShapeIndex).
returns Die linke Koordinate der Shape.

GetOpacity(index)
Ermittelt die Deckkraft einer Shape.
index Der Index der Shape (Rückgabewert von ShapeIndex).
returns Der Wert der Deckkraft (0 bis 100 [%]). 0 ist völlig transparent und 100 ist völlig deckend.

GetTop(index)
Ermittelt die obere Koordinate (Ankerpunkt) einer angegebenen Shape.
index Der Index der Shape (Rückgabewert von ShapeIndex).
returns Die obere Koordinate der Shape.

HideShape(index)
Blendet eine bereits hinzugefügte Shape aus.
index Der Index der Shape (Rückgabewert von ShapeIndex).

Move(index,x,y)
Verschiebt eine Shape mit dem angegebenen Name unmittelbar an eine neue Position.
index Der Index der zu verschiebenden Shape (Rückgabewert von ShapeIndex).
x Die x-Koordinate der neuen Position.
y Die y-Koordinate der neuen Position.

Rotate(index,angle)
Dreht die Shape mit dem angegebenen Name optisch in den angegebenen Winkel um ihren Mittel-/Schwerpunkt.
index Der Index der Shape (Rückgabewert von ShapeIndex).
angle Der Winkel [Grad] in den die Shape gedreht wird (+/- für im/gegen Uhrzeigersinn, 0 für Originalposition 12h).

SetOpacity(index,level)
Setzt die Deckkraft mit welcher eine Shape angezeigt wird.
index Der Index der Shape (Rückgabewert von ShapeIndex).
level Der Wert der Deckkraft (0 bis 100 [%]). 0 ist völlig transparent und 100 ist völlig deckend.

ShapeIndex(shapeName)
Registriert eine Shape zur Verwendung mit diesem Objekt.
Dieser Befehl ist potentiell langsam und sollte daher VOR den zeitkritischen visuellen Updates erfolgen.
zB. Erstelle und registriere alle Shapes vor Bewegungssimulationen.

shapeName Der Name der erstellten Shape.
returns Der Index (#) zur Weiterverwendung für andere Methoden dieses Objekts, oder -1 bei Fehler.
Der Index ist eine Ganzzahl beginnend ab 1, und um 1 erhöht für jede weitere registrierte Shape.


ShowShape(index)
Zeigt eine zuvor ausgeblendete Shape wieder an.
index Der Index der Shape (Rückgabewert von ShapeIndex).

Update()
Aktualisiert alle durch dieses Objekt gesetzten Shape-Eigenschaften, die seit letztem 'Update' verändert wurden.
Die Shapes werden solange nicht visuell aktualisiert, bis diese Methode aufgerufen wurde.


Zoom(index,scaleX,scaleY)
Vergrößert oder verkleinert eine Shape um die angegebenen Zoomwerte.
index Der Index der Shape (Rückgabewert von ShapeIndex).
scaleX Der Zoomfaktor in x-Richtung (<1 verkleinert, >1 vergrößert).
scaleY Der Zoomfaktor in y-Richtung (<1 verkleinert, >1 vergrößert).

LDFigures
Einige weitere Shapes wie Sprechblasen, Bögen und Pfeile (Intern: Figure#).

AddArc AddBlockArrow AddCallout
AddLineArrow AddRegularPolygon

AddArc(width,height,startAngle,endAngle,thickness)
Fügt eine Bogen Shape hinzu (Intern: Figure#).
width Die Breite der Shape.
height Die Höhe der Shape.
startAngle Der Startwinkel [Grad].
endAngle Der Endwinkel [Grad].
thickness Die Strichdicke des Bogens [Pxl].
returns Der Name der Bogen Shape.

AddBlockArrow(width,height,thickness,arrowAngle,direction)
Fügt eine Blockpfeil Shape hinzu (Intern: Figure#).
width Die Breite der Shape.
height Die Höhe der Shape.
thickness Die relative Dicke des Pfeilschaftes (zB. 0.25).
arrowAngle Der Winkel der Pfeilspitze [Grad].
direction Die Pfeilrichtung ("Up", "Down", "Left" oder "Right").
returns Der Name der Blockpfeil Shape.

AddCallout(width,height,text,style,anchor)
Fügt eine Ballon (Sprechblase/Legende) Shape hinzu (Intern: Figure#).
width Die Breite der Shape.
height Die Höhe der Shape.
text Der Text in der Sprechblase.
style Der Ballonstil ("Cloud", "Oval", "Rectangle" oder "RoundedRectangle").
anchor Die Ankerposition der Hinweisspitze, relativ zur Ballongröße (zB. "X=0;Y=1.25;"). Sind beide <1, zB. "x=0;y=0;", weist die Spitze nach innen und ist verborgen.
returns Der Name der Ballon Shape.

AddLineArrow(width,height,size,bend,startArrow,endArrow,startCorner)
Fügt eine Strichpfeil Shape hinzu (Intern: Figure#) mit Eigenschaften GraphicsWindow.PenColor/PenWidth.
width Die Breite der Shape.
height Die Höhe der Shape.
size Die Größe der Pfeilspitze [Pxl].
bend Die Stärke der Pfeilbiegung (zB. 0 ist gerade, 0.5 ist sanft gebogen).
startArrow Der Startpfeiltyp ("None", "Arrow", "Open", "Oval" oder "Stealth").
endArrow Der Endpfeiltyp ("None", "Arrow", "Open", "Oval" oder "Stealth").
startCorner Die Position der Startecke ("BottomLeft", "BottomRight", "TopLeft" oder "TopRight"). Der Pfeil endet in der gegenüberliegenden Ecke.
returns Der Name der Pfeil Shape.

AddRegularPolygon(width,height,corners,radius)
Fügt eine regelmäßige Vieleck Shape hinzu (Intern: Figure#).
S. LDShapes.AddPolygon, -AddStar, -AddRegularPolygon.

width Die Breite der Shape.
height Die Höhe der Shape.
corners Die Anzahl der Ecken.
radius Ein Radius (relativ zum Umkreisradius) für Stern Shapes (zB. 1 für Fünfeck, 0.5 für 5-Punkte Stern).
returns Der Name der Vieleck Shape.

LDFile
Diverse Funktionen zur Datei- und Ordnermanipulation.

AccessTime ANSItoUTF8 AppDataFolder
CopyDirectory CreationTime CSVplaceholder
DocumentsFolder Exists GetAllDirectories
GetExtension GetFile GetFolder
Length LoadAllVariables ModifiedTime
MusicFolder PicturesFolder PrintFile
PublicFolder ReadANSI ReadANSIToArray
ReadByteArray ReadCSV ReadCSVTransposed
ReadToArray RenameDirectory RenameFile
SaveAllVariables Size TempFolder
UserName WriteByteArray WriteCSV

AccessTime(fileName)
Ermittelt den letzten Zugriffszeitpunkt auf eine Datei (zB. TT.MM.JJ HH:mm:ss, gem. Systemeinst.).
fileName Der volle Pfad der Datei.
returns Der letzte Zugriffszeitpunkt auf Datei oder Verzeichnis bei Erfolg, sonst "" (zB. Datei existiert nicht).

ANSItoUTF8(fileName,bom)
Konvertiert eine ANSI kodierte Textdatei zu UTF8.
UTF8 ist die in SB verwendete Standardkodierung für Textdateien.
Sollte auch für andere Kodierungen funktionieren (s.a. ReadANSI(ToArray)).

fileName Der volle Pfad der zu konvertierenden Datei.
bom Byte Order Mark (BOM, 'EF BB BF') am Beginn der UTF8 Datei einfügen? "True" oder "False" (Standard). SB erstellt ohne BOM.
returns Der Pfad der konvertierten Datei (OrigName-UTF8.txt) bei Erfolg, sonst "" (zB. Kodierung wurde nicht richtig erkannt).

AppDataFolder
Ermittelt den Pfad des Ordners 'Anwendungsdaten' im Benutzerprofil (%APPDATA%, W7: %USERPROFILE%\AppData\Roaming).

CopyDirectory(directoryFrom,directoryTo)
Rekursives Kopieren eines Ordners mit gesamtem Inhalt (incl. Unterordner).
directoryFrom Der volle Pfad des Quellordners.
directoryTo Der volle Pfad des Zielordners.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

CreationTime(fileName)
Ermittelt den Erstellungszeitpunkt einer Datei (zB. TT.MM.JJ HH:mm:ss, gem. Systemeinst.).
fileName Der volle Pfad der Datei.
returns Der Erstellungszeitpunkt der Datei bei Erfolg, sonst "" (zB. Datei existiert nicht).

CSVplaceholder
Platzhalter-Zeichen welches beim Lesen von CSV Dateien (s. LDFile.ReadCSV..) anstelle leerer Arraywerte verwendet wird.
Ein SB-Array kann keine leeren Werte ("") speichern.
Standard: Leerstring "", dh. der resultierende Array enthält keine leeren Elemente aus der CSV Datei.

example 'Bei Leerzeilen in CSV, sonst Abbruch
LDFile.CSVplaceholder(" ")


DocumentsFolder
Ermittelt den Ordnerpfad für 'Eigene Dokumente' (W7: %USERPROFILE%\Documents).

Exists(fileName)
Ermittelt ob der angegebene Ordner- oder Dateipfad existiert (GROß-/kleinschr. egal, auch für relative Pfade ausgehend vom SB Installationsordner '.').
fileName Der absolute oder relative Ordner- oder Dateipfad (kein %EnvVar% Pfad).
returns "True" oder "False".
example LDFile.Exists("SB.exe") ' "True"
LDFile.Exists(".\lib") ' "True"
LDFile.Exists("\windows\notepad.exe") ' "True"


GetAllDirectories(path)
Ermittelt rekursiv alle Unterordner in einem angegebenen Ordner.
WARNUNG: Keinen vollen Laufwerkscan oä. ausführen, sondern überschaubare Ordnerstruktur wählen.

path Der volle Pfad des Basisordners.
returns Ein Array mit den vollen Pfaden aller Unterordner oder "FAILED".

GetExtension(fileName)
Ermittelt die Dateierweiterung aus einem lokalen oder Netzwerkpfad (auch für relative Pfade mit ".", "..", keine Existenzprüfung, auch für Ordner oder Url).
fileName Der (volle) Datei-/Ordnerpfad oder -name, zB. Program.Directory +"\..\Ordner\Datei.ext" (bzw. Dateiname.ext im aktuellen Ordner).
returns Die Dateierweiterung (ohne Punkt) oder "" (keine Erweiterung).
example url = http://www.microsoft.com/favicon.ico"
ext = LDFile.GetExtension(url) ' "ico"


GetFile(fileName)
Ermittelt den blanken Dateiname aus einem lokalen oder Netzwerkpfad (auch für relative Pfade mit ".", "..", keine Existenzprüfung, auch für Ordner oder Url).
fileName Der (volle) Datei-/Ordnerpfad, zB. Program.Directory +"\..\Ordner\Datei.ext" (bzw. Dateiname.ext im aktuellen Ordner).
returns Der reine Dateiname aus einem gegebenen Dateipfad (ohne Ordnerpfad\ und .ext), Ordnername für einen Ordnerpfad.
example fName = LDFile.GetFile(File.GetSettingsFilePath())
dName = LDFile.GetFile(Program.Directory)
wwwName = LDFile.GetFile("http://www.microsoft.com/favicon.ico")


GetFolder(fileName)
Ermittelt den Elternordnerpfad aus einem lokalen oder Netzwerkpfad (auch für relative Pfade mit ".", "..", keine Existenzprüfung, auch für Ordner oder Url).
fileName Der (volle) Datei-/Ordnerpfad, zB. "Program.Directory +"\..\Ordner\Datei.ext" (bzw. Dateiname.ext im aktuellen Ordner).
returns Der reine (ev. relative) Ordnerteil für den angegebenen Pfad (ohne abschließenden "\").
example url = http://www.microsoft.com/favicon.ico"
wwwPfad = LDFile.GetFolder(url)


Length(fileName)
Ermittelt die Anzahl der Zeilen (incl. Leerzeilen) in einer Textdatei. 0 bei Leerdatei. Abschließendes CrLf wird nicht mitgezählt.
fileName Der volle Pfad der Textdatei.
returns Die Zeilenanzahl in der Datei bei Erfolg, sonst -1 (zB. Datei existiert nicht, mit Fehlermeldung).

LoadAllVariables(fileName)
Stellt die Werte aller Variablen wieder her, wie diese zuvor mit 'SaveAllVariables' gespeichert wurden.
fileName Der volle Dateipfad unter dem die Variablenwerte zuvor gespeichert wurden (auch %EnvVar%).

ModifiedTime(fileName)
Ermittelt den letzten Änderungszeitpunkt einer Datei (zB. TT.MM.JJ HH:mm:ss, gem. Systemeinst.).
fileName Der volle Pfad der Datei.
returns Der letzte Änderungszeitpunkt der Datei bei Erfolg, sonst "" (zB. Datei existiert nicht).

MusicFolder
Ermittelt den Ordnerpfad für 'Eigene Musik' (W7: %USERPROFILE%\Music).

PicturesFolder
Ermittelt den Ordnerpfad für 'Eigene Bilder' (W7: %USERPROFILE%\Pictures).

PrintFile(fileName)
Druckt den Textinhalt einer Datei aus.
fileName Der volle Pfad der zu druckenden Datei (Die Dateierweiterung sollte mit einer Anwendung verknüpft sein).

PublicFolder
Ermittelt den Pfad des 'Public' Ordners (W7: 'Öffentlich', XP: 'Gemeinsame Dateien').

ReadANSI(fileName)
Liest eine ANSI kodierte Textdatei (mit Zeichencode >127, zB. €ÄÖÜßäöü).
UTF8 ist die in SB verwendete Standardkodierung für Textdateien.
Sollte auch für andere Kodierungen incl. UTF8 funktionieren (s.a. ReadANSIToArray, ANSItoUTF8).

fileName Der volle Pfad der einzulesenden Datei.
returns Der Textinhalt der ANSI Datei bei Erfolg, sonst "" (zB. Kodierung wurde nicht richtig erkannt).

ReadANSIToArray(fileName)
Liest eine ANSI kodierte Textdatei zeilenweise als Array (Textzeile als Arraywert).
Leerzeilen als Arraywert " " (Leerzeichen).
Sollte auch für andere Kodierungen incl. UTF8 funktionieren (s.a. ReadANSI, ANSItoUTF8).

fileName Der volle Pfad der einzulesenden Datei.
returns Ein Array, indexiert durch Zeilennummer (ab 1) und Zeilentext als wert bei Erfolg, sonst "" (zB. Kodierung wurde nicht richtig erkannt).

ReadByteArray(filePath,hexMode)
Ermittelt alle Bytewerte einer Datei als Bytearray [0,255] oder CSV Hex-String [00,FF].
filePath Der volle bestehende Dateipfad.
hexMode Ausgabe als CSV Hex-String?
"False" Bytearray [0,255] (Standard)
"True" Hex-String 'Komma getrennte Werte' [00,FF]

returns Ein Array (ab 1) von dek. Bytewerten (0 bis 255) oder einzelner CSV String mit Hex-Werten (00 bis FF) bei Erfolg, sonst "FAILED".

ReadCSV(fileName)
Ermittelt den Inhalt einer CSV Datei (comma separated values) als 2D Array.
Das Trennzeichen (Standard: "," Komma) kann mit LDUtilities.CSVDeliminator geändert werden.
Abbruch bei erster Leerzeile und "\" werden entfernt.

fileName Der volle Pfad der CSV Datei.
returns Ein 2D Array mit den Daten der eingelesenen CSV Datei, zB. arr[zeile][spalte].

ReadCSVTransposed(fileName)
Ermittelt den Inhalt einer CSV Datei (comma separated values) als 2D Array und vertauscht dabei Zeilen- und Spaltenwerte.
Das Trennzeichen (Standard: "," Komma) kann mit LDUtilities.CSVDeliminator geändert werden.
Abbruch bei erster Leerzeile und "\" werden entfernt.

fileName Der volle Pfad der CSV Datei.
returns Ein 2D Array mit den transponierten Daten der eingelesenen CSV Datei, zB. arr[spalte][zeile].

ReadToArray(fileName)
Ermittelt den Inhalt einer Textdatei zeilenweise als Array, wobei jede Textzeile einem Arrawert entspricht. "" bei Leerdatei oder wenn Datei nicht existiert.
Leerzeilen werden durch Arraywerte mit einem Leerzeichen (" ") dargestellt.

fileName Der volle Pfad der Textdatei.
returns Die Zeilen der Datei als Array, indexiert durch die Zeilennummer (ab 1).

RenameDirectory(directoryFrom,directoryTo)
Umbenennen oder Verschieben eines existierenden Ordners mit gesamtem Inhalt (incl. Unterordner).
directoryFrom Der volle Pfad des zu verschiebenden/umzubenennenden Quellordners.
directoryTo Der volle Zielordnerpfad (ev. mit neuem Ordnername).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

RenameFile(fileFrom,fileTo)
Umbenennen oder Verschieben einer existierenden Datei.
Bestehende Zieldateien werden nicht überschrieben.

fileFrom Der volle Pfad der zu verschiebenden/umzubenennenden Quelldatei (mit/ohne Erweiterung).
fileTo Der volle Zieldateipfad (ev. mit neuem Dateiname, mit/ohne Erweiterung).
Existiert ein gleichnamiger Ordnerpfad, so kann dieser kein Zieldateipfad mehr sein.

returns "SUCCESS" oder "FAILED" (mit Fehlermeldung).

SaveAllVariables(fileName)
Speichert alle aktuellen Variablen/-werte in eine angegebene Datei (eine Variable/Zeile als "Name Wert" durch Leerzeichen getrennt).
Dies ist der vollständige. aktuelle Programmstatus bis zum Aufruf dieser Methode. Enthält bereits alle Variablennamen, jedoch ev. manche noch OHNE Wert.
Kann nützlich sein, um einen Spielstand zu speichern oder zum Debuggen (s. LoadAllVariables).
Besser nicht innerhalb einer Ereignis Sub verwenden.

fileName Der volle Dateipfad zum Speichern der Variablen und -werte (auch %EnvVar%). Eine bestehende Datei wird überschrieben.

Size(fileName)
Ermittelt die Größe einer lokalen Datei in Bytes (nicht Größe auf Festplatte).
fileName Der volle Dateipfad.
returns Die Dateigröße [Byte] bei Erfolg, sonst -1.

TempFolder
Ermittelt den Pfad des TEMP Ordners im Benutzerprofil (%TEMP% bzw. Ordnerpfad von File.GetTemporaryFilePath).

UserName
Ermittelt den aktuellen Benutzername (%USERNAME%).

WriteByteArray(filePath,byteArray,startPos)
(Über)Schreibt einen Array von Bytes in eine (bestehende) Datei.
filePath Der volle Dateipfad. Eine nicht bestehende Datei wird erstellt.
byteArray Ein 1D Bytearray (ab 1, fortlaufend) mit dekadischen Bytewert(en) zwischen 0 und 255.
Oder einzelner CSV String (Komma od. Leerzeichen getrennt) in 'Hex-Notation' (zB. "3D,1F 00").

startPos Die Byteposition (incl., ab 1) in einer bestehenden Datei, ab welcher das (Über)Schreiben beginnt. Wird ignoriert für nicht bestehende Datei (diese wird erstellt und ab Anfang beschrieben).
<=1 Dateianfang (Standard)
>Dateilänge nach Dateiende

returns Die Anzahl geschriebener Bytes bei Erfolg, sonst "FAILED".
example '(über)schreibt ab Dateianfang
WriteByteArray(pfad, arr,1)
'SB© nach 4. Byte
WriteByteArray(pfad, "1=83;2=66;3=169;",5) 'od.
WriteByteArray(pfad, "53 42 A9",5)


WriteCSV(fileName,array)
Speichert einen 2D Array in eine CSV Datei (comma separated values).
Das Trennzeichen (Standard: "," Komma) kann mit LDUtilities.CSVDeliminator geändert werden.
Felder mit CrLf, " und , in "" einschließen, wobei " -> "" (Escape).

fileName Der volle Pfad der CSV Datei.
array Der zu exportierende 2D Array, zB. arr[zeile][spalte].

LDFocus
Fokuskontrolle für Steuerelemente/Controls (zB. TextBox zur Zeit aktiv für Eingabe).
Für Shapes (Ellipse#, Image#, Text#, View3D# usw.) ermöglicht nach Setzen von:
LDShapes.SetProperty(shp, "Focusable","True")

example 3D-samples\LD3DMazeGame.sb
other-samples\LDUnits.sb


GetFocus IsFocus SetFocus

GetFocus()
Ermittelt das aktuell fokusierte Steuerelement/Control.
returns Der Name des Steuerelements (gewöhnlich ein Button# oder TextBox#), sonst "False".

IsFocus(shapeName)
Ermittelt ob ein angegebenes Steuerelement/Control fokusiert ist.
shapeName Der Name des Steuerelements (gewöhnlich ein Button oder TextBox).
returns "True" oder "False".

SetFocus(shapeName)
Setzt den Fokus für ein angegebenes Steuerelement/Control.
shapeName Der Name des Steuerelements (gewöhnlich ein Button oder TextBox).
returns "True" bei Erfolg, sonst "False".

LDftp
FTP Methoden zur Dateiübertragung.

Delete DoAssync Download
FTPComplete LastFTPFile LastFTPStatus
ListFiles Upload UseBinary

Delete(remoteFile,ftpServerIP,ftpUserID,ftpPassword)
Löscht eine Datei per FTP.
remoteFile Der volle Serverpfad der zu löschenden Remotedatei.
ftpServerIP Die FTPServer Adresse (oder IP).
ftpUserID Die Benutzer ID.
ftpPassword Das Benutzerpasswort.
returns "SUCCESS", "FAILED" oder "PENDING" für asynchron.

DoAssync
Ermittelt oder setzt ob die FTP Übertragung asynchron durchgeführt wird ("True" oder "False" Standard).
Ein asynchroner FTP Transfer kehrt sofort und vollständig im Hintergrund zurück.
Das 'FTPComplete' Ereignis wird aufgerufen, sobald die Übertragung beendet ist.


Download(localFile,remoteFile,ftpServerIP,ftpUserID,ftpPassword)
Download einer Datei per FTP.
localFile Der volle lokale Pfad der herunterzuladenden Datei.
remoteFile Der volle Serverpfad der herunterzuladenden Remotedatei.
ftpServerIP Die FTPServer Adresse (oder IP).
ftpUserID Die Benutzer ID.
ftpPassword Das Benutzerpasswort.
returns "SUCCESS", "FAILED" oder "PENDING" für asynchron.

FTPComplete
Ereignisaufruf wenn ein asynchroner FTP Transfer abgeschlossen ist.

LastFTPFile
Die letzte asynchron übertragene FTP Datei.

LastFTPStatus
Der Status der letzten asynchron übertragenen FTP Datei ("SUCCESS" oder "FAILED").

ListFiles(remoteFolder,ftpServerIP,ftpUserID,ftpPassword)
Ermittelt eine Inhaltsauflistung eines Remoteordners per FTP (nur asynchron).
remoteFolder Der volle Serverpfad des aufzulistenden Remoteordners.
ftpServerIP Die FTPServer Adresse (oder IP).
ftpUserID Die Benutzer ID.
ftpPassword Das Benutzerpasswort.
returns Ein Array mit Datei- und Ordnernamen oder "FAILED". Der Arrayindex bezeichnet den Datei-/Ordnername und Arraywerte enthalten zusätzliche Informationen.

Upload(localFile,remoteFile,ftpServerIP,ftpUserID,ftpPassword)
Upload einer Datei per FTP.
localFile Der volle lokale Pfad der raufzuladenden Datei.
remoteFile Der volle Serverpfad der raufzuladenden Remotedatei.
ftpServerIP Die FTPServer Adresse (oder IP).
ftpUserID Die Benutzer ID.
ftpPassword Das Benutzerpasswort.
returns "SUCCESS", "FAILED" oder "PENDING" für asynchron.

UseBinary
Ermittelt oder setzt ob die FTP Übertragung Binär- (Standard) oder Ascii-Modus verwendet ("True" oder "False").

LDGeography
Ermittelt geografische Online-Information zu Ländern und regionalen Gebieten.
API Unterstützung durch http://restcountries.eu(/rest/v2/all)
Daten Unterstützung durch http://github.com/mledoze/countries
(Code von Abhishek Sathiabalan, http://github.com/65001)

example http://msdn.microsoft.com/library/ee825488.aspx (Kulturnamen, Codes, ISO Werte)

Fields GetAllCountries GetCountriesByCallingCode
GetCountriesByCapital GetCountriesByCode GetCountriesByCurrency
GetCountriesByName GetCountriesByRegion GetCountriesByRegionalBloc
StrictSearch

Fields
Ermittelt oder setzt erforderliche Ergebnisfelder als Array. Nicht angegebene Felder werden nicht ermittelt.

GetAllCountries()
Ermittelt alle 250 Länder der Erde und sonstige Gebiete als Array.
returns Die ermittelten Ländernamen als mehrdimensionaler Array (ab 1) bei Erfolg, sonst "FAILED".
example SubArray-Werte sind zB:
name, TLD, alpha2Code, alpha3Code, callingCodes, altSpellings, region, demonym, latitude, longitude,
area, numericCode, GINI, timezones, borders, CIOC, flag, currencies, languages, regionalBlocs


GetCountriesByCallingCode(callingCode)
Ermittelt alle Länder nach deren Telefonvorwahl als Array.
callingCode Die zu suchende Telefonvorwahl.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

GetCountriesByCapital(capital)
Ermittelt alle Länder nach deren Landeshauptstadt als Array.
capital Die zu suchende Landeshauptstadt.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

GetCountriesByCode(code)
Ermittelt alle Länder nach derem ISO Ländercode als Array.
code Der zu suchende Ländercode.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

GetCountriesByCurrency(currency)
Ermittelt alle Länder nach deren verwendeter Landeswährung als Array.
currency Die zu suchende Landeswährung.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

GetCountriesByName(name)
Ermittelt alle Länder nach derem Name als Array.
name Der zu suchende Ländername.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

GetCountriesByRegion(region)
Ermittelt alle Länder nach deren geografischer Region als Array.
region Der zu suchende Regionsname.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

GetCountriesByRegionalBloc(regionalBloc)
Ermittelt alle Länder nach deren Regionalblock als Array.
regionalBloc Der zu suchende Regionalblock.
returns Die ermittelten Ländernamen als Array bei Erfolg, sonst "FAILED".

StrictSearch
Ermittelt oder setzt die Erfordernis eines exakten Suchtreffers zwischen Anfrage und Ergebnissen? "True" oder "False".

LDGraph
Objekt zur Erstellung und Anzeige von Graphen als f(x) Funktionsgraph oder Histogramm.
Hilfe unter LDGraph.Help.

example graph_samples\*.sb

AddGraph AddSeriesHistogram AddSeriesLine
AddSeriesPoints AutoScale AxesColour
AxesResolution BorderColour CreateTrend
DeleteSeries ExportCSV GridColour
GridLinesX GridLinesY Help
InteriorColour RestartEvents ScaleAxisX
ScaleAxisY StopEvents TextColour
TrendCoef TrendPointCount

AddGraph(xpos,ypos,width,height,title,labelX,labelY)
Fügt einen Graph bzw. Diagramm (Intern: Graph#) im GraphicsWindow hinzu. Ev. Fehleranzeige im TW ist mit LDUtilities.ShowErrors deaktivierbar.
xpos Die linke Position des Graph im GW.
ypos Die obere Position des Graph im GW.
width Die Breite des Graph im GW.
height Die Höhe des Graph im GW.
title Der "Titel" über dem Graph.
labelX Die "Bezeichnung" für die x-Achse.
labelY Die "Bezeichnung" für die y-Achse.
returns Der Name des Graph.

AddSeriesHistogram(graphName,seriesLabel,data,colour)
Fügt einem existierenden Graph einen Datensatz als Balkendiagramm (Histogramm) hinzu.
graphName Der Name des Graph.
seriesLabel Die Bezeichnung des Datensatzes.
Ein bereits bestehender Datensatz mit gleicher Bezeichnung wird dabei ersetzt.

data Ein Array mit den x/y Koordinatenwerten in der Form data[x] = y.
colour Die Farbe für die Datenserie/Label.
example Histogramm mit zwei Balken (0,1) und (2,3) für [Balkenmitte,Höhe]:
data[0] = 1
data[2] = 3


AddSeriesLine(graphName,seriesLabel,data,colour)
Fügt einem existierenden Graph einen neuen Datensatz als Liniengraph (f(x) Funktionsgraph) hinzu.
graphName Der Name des Graph.
seriesLabel Die Bezeichnung des Datensatzes.
Ein bereits bestehender Datensatz mit gleicher Bezeichnung wird dabei ersetzt.

data Ein Array mit den x/y Koordinatenwerten in der Form data[x] = y.
colour Die Farbe für die Datenserie/Label.
example Linie zwischen zwei Punkten (0,1) und (2,3) für [x,y]:
data[0] = 1
data[2] = 3


AddSeriesPoints(graphName,seriesLabel,data,colour)
Fügt einem existierenden Graph einen Datensatz als Punkte hinzu.
graphName Der Name des Graph.
seriesLabel Die Bezeichnung des Datensatzes.
Ein bereits bestehender Datensatz mit gleicher Bezeichnung wird dabei ersetzt.

data Ein Array mit den x/y Koordinatenwerten in der Form data[x] = y.
colour Die Farbe für die Datenserie/Label.
example Datenserie mit zwei Punkten (0,1) und (2,3) für [x,y]:
data[0] = 1
data[2] = 3


AutoScale
Ermittelt oder setzt die automatische Skalierung der Achsen? "True" (Standard) oder "False".
Bei "False" wird die Skalierung aus der vorhergehenden Version verwendet.


AxesColour
Ermittelt oder setzt die Farbe der umgebenden Achsen und Skalierungsmarkierungen (Standard: #FF000000 bzw. Black).

AxesResolution
Ermittelt oder setzt die Dezimalstellen an den Min/Max Achsenendpunkten (Standard: 2 dh. signifikante Werte an den Achsenendpunkten auf zwei Dezimalstellen).

BorderColour
Ermittelt oder setzt die Farbe der Umrandung (Standard: #FFFAEBD7 bzw. AntiqueWhite).

CreateTrend(data,order)
Erstellt eine Tendenzfunktion aus den angegebenen Daten.
data Ein Array mit den x/y Koordinatenwerten in der Form data[x] = y.

zB. Eine Gerade mit Punkten (0,1) und (2,3) für [x,y] hat:
data[0] = 1
data[2] = 3

oder allgemein data[x] = y, als Ausdruck für f(x)=y.

order Der Polynomgrad für die Trendfunktion:
(0 ist eine Waagrechte)
1 linear
2 quadratisch
3 kubisch usw.

returns Ein Datenarray mit Tendenzwerten, die als Graph dargestellt werden.

DeleteSeries(graphName,seriesLabel)
Löscht einen vorhandenen Datensatz von einem bestehenden Graph.
graphName Der Name des Graph.
seriesLabel Die Bezeichnung des zu löschenden Datensatzes.

ExportCSV(data,fileName)
Exportiert eine Datenserie direkt als CSV Datei (keine Graphzeichnung).
data Ein Array mit den x/y Koordinatenwerten in der Form data[x] = y.
fileName Dateiname der zu speichernden CSV Datei.

GridColour
Ermittelt oder setzt die Farbe der inneren Gitterlinien (Standard: #FFD3D3D3 bzw. LightGray).

GridLinesX
Ermittelt oder setzt die Anzahl der x-Achsenmarkierungen und Gitterlinien (Standard: 10).

GridLinesY
Ermittelt oder setzt die Anzahl der y-Achsenmarkierungen und Gitterlinien (Standard: 10).

Help()
Diese Methode dient nur zur Anzeige dieser Hilfe.

Daten zu einem Graph können als Linie, Punkte oder Säulen dargestellt werden.

Jeder Datensatz ist ein SB-Array, wobei der Arrayindex den (einmaligen) Wert auf der x-Achse und der Arraywert den y-Wert darstellt (data[x]=y) zB:
data[1] = 5
data[2] = 8
data[3] = 3

Zuerst wird mit AddGraph ein neuer Graph erstellt. Diesem werden dann Daten mittels AddSeriesLine, AddSeriesHistogram oder AddSeriesPoints hinzugefügt.

Sobald ein Graph dargestellt ist, können die Achsen mit dem Hand-Cursor erfasst und bewegt werden. Die Legende kann ebenfalls verschoben werden.

Mittels linker Maustaste kann der Graph umskaliert werden, ein zu vergrößernder Bereich gewählt oder per Mausrad die Gesamtanzeige vergrößert werden. Ein Doppelklick setzt alle Werte auf die Ausgangsdarstellung zurück.

Rechtsklick zeigt ein Kontextmenü mit weiteren Funktionen, wie Export zu Bild- (bmp, gif, jpg, png, tiff) oder Textdatei (csv, Excel), Anzeige der Cursorkoordinaten, Ausblenden der Legende usw.

Zusätzlich bieten verschiedene Parameter dieser Methode weitere Optionen zu Farbdarstellung und Verhalten des Graphen.


InteriorColour
Ermittelt oder setzt die Farbe des Innenbereiches (Standard: #FFF0F8FF bzw. AliceBlue).

RestartEvents()
Startet alle Linksklick Mausereignisse im Graph (nach 'StopEvents') erneut.

ScaleAxisX(graphName,min,interval,max)
Setzt die Skalierung für die x-Achse.
Dies übergeht alle automatischen Methoden.

graphName Der Name des Graph.
min Der Minimalwert auf der x-Achse.
interval Der regelmäßige Abstand der Gitterlinien.
Bei 0 wird dieser Abstand automatisch aus den angegebenen Daten ermittelt.

max Der Maximalwert auf der x-Achse.
Bei max=min, wird das Maximum aus den angegebenen Daten ermittelt.
Bei max

ScaleAxisY(graphName,min,interval,max)
Setzt die Skalierung für die y-Achse.
Dies übergeht alle automatischen Methoden.

graphName Der Name des Graph.
min Der Minimalwert auf der y-Achse.
interval Der regelmäßige Abstand der Gitterlinien.
Bei 0 wird dieser Abstand automatisch aus den angegebenen Daten ermittelt.

max Der Maximalwert auf der y-Achse.
Bei max=min, wird das Maximum aus den angegebenen Daten ermittelt.
Bei max

StopEvents()
Stoppt alle Linksklick Mausereignisse im Graph (Zoomen, Markieren usw.).

TextColour
Ermittelt oder setzt die Farbe des Textes (Standard: #FF000000 bzw. Black).

TrendCoef()
Ermittelt die Polynomkoeffizienten der Tendenzfunktion für die zuletzt (mittels 'CreateTrend') berechneten Tendenzwerte.
returns Ein Array 'coef' mit den Polynomkoeffizienten für die Trendkurve.
Die Anzahl der Koeffizienten im Array ist um 1 höher als der Grad, welcher zur Erstellung der Tendenz (Grad+1) verwendet wurde, ab 0 (Konstantwert).
y = coef[0] + coef[1]x + coef[2]x^2 ...


TrendPointCount
Ermittelt oder setzt die Anzahl der Punkte, die zur Erstellung der Trendkurve ('CreateTrend') verwendet werden. (Standard: 50).

LDGraphicsWindow
Erweiterte Funktionen für das GraphicsWindow.
example other-samples\ClockWidget.sb, LDScrollBars.sb, LDUnits.sb

Animate BackgroundBrush BackgroundImage
CancelClose Capture Closing
ExitButtonMode ExitOnClose FloodFill
FloodFillTolerance GetPixel Height
Icon MouseX MouseXOffset
MouseXScale MouseY MouseYOffset
MouseYScale PauseUpdates Print
Reposition RepositionedMouseX RepositionedMouseY
RepositionPoint Resize ResumeUpdates
ScreenCapture SetActive SetFontFromFile
ShowInTaskbar State Style
TopMost TransparentGW Width

Animate(scaleX,scaleY,panX,panY,angle,duration)
Skaliert und bewegt alle Shapes und Controls animiert innerhalb des GraphicsWindow.
Ähnlich der s. 'Reposition' Methode, jedoch in animierter Bewegung (asynchron).
s.a. LDShapes.AnimateRotation /-..Zoom für Einzelshape.

scaleX Der -/+ Skalierungsfaktor in x-Richtung (1 orig, 0 keine Shapes/Controls).
scaleY Der -/+ Skalierungsfaktor in y-Richtung (1 orig, 0 keine Shapes/Controls).
panX Versatz der Ansicht in x-Richtung [Pxl] bei Ansichtsskalierung (0 zentriert im GraphicsWindow).
panY Versatz der Ansicht in y-Richtung [Pxl] bei Ansichtsskalierung (0 zentriert im GraphicsWindow).
angle Der -/+ Winkel um den die Ansicht zusätzlich (gegen/im Uhrzeigersinn) gedreht wird [Grad].
duration Die Dauer der Animation [ms].
example Statische Methode: s. LDGraphicsWindow.Reposition

BackgroundBrush(brush)
Setzt/Ändert einen Farbgradient als Hintergrund für das GraphicsWindow (dynamische Anpassung an Fenstergröße, GW muß bereits initialisiert sein).
brush Ein zuvor erstellter Gradient- oder Bildpinsel (Intern: Brush#, s. LDShapes.BrushGradient bzw. LDShapes.BrushImage).
example LDGraphicsWindow.BackgroundImage("string") außer "" oder Wert (zB. 0) entfernt bestehenden Hintergrundgradient und setzt GW Hintergrundfarbe auf 'Transparent'

BackgroundImage(imageName)
Setzt ein Bild als Hintergrund für das GraphicsWindow (dieses muß bereits initialisiert sein, dynamische Anpassung an Fenstergröße, s.a. TransparentGW).
Der Hintergrund wird automatisch neudimensioniert um die jeweilige Größe des GraphicsWindow auszufüllen (Gleiche Ebene wie GW Hintergrundfarbe, transparente Bereiche als #FF000000 bzw. Black).
Bleibt nach GraphicsWindow.Clear erhalten.

imageName Das als Hintergrund zu ladende Bild (Intern: ImageList#).
Rückgabewert von ImageList.LoadImage, lokale oder Netzwerk Bilddatei. Sonstiger "string" (außer "") oder Wert (zB. 0) entfernt ein bestehendes Hintergrundbild und setzt GW Hintergrundfarbe auf 'Transparent'.

example Zoom-Beispiel s. LDEvents.LastMouseWheelDelta

CancelClose
Ermittelt oder setzt einen Abbruch der nächsten 'Schließen' Aktion für das GraphicsWindow. "True" oder "False" (Standard).
Erfordert daß ExitOnClose auf "False" gesetzt ist. Dies sollte innerhalb eines s. LDGraphicsWindow.Closing Ereignisses gesetzt werden (zB. per LDDialogs.Confirm).
Wird auf "False" zurückgesetzt, nachdem ein Schließen verhindert wurde.


Capture(fileName,border)
Speichert den Inhalt des GraphicsWindow als Bilddatei (bmp, gif, j(e)pg, png, tiff oder ico) oder in ImageList (Intern: ImageList#+1).
Das Fenster muß sichtbar sein. Kurzes Abwarten zB. Program.Delay kann vor Aufruf der Methode nötig sein.

fileName Dateiname für das zu speichernde Bild (bmp, gif, jp(e)g, png, tiff oder ico) oder
"" zum Speichern des Bildes in ImageList (Intern: ImageList#+1).

border Fensterrahmen auch Bestandteil des Bildes? "True" oder "False" (Standard).
returns Der ImageList Name (wenn fileName ""), sonst "" (bei Ausgabe in Bilddatei).

Closing
Ereignisaufruf beim Schließen eines GraphicsWindow.
'ExitOnClose' muß bei Aufruf dieses Ereignisses auf "False" gesetzt sein.
Ist 'CancelClose' auf "True" gesetzt, wird das Schließen verhindert.


ExitButtonMode(window,mode)
Setzt den Status des 'Schließen' Feldes ('X') für ein bereits initialisiertes Fenster. Dieses kann dabei ein- oder ausgeblendet sein (wird nicht geöffnet).
Die Einstellung bleibt auch nach Aus- und Einblenden dieses Fensters erhalten, wird jedoch bei Aufruf des Systemmenüs auf "Enabled" zurückgesetzt.

window Der Fenstertitel, zB. Rückgabe von TextWindow.Title oder GraphicsWindow.Title.
mode Der Status? "Enabled" (Standard) oder "Disabled".

ExitOnClose
Ermittelt oder setzt die Beendigung des SB Programms, sobald ein GraphicsWindow geschlossen wird. "True" (Standard) oder "False".
Bei "False" muß das Programm noch anstehende Aufgaben haben, um fortzufahren.


FloodFill(x,y,colour)
Füllt den gesamten Bereich der ein angegebenes Pixel umgibt, wobei alle benachbarten, gleichfarbigen Pixel gefärbt werden.
Dies betrifft nur die Ebene für Zeichnungen (Draw../Fill..) im GraphicsWindow.
Für Farbtoleranz s. 'FloodFillTolerance'.

x Die x-Koordinate des Referenzpixels zum Ausfüllen.
y Die y-Koordinate des Referenzpixels zum Ausfüllen.
colour Die Füllfarbe, zB. (LDColours.)Farbname oder #(AA)RRGGBB.

FloodFillTolerance
Ermittelt oder setzt die Farbtoleranz für die 'FloodFill' Methode (0 bis 100 [%]):
0 nur exakte Farbe (Standard)
100 alle Farben


GetPixel(x,y)
Ermittelt die Farbe eines Pixels an den angegebenen x- und y-Koordinaten im GraphicsWindow.
Diese Methode funktioniert für Hintergrund, Zeichnungen und Shape Ebenen.

x Die x-Koordinate des Pixels.
y Die y-Koordinate des Pixels.
returns Die Pixelfarbe als #RRGGBB (sonst #000000, zB. Koordinaten außerhalb GW).

Height
Ermittelt oder setzt die Höhe des GraphicsWindow (bei Verwendung von LDScrollBars).

Icon
Setzt/Ändert das Symbolbild für das GraphicsWindow von einer angegebenen lokalen oder Netzwerk Bilddatei (zB. ico, jpg, png, kein %EnvVar% Pfad). GW muß bereits initialisiert sein. Fehlermeldung, wenn Symboldatei nicht existiert.
"SB" setzt das SmallBasic Symbol.


MouseX
Ermittelt oder setzt die x-Koordinate für den Mauszeiger im GraphicsWindow.

MouseXOffset
Ermittelt den x-Versatz [Pxl] zwischen Desktop- und GraphicsWindow x-Koordinaten (incl. Skalierung u. li.Rand):
offX = dtX - MouseXScale * gwX 'bzw.
MouseXOffset = Mouse.MouseX - MouseXScale * GW.MouseX
GraphicsWindow muß initialisiert sein (sonst: 1).

example 'x GW->Dt:
Mouse.X = MouseXOffset + MouseXScale * GW.MouseX
'x Dt->GW:
GW.MouseX = (Mouse.X - MouseXOffset)/MouseXScale


MouseXScale
Ermittelt den x-Skalierungsfaktor zwischen Desktop- und GraphicsWindow x-Koordinaten (zB: 1 bei DPIX=96):
MouseXScale = (dtX - offX)/gwX 'bzw.
Mouse.MouseX = GW.MouseX * MouseXScale + MouseXOffset
GraphicsWindow muß initialisiert sein.

example 'x GW->Dt:
Mouse.X = MouseXOffset + MouseXScale * GW.MouseX
'x Dt->GW:
GW.MouseX = (Mouse.X - MouseXOffset)/MouseXScale


MouseY
Ermittelt oder setzt die y-Koordinate für den Mauszeiger im GraphicsWindow.

MouseYOffset
Ermittelt den y-Versatz [Pxl] zwischen Desktop- und GraphicsWindow y-Koordinaten (incl. Skalierung u. Titelleiste):
offY = dtY - MouseYScale * gwY 'bzw.
MouseYOffset = Mouse.MouseY - MouseYScale * GW.MouseY
GraphicsWindow muß initialisiert sein (sonst: 1).

example 'y GW->Dt:
Mouse.Y = MouseYOffset + MouseYScale * GW.MouseY
'y Dt->GW:
GW.MouseY = (Mouse.Y - MouseYOffset)/MouseYScale


MouseYScale
Ermittelt den y-Skalierungsfaktor zwischen Desktop- und GraphicsWindow y-Koordinaten (zB: 1 bei DPIY=96):
MouseYScale = (dtY - offY)/gwY 'bzw.
Mouse.MouseY = GW.MouseY * MouseYScale + MouseYOffset
GraphicsWindow muß initialisiert sein.

example 'y GW->Dt:
Mouse.Y = MouseYOffset + MouseYScale * GW.MouseY
'y Dt->GW:
GW.MouseY = (Mouse.Y - MouseYOffset)/MouseYScale


PauseUpdates()
Pausiert automatische Aktualisierung (Neuzeichnen) im initialisierten GraphicsWindow (s. ResumeUpdates).

Print(border)
Druckt den Inhalt des GraphicsWindow aus.
Das GW-Fenster muß sichtbar sein. Kurzes Abwarten zB. Program.Delay kann kann vor Aufruf dieser Methode nötig sein.

border Fensterrahmen auch Bestandteil des Bildes? "True" oder "False".

Reposition(scaleX,scaleY,panX,panY,angle)
Skaliert und verschiebt alle Shapes und Controls innerhalb des GraphicsWindow.
Diese Methode skaliert und verschiebt eigentlich die Ansicht anstatt der Shapes, sodaß deren Positionen und sonstige Eigenschaften unverändert bleiben, scheinen jedoch skaliert im neu positionierten Bereich.
zB. Shapes.GetLeft bleibt unverändert trotz umpositionierter Ansicht und GraphicsWindow.MouseX zeigt die Koordinaten relativ zur umpositionierten Ansicht.
Vorstellbar als neu positionierte Gesamtansicht, so als ob diese eine Shape im GrapicsWindow wäre.
Koordinatentransformation zwischen Ansicht (vX,vY) und GraphicsWindow (gwX,gwY):
gwX = (vX+panX)*scaleX + gw*(1-scaleX)/2
gwY = (vY+panY)*scaleY + gh*(1-scaleY)/2
Alle Zeichnungen bleiben unverändert im originalen GraphicsWindow.

scaleX Der -/+ Skalierungsfaktor in x-Richtung (1 Originalansicht, 0 keine Shapes/Controls).
scaleY Der -/+ Skalierungsfaktor in y-Richtung (1 Originalansicht, 0 keine Shapes/Controls).
panX Versatz der Ansicht in x-Richtung [Pxl] bei Ansichtsskalierung (0 zentriert im GraphicsWindow).
panY Versatz der Ansicht in y-Richtung [Pxl] bei Ansichtsskalierung (0 zentriert im GraphicsWindow).
angle Der -/+ Winkel um den die Ansicht zusätzlich (gegen/im Uhrzeigersinn) gedreht wird [Grad].
example Animation mittels s. LDGraphicsWindow.Animate

RepositionedMouseX
Ermittelt die x-Koordinate des Mauszeigers im GraphicsWindow bei repositionierter Ansicht (s. Reposition).

RepositionedMouseY
Ermittelt die y-Koordinate des Mauszeigers im GraphicsWindow bei repositionierter Ansicht (s. Reposition).

RepositionPoint(x,y,toGW)
Ermittelt transformierte Koordinaten zwischen GraphicsWindow und umpositionierer Ansicht (s. Reposition).
x Die zu transformierende x-Koordinate.
y Die zu transformierende y-Koordinate.
toGW Transformrichtung von Ansicht zum GraphicsWindow ("True"), bzw. vom GraphicsWindow zur Ansicht ("False", Standard).
returns Ein 2-element. Array der transformierten Koordinaten mit Indizes 1, 2 (für neue x, y).

Resize
Ermittelt oder setzt den Resize Status für das GraphicsWindow bzw. Buttons in Titelleiste:
0 CanMinimize, "" (Min, wie GW.CanResize="")
1 CanResize (Standard, Min+Max, wie GW.CanResize="True")
2 CanResizeWithGrip (Min+Max+Mausgriff, wie GW.CanResize="")
3 NoResize (wie 2, nur 'X' Feld, wie GW.CanResize="")


ResumeUpdates()
Setzt pausiertes Neuzeichnen (s. PauseUpdates) des GraphicsWindow wieder fort.

ScreenCapture
Ermittelt oder setzt die Erstellung eines Bildes vom GraphicsWindow für LDGraphicsWindow.Print und -.Capture Methoden. Erstellung nur, wenn deren Rahmen-Option auf "False" (dh. ohne Rahmen) gesetzt ist.
"True" Das aktuell sichtbare GraphicsWindow wird zur Bilderstellung verwendet.
"False" Die Grafiken im GraphicsWindow werden neu zum Bild gerendert (Standard).


SetActive()
Setzt das GraphicsWindow als aktives Fenster in den Vordergrund (mit Fokus, zB. Umschalten vom TextWindow), wartet jedoch nicht darauf bis/ob das Fenster im Vordergrund ist.
S.a. LDGraphicsWindow.TopMost

returns "SUCCESS" bei Erfolg, sonst Fehlermeldung.

SetFontFromFile(fontFile)
Setzt die Schriftart im GraphicsWindow mittels einer lokalen .ttf Schriftartdatei (s. GraphicsWindow.FontName).
fontFile Der volle Pfad für die zu setzende .ttf Schriftartdatei.
returns Die Bezeichnung der Schriftart (als file:///Ordnerpfad/#Schriftname) bei Erfolg, sonst "FAILED".
example 'Alternativ:
GraphicsWindow.FontName = "(file:///)Ordnerpfad\#Schriftname(, ErsatzFont)"


ShowInTaskbar
Ermittelt oder setzt die Anzeige einer Schaltfläche (Symbol) für das GraphicsWindow in der Taskleiste? "True" (Standard) oder "False".

State
Ermittelt oder setzt den Status des GraphicsWindow:
0 Normal (Standard, Normalgröße)
1 Minimiert (in Taskleiste)
2 Maximiert (nach Style = 0, sonst Taskleiste ausgenommen)

Falls ungeöffnet, wird GW auch angezeigt.


Style
Ermittelt oder setzt den Stil des (zusätzlichen LDWindows) GraphicsWindow:
0 Ohne (nur Klientbereich ohne Titelleiste, s. TransparentGW)
1 Einzelrand (Standard)
2 3DRand (breiterer Rand)
3 ToolWindow (nur 'X' Feld, ohne Systemmenü/Icon)

Falls ungeöffnet, wird GW auch angezeigt.


TopMost
Ermittelt oder setzt den 'Zuoberst Status' für das GraphicsWindow (Z-Order, GW muß bereits initialisiert sein).
Das Fenster bleibt stets über anderen Fenstern, auch wenn diese fokusiert sind (s.a. LDGraphicsWindow.SetActive).
"True" oder "False" (Standard).


TransparentGW()
Erstellt ein transparentes GraphicsWindow (Style=0 dh. ohne Titelleiste und Rand, State=0).
Ist vor allen anderen GraphicsWindow-, Controls- oder Shapes- Methoden, die ein Fenster erstellen, aufzurufen.
Für eine Ansicht, erst Inhalt im transparenten GraphicsWindow hinzufügen.
zB. Erstellen eines nicht-Rechteck Fensters mittels transparentem png (für den Rand) per LDShapes.BackgroundImage.
Die Transparenz kann mit BackgroundColor (als #AARRGGBB) angepasst werden, oder Opazität einer füllenden (Bild-)Shape.
Fallweise ist geringere Transparenz als 100% (BackgroundColor #AA >00) erforderlich (zB. Erkennen von Maus-/Tastenereignissen im leeren GW).
Trotz CanResize = "True", Fenstergröße nicht per Maus anpassbar.

example other-samples\ClockWidget.sb

Width
Ermittelt oder setzt die Breite des GraphicsWindow (bei Verwendung von LDScrollBars).

LDHashTable
LDHashTable bietet eine schnelle und effiziente Art zum Speichern von Schlüssel-Wert Paaren.
Auflistungen (Dictionaries) basieren auf einer O(1) Operation und mit der Datengröße erhöht sich die Effizienz.
(Code von Abhishek Sathiabalan, http://github.com/65001)


Add Clear ContainsKey
ContainsValue GetValue Remove
ToArray

Add(dictionary,key,value)
Fügt ein Schlüssel-Wert Paar zu einer angegebenen Auflistung hinzu.
dictionary Der Name der Auflistung.
key Der hinzuzufügende Schlüssel.
value Der hinzuzufügende Wert.
returns Die Elementanzahl in der Auflistung bei Erfolg, sonst -1.

Clear(dictionary)
Entfernt alle Schlüssel-Wert Paare von einer angegebenen Auflistung.
dictionary Der Name der Auflistung.
returns Die Elementanzahl in der Auflistung bei Erfolg, sonst -1.

ContainsKey(dictionary,key)
Ermittelt ob eine angegebene Auflistung einen bestimmten Schlüssel enthält.
dictionary Der Name der Auflistung.
key Der abzufragende Schlüssel.
returns "True" oder "False".

ContainsValue(dictionary,value)
Ermittelt ob eine angegebene Auflistung einen bestimmten Wert enthält.
dictionary Der Name der Auflistung.
value Der abzufragende Wert.
returns "True" oder "False".

GetValue(dictionary,key)
Ermittelt den Wert für einen angegebenen Schlüssel in einer Auflistung.
dictionary Der Name der Auflistung.
key Der abzufragende Schlüssel.
returns Der gefundene Wert im Schlüssel-Wert Paar bei Erfolg, sonst "".

Remove(dictionary,key)
Entfernt ein Schlüssel-Wert Paar von einer angegebenen Auflistung.
dictionary Der Name der Auflistung.
key Der zu entfernende Schlüssel.
returns Die Elementanzahl in der Auflistung bei Erfolg, sonst -1.

ToArray(dictionary)
Konvertiert eine angegebene Auflistung zu einem SmallBasic Array.
dictionary Der Name der Auflistung.
returns Der SB Array (ab 1) bei Erfolg, sonst "".

LDHID
USB Steuerung für HID Geräte (Human Interface Device).
VID und PID (4-Zeichen HexCodes) für das Gerät sind erforderlich.
Nur HIDs funktionieren unter diesen Methoden.
Sollte die meisten GameController, einfache Robotergeräte und Sensoren unterstützen.

example other-samples\LDHID.sb, USB_HID.sb

'DeviceID's unter
HKLM\SYSTEM\CurrentControlSet\Enum\USB\VID_vid&PID_pid\


AddDevice FindDevices GetBits
Input InputLength LastDevice
LastInput Output OutputLength
Removed SetBits

AddDevice(vid,pid,name)
Hinzufügen eines HID angeschlossenen Gerätes mit dessen VID und PID.
Die VID und PID sind 4-stellige (Hex)Werte, und zu finden in:
Gerätemanager->Eigenschaften->Details->Hardware-IDs
zB: HID\VID_046D PID_C215 REV_0204 hat VID "046D" und PID "C215".
Jedes Gerät nur einmalig hinzufügen.

vid Die Geräte VID (16bit VendorID).
pid Die Geräte PID (16bit ProductID).
name Der Name für das Gerät.
returns "True" bei Erfolg, sonst "False".

FindDevices()
Listet alle gefundenen HID Geräte (Human Interface Device).
returns Ein 2D Array aller gefundenen Geräte.
Die erste Dimension ist die Gerätenummer (ab 1).
Die zweite Dimension sind "VID", "PID" und "Description" und enthalten die HexWerte von VID, PID und eine Gerätebeschreibung.


GetBits(data)
Ermittelt einen 8-element. Array aus 1 und 0, die angeben ob ein Bit im Byte gesetzt ist.
data Die Bytenummer (0 bis 255).
returns Ein 8-element. Bitarray (kleines Bit zuerst) bei Erfolg, sonst "".

Input
Ereignisaufruf wenn sich die HID Eingabe ändert.

InputLength(name)
Ermittelt die Länge des Eingabeberichts für ein HID Gerät.
name Der HID Gerätename.
returns Die Anzahl der Bytes im Eingabedatensatz.

LastDevice
Ermittelt den Name für das letzte HID Gerät welches eine Eingabe hatte.

LastInput
Ermittelt die letzten HID Eingabedaten als Array oder "".
Dies ist ein Satz von Werten von 0 bis 255 (Bytes).


Output(name,data)
Sendet Daten an das HID Gerät.
Dies muß ein Array von Bytes sein (0 bis 255).
Der Array muß ab 1 indexiert sein und die Länge s. 'OutputLength' haben.

name Der HID Gerätename.
data Die zu sendenden Daten.
returns "True" oder "False" für Datenbeständigkeit.

OutputLength(name)
Ermittelt die Länge des Ausgabeberichts für ein HID Gerät.
name Der HID Gerätename.
returns Die Anzahl der Bytes im Ausgabedatensatz.

Removed
Ereignisaufruf wenn das HID Gerät entfernt wird.

SetBits(data)
Setzt ein Byte mittels 8-element. Array aus 1 und 0, die angeben ob ein Bit im Byte gesetzt ist.
data Ein 8-element. Bitarray aus 1 und 0 (kleines Bit zuerst).
returns Die Bytenummer (0 bis 255) bei Erfolg, sonst -1.

LDIcon
Erstellt eine 32bit Icon- (.ico) oder Cursordatei (.cur) von einem ImageList Bild oder einer Bilddatei.
Weitere Cursor Methoden s. 'LDCursors'.


CreateCursor CreateIcon SetSizes
SquareImage

CreateCursor(imageName,cursorPath,size,xHotSpot,yHotSpot)
Erstellt eine 32bit Cursordatei.
Zum Erstellen eines internen temp. Cursor#, s. 'LDCursors.CreateCursor'.

imageName Der Name des ImageList Bildes oder voller Dateipfad des Quellbildes. Für beste Ergebnisse quadratische Quellbilder verwenden.
cursorPath Der volle Dateipfad zum Speichern der Cursordatei (.cur).
size Die Abmessungen/Höhe [Pxl] des Cursorbildes (zB. 32).
xHotSpot Die x-Position [Pxl] für den Steuerpunkt des Cursors (ab 0).
Für Bilder mit festem Seitenverhältnis (SquareImage = "False") werden xHotSpot/Breite entsprechend angepasst.

yHotSpot Die y-Position [Pxl] für den Steuerpunkt des Cursors (ab 0).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

CreateIcon(imageName,iconPath)
Erstellt eine 32bit (Mehrfachbild) Icondatei mit (6) Einzelbildern (Standardformate: 16x16, 24x24, 32x32, 64x64, 128x128, 256x256).
Setzen/Ändern der einzelnen Bildgrößen mit 'SetSizes' Methode.

imageName Der Name des ImageList Bildes oder voller Dateipfad des Quellbildes. Für beste Ergebnisse quadratische Quellbilder verwenden.
iconPath Der volle Dateipfad zum Speichern der Icondatei (.ico). Eine bestehende Datei wird überschrieben.
returns "SUCCESS" bei Erfolg, sonst "FAILED".
example 'Png zu 32x32 Icondatei
LDIcon.SetSizes(32)
LDIcon.CreateIcon(pngPfad, icoPfad)


SetSizes(sizes)
Setzt die Standard Icongrößen. Aufruf vor Verwendung der 'CreateIcon' Methode.
sizes Eine Liste mit ganzzahligen Größen der Einzelbilder, als Array oder Leerzeichen getrennter String (Standard: "16 24 32 64 128 256").
Die Größe für ein Einfachicon kann durch Einzelwert (max. 256) gesetzt werden.

example '32x32 Icon
LDIcon.SetSizes(32) 'od.
LDIcon.SetSizes("1=32;")


SquareImage
Ermittelt oder setzt festes Seitenverhältnis im Bildquadrat (w = h) für Icon/Cursor.
Aufruf vor Verwendung der 'CreateIcon' Methode:
"True" quadratisch (Standard).
"False" Breite für festes Seitenverhältnis (bei gesetzter Höhe) anpassen.


LDImage
Verschiedene Methoden zur Bearbeitung und Darstellung von Bildern in ImageList (Intern: ImageList#).
Standardwert für jeden Effektparameter ist "".

example webcam\motion-detection.sb, webcam.sb

Add AddImages AddText
CloseWorkingImage ColorMatrix Copy
Crop DifferenceImages EffectAccent
EffectBlocks EffectBlue EffectBulge
EffectCartoon EffectCharcoal EffectContrast
EffectCyan EffectDefaults EffectEdge
EffectFishEye EffectFuzzy EffectGamma
EffectGray EffectGreen EffectHue
EffectInverse EffectJagged EffectLightness
EffectMagenta EffectNoiseRemoval EffectOilPaint
EffectPixelate EffectPosterise EffectRed
EffectReflect EffectRotate EffectSaturation
EffectSepia EffectSketch EffectSnow
EffectSolarise EffectSwirl EffectYellow
GetEffects GetImagePixels GetPixel
GetWorkingImagePixel GetWorkingImagePixelARGB HeightMap2NormalMap
Histogram LoadSVG MakeTransparent
MetaData Multiply NewImage
NormalMap OpenWorkingImage Remove
ReplaceColour Resize Rotate
Save SaveAs SetImagePixels
SetPixel SetWorkingImagePixel SplitImage
Statistics To32bitARGB UseFastPixelMethods

Add(image,red,green,blue)
Addiert Farbwerte in einem ImageList Bild mit einem -/+ Wert (<0 dunkler, >0 heller).
Ein Bild hat Pixel mit Werten für Rot, Grün und Blau im Bereich [0, 255].

image Der Name des zu ändernden Bildes.
red +/- Additionswert für Rotanteil.
green +/- Additionswert für Grünanteil.
blue +/- Additionswert für Blauanteil.
example 'White (255, 255, 255) zu
'Orange (255, 165, 0)
dR = 0 '255-255
dG = -90 '165-255
dB = -255 '0-255
LDImage.Add(img, dR,dG,dB)


AddImages(image1,image2)
Kombiniert/Überlagert 2 ImageList Bilder durch Addition der einzelnen Pixelfarbwerte (Intern: ImageList#+1).
Ein Bild hat Pixel mit Werten für Rot, Grün und Blau im Bereich [0, 255].
Beide Bilder müssen die gleichen Abmessungen haben, sonst keine Verarbeitung.

image1 Der Name des ersten ImageList Bildes.
image2 Der Name des zweiten ImageList Bildes.
returns Der Name des neuen ImageList Bildes bei Erfolg, sonst "".

Sind beide Quellbilder invers zueinander, ist das Ergebnisbild völlig weiß.
Sind beide Quellbilder identisch, erfolgt Aufhellung/Intensivierung für bestimmte Bereiche.


AddText(imageName,text,x,y,colour)
Fügt Text in ein existierendes ImageList Bild ein (aktuelle GraphicsWindow.Font.. Eigenschaften).
imageName Der Name des bestehenden ImageList Bildes.
text Der einzufügende Text.
x Die -/0/+ linke Textposition im Bild [Pxl] (Standard: 0).
y Die -/0/+ obere Textposition im Bild [Pxl] (Standard: 0).
colour Die Textfarbe (Standard: Transparent).
example 'TextBild
GraphicsWindow.FontSize = 30
img = LDImage.NewImage(100,100, "Transparent")
LDImage.AddText(img, "Rot", 0,23, "Red")
LDImage.SaveAs(img, Program.Directory +"\TextBild.png")


CloseWorkingImage(image)
Schließt und setzt das temporäre Arbeitsbild zum Ausgangsbild zurück (ImageList# bleibt unverändert).
image Das zuvor mit 'OpenWorkingImage' geöffnete Arbeitsbild.

ColorMatrix(image,matrix)
ColorMatrix Transformation für ein ImageList Bild. ImageList# bleibt unverändert, bei geänderter Bildansicht.
Format für ColorMatrix ist unterschiedlich und inkompatibel zum LDMatrix Format.
Kann für alle Arten von Farbtransformationen verwendet werden, zB:
http://msdn.microsoft.com/library/a7xw19wh.aspx
http://docs.rainmeter.net/tips/colormatrix-guide
http://softwarebydefault.com/2013/03/03/colomatrix-image-filters

image Der Name des zu ändernden ImageList Bildes (Für Transparenzänderung im 32b ARGB Format).
matrix Eine 5x5 Matrix im R,G,B,A,W Farbraum als 2D Array.
zB. 'Sepia':
cm[1]="1=0.393;2=0.349;3=0.272;4=0;5=0"
cm[2]="1=0.769;2=0.686;3=0.534;4=0;5=0"
cm[3]="1=0.189;2=0.168;3=0.131;4=0;5=0"
cm[4]="1=0;2=0;3=0;4=1;5=0"
cm[5]="1=0;2=0;3=0;4=0;5=1"

example 'Polaroid
cm[1]="1=1.438;2=-0.062;3=-0.062;4=0;5=0"
cm[2]="1=-0.122;2=1.378;3=-0.122;4=0;5=0"
cm[3]="1=-0.016;2=-0.016;3=1.483;4=0;5=0"
cm[4]=LDText.Split("0 0 0 1 0", " ")
cm[5]=LDText.Split("-0.03,0.05,-0.02,0,1",",")

'Schwarz/Weiß
cm[1]="1=1.5;2=1.5;3=1.5;4=0;5=0"
cm[2]="1=1.5;2=1.5;3=1.5;4=0;5=0"
cm[3]="1=1.5;2=1.5;3=1.5;4=0;5=0"
cm[4]="1=0;2=0;3=0;4=1;5=0"
cm[5]="1=-1;2=-1;3=-1;4=0;5=1"


Copy(image)
Kopiert ein ImageList Bild unter neue ImageList# (Intern: ImageList#+1).
image Der Name des zu kopierenden ImageList Bildes (Ein Dateipfad erstellt einen neuen LEEREN ImageList#+1 Eintrag).
returns Der Name des neuen ImageList Bildes bei Erfolg, sonst "".

Crop(image,x,y,width,height)
Beschneidet ein ImageList Bild. Der Ausschnittsbereich muß völlig innerhalb des Bildes und GW liegen. ImageList# bleibt unverändert, bei geändertem Bildausschnitt.
image Das zu beschneidende ImageList Bild.
x Die linke Position (ab 0) für den Ankerpunkt des Bildausschnittes [Pxl].
y Die obere Position (ab 0) für den Ankerpunkt des Bildausschnittes [Pxl].
width Die Breite des Bildausschnittes [Pxl].
height Die Höhe des Bildausschnittes [Pxl].

DifferenceImages(image1,image2)
Differenziert 2 ImageList Bilder durch Subtraktion (Absolutdifferenz) der einzelnen Pixelfarbwerte (Intern: ImageList#+1).
Ein Bild hat Pixel mit Werten für Rot, Grün und Blau im Bereich [0, 255].
Beide Bilder müssen gleiche Abmessungen haben, sonst keine Verarbeitung.

image1 Der Name des ersten ImageList Bildes.
image2 Der Name des zweiten ImageList Bildes.
returns Der Name des neuen ImageList Bildes bei Erfolg, sonst "".

Helle Bereiche bei größeren Farbunterschieden.
Sind beide Quellbilder identisch, ist das Ergebnisbild völlig schwarz.


EffectAccent(image,hue,range)
Fügt einen Farbtonakzent Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
hue Der Farbton für den Farbakzent (0 bis 360, Standard: 0 dh. Rot). Hue-Werte s. LDColours.GetHue.
range Der hervorzuhebende Farbtonbereich hue -/+ range/2 (>0, Standard: 40).
example 'Hervorhebung im Hue-Bereich 120-180 (Lime-Cyan)
EffectAccent(img, 150,60)


EffectBlocks(image,size)
Fügt einen Unschärfeeffekt (Verpixelung) ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
size Größenverhältnis (>0, Standard: 5).
Das Bild wird um diesen Faktor verkleinert und wieder auf Originalgröße gesetzt (geringere Auflösung, Verwischung).


EffectBlue(image)
Konvertierung zu Blau ([R,G,B]x[0,0,1]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectBulge(image,factor)
Fügt einen Wölbungseffekt ein (ähnlich FishEye/Fischauge). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
factor Der Ausbuchtungsfaktor, kann <1 sein für Einengungseffekt (Standard: 2).

EffectCartoon(image,radius,levels,inverse)
Fügt einen Cartooneffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
radius Der Pixelradius für den Cartooneffekt (ungerade Ganzzahl, Standard: 7).
levels Die Anzahl der Intensitätsgrade (1 bis 255, Standard: 10).
inverse Der Schwellenwert für SW-Invertierung (1 bis 254, Standard: 40).

EffectCharcoal(image)
Fügt einen Kohleskizze Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectContrast(image,contrast)
Fügt höheren Kontrast ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
contrast Kontrastfaktor (>0, Standard: 2), <1 reduziert Kontrast.

EffectCyan(image)
Konvertierung zu Cyan (EffectGray * [0,G,B]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectDefaults
Ermittelt oder setzt einen Array mit Standardwerten für Effektparameter (s. 'GetEffects' für Effektnamen und -nummern).

EffectEdge(image)
Fügt einen Prewitt Kanteneffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectFishEye(image,factor)
Fügt einen Fischauge Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
factor Der Weitwinkel Faktor, sollte >1 sein (Standard: 2).

EffectFuzzy(image,size)
Fügt einen Unschärfe-Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
size Der Pixelbereich für Unschärfe (>0, Standard: 4).

EffectGamma(image,gamma)
Fügt einen Gamma Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
gamma Der Gamma Exponent (zB. 2.2), Werte <1 erhellen und >1 verdunkeln (Standard: 2).

EffectGray(image)
Konvertierung zu Schwarz/Weiß (Grayscale, gewichtet). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectGreen(image)
Konvertierung zu Grün ([R,G,B]x[0,1,0]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectHue(image,hue)
Ändern des HSL Farbtons H. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
hue Der Farbtonwert (0 bis 360, Standard: 180).
example Hue-Werte s. LDColours.GetHue

EffectInverse(image)
Konvertierung zu Invers (Negativ, 255-[R,G,B]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectJagged(image,size)
Fügt einen Zackeneffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
size Der Pixelbereich für den Zackeneffekt (>0, Standard: 4).

EffectLightness(image,lightness)
Ändern der HSL Farbhelligkeit L. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
lightness Der Helligkeitsfaktor (>0, Standard: 2).

EffectMagenta(image)
Konvertierung zu Magenta (EffectGray * [R,0,B]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectNoiseRemoval(image)
Fügt einen Bildgeräusch Reduktionseffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectOilPaint(image,radius,levels)
Fügt einen Ölfarbe Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
radius Der Pixelradius für den Ölfarbe Effekt (ungerade Ganzzahl, Standard: 7).
levels Anzahl der Intensitätsgrade (1 bis 255, Standard: 20).

EffectPixelate(image,size)
Fügt einen Verpixelungseffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
size Vergröberungsfaktor [Pxl] oder "" (Standard: 16).

EffectPosterise(image,level)
Fügt einen Postereffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
level Der Effektgrad (2 bis 255, Standard: 50), 1-Originalbild, 256-völlig schwarz.

EffectRed(image)
Konvertierung zu Rot ([R,G,B]x[1,0,0]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectReflect(image,flip)
Fügt einen Kippeffekt ein (Spiegelung an y- oder x-Bildachse). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
flip 0 Li<->Re, horizontal um y-Achse (Standard)
1 Ob<->Unt, vertikal um x-Achse.


EffectRotate(image,rotation)
Rotationseffekt in 90° Schritten. ImageList# bleibt unverändert, bei geänderter Bildansicht.
Möglichst statt s. 'LDImage.Rotate' verwenden, da verlustfrei.

image Der Name des zu ändernden ImageList Bildes.
rotation Die Drehung in 90° Schritten:
0 +90 (rechts, Standard)
1 180
2 270 (-90, links)


EffectSaturation(image,saturation)
Ändern der HSL Farbsättigung S. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
saturation Der Sättigungsfaktor (>0, Standard: 2).

EffectSepia(image,threshold)
Fügt einen Sepiaeffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
threshold Der Sepia Schwellenwert (1-grau bis 255-gelb, Standard: 30).

EffectSketch(image)
Fügt einen Stiftskizze Effekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

EffectSnow(image,level)
Fügt einen Schneeeffekt ein (4% weiße Pixel). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
level Verhältniswert '1/level' zufällig gesetzte 'Schnee' Pixel (>0, Standard: 25 - also jedes 25. Pixel).

EffectSolarise(image,power)
Fügt einen Solarisierungseffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
power Die Stärke/Potenz der Solarisierung (>0, Standard: 2 dh. quadratisch).

EffectSwirl(image,factor)
Fügt einen Wirbeleffekt ein. ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.
factor Der Verwirbelungsfaktor (Standard: 1).

EffectYellow(image)
Konvertierung zu Gelb (EffectGray * [R,G,0]). ImageList# bleibt unverändert, bei geänderter Bildansicht.
image Der Name des zu ändernden ImageList Bildes.

GetEffects()
Ermittelt alle verfügbaren LDImage- und LDWebCam Effekte als Array (s. EffectDefaults für Standardwerte).
returns Ein Array mit den Effektnamen, indexiert durch die Effektnummer.

GetImagePixels(image)
Ermittelt einen 2D Array mit allen Pixelfarbwerten in einem ImageList Bild (s. SetImagePixels).
image Der Name des ImageList Bildes.
returns Ein 2D Array aller Pixelfarben (#AARRGGBB) des Bildes, indexiert durch [x][y] mit x,y von 1 bis Bildbreite/-höhe.

GetPixel(image,x,y)
Ermittelt die Farbe eines Pixels in einem ImageList Bild. Transparenz in ImageList ist #D3D3D3, LightGray (#D4D0C8 ??).
image Der Name des ImageList Bildes (vorzugsweise von bmp, png).
x Die x-Koordinate des Pixels (0 bis Bildbreite-1).
y Die y-Koordinate des Pixels (0 bis Bildhöhe+1).
returns Die Pixelfarbe als #AARRGGBB bei Erfolg, sonst "".

GetWorkingImagePixel(image,x,y)
Ermittelt die Hex Farbe eines Pixels in einem temporären Arbeitsbild.
image Das zuvor mit 'OpenWorkingImage' geöffnete Arbeitsbild.
x Die x-Koordinate des Pixels (1 bis Bildbreite).
y Die y-Koordinate des Pixels (1 bis Bildhöhe).
returns Die Pixelfarbe als #AARRGGBB bei Erfolg, sonst "".

GetWorkingImagePixelARGB(image,x,y)
Ermittelt die ARB Farbkomponenten eines Pixels in einem temporären Arbeitsbild.
image Das zuvor mit 'OpenWorkingImage' geöffnete Arbeitsbild.
x Die x-Koordinate des Pixels (1 bis Bildbreite).
y Die y-Koordinate des Pixels (1 bis Bildhöhe).
returns Die Pixelfarbe als Array der A,R,G,B Komponenten, indexiert durch "A", "R", "G", "B". "" bei Mißerfolg.

HeightMap2NormalMap(image,scale)
Erstellt ein neues ImageList Bild einer Normalenkarte aus einer Höhenkarte (Intern: ImageList#+1).
Die Höhe wird bestimmt durch die Helligkeit eines Pixels (höher = heller).

image Die Höhenkarte als ImageList Bild.
scale Der Skalierungsfaktor für die Erhöhung (Standard: 1).
returns Der Name für das neue ImageList Bild der resultierenden Normalenkarte.
example https://en.wikipedia.org/wiki/Heightmap

Histogram(image)
Ermittelt eine Statistik der Pixelfarbwerte in einem ImageList Bild.
image Der Name des ImageList Bildes.
returns Ein 2D Array mit Farbstatistik (indexiert durch 1,2,3 für R,G,B) mit Unterindizes 0 bis 255 und Werten für die Pixelanzahl.
example hist = LDImage.Histogram(img)
rotHist = hist[1] ' 256-element. Array "cR[0-255]=nPxl;"


LoadSVG(fileName)
Laden einer lokalen SVG Bilddatei (Skalierbare Vektorgrafik) als neues ImageList Bild (Intern: ImageList#+1).
fileName Der volle Dateipfad der zu ladenden SVG Datei.
returns Der Name des neuen ImageList Bildes bei Erfolg, sonst "" bzw. Fehlermeldung.

MakeTransparent(image,colour)
Setzt alle Pixel einer angegebenen Farbe in einem ImageList Bild zu 'Transparent' ("#00000000", 32b ARGB).
s.a. 'ReplaceColour'

image Der Name des ImageList Bildes.
colour Die als 'Transparent' zu setzende Farbe.

MetaData(imageFile)
Ermittelt verfügbare Metadaten (Exif, Thumbnail usw.) zu einer Bilddatei als Array.
imageFile Der volle Pfad der Bilddatei (kein ImageList Bild).
returns Ein Array mit den Werten der Metadaten, indexiert durch deren Hex ID (0 bis "A302", Werte mit a-f in "") gemäß:
http://msdn.microsoft.com/library/system.drawing.imaging.propertyitem.id.aspx (ID Liste).

example meta = LDImage.MetaData(picPfad)
width = meta[100] 'Breite
height = meta[101] 'Höhe
bpSample = meta[102] 'Bits/Farbkanal
xRes = meta["11a"] 'x Auflösg px/unit
yRes = meta["11b"] 'y Auflösg px/unit
unit = meta[128] 'Einheit (2 Zoll,3 cm)
dateTaken = meta[132] 'Aufnahmedatum
jpgQTable = meta[207] 'Samples/pxl
lum = meta[5090] 'Luminanz Tabelle
chrom = meta[5091] 'Chrominanz Tabelle


Multiply(image,red,green,blue)
Multipiziert die Farbwerte in einem ImageList Bild mit einem Faktor (<1 dunkler, >1 heller).
Ein Bild hat Pixel mit Werten für Rot, Grün und Blau im Bereich [0, 255].

image Der Name des zu ändernden Bildes.
red Der Faktor für den Rotanteil.
green Der Faktor für den Grünanteil.
blue Der Faktor für den Blauanteil.
example A. Sepia Effekt:
LDImage.EffectGray(img)
LDImage.Multiply(img, 1,0.95,0.82)
B. Farbfilter:
'LDImage.EffectGray(img)
c = LDColours.FARBE
cR = LDColours.GetRed(c)/255
cG = LDColours.GetGreen(c)/255
cB = LDColours.GetBlue(c)/255
LDImage.Multiply(img, cR,cG,cB)
C. White (255, 255, 255) zu
Orange (255, 165, 0):
fR = 1 '255/255
fG = 0.647 '165/255
fB = 0
LDImage.Multiply(img, fR,fG,fB)


NewImage(width,height,colour)
Erstellt ein neues einfärbiges 32bitARGB Bild in ImageList (Intern: ImageList#+1).
Standardauflösung: 96x96 Pxl/Zoll (DPI).

width Die Breite des neuen Bildes [Pxl] (>=1).
height Die Höhe des neuen Bildes [Pxl] (>=1).
colour Die Einheitsfarbe des neuen Bildes als #(AA)RRGGBB (Standard: "#00000000", transparent "Black") oder (LDColours.)Farbname.
returns Der Name des neu erstellten ImageList Bildes bei Erfolg, sonst "".

NormalMap(shapeName,sourceX,sourceY,sourceZ,texture,ambient,intensity)
Bearbeitet ein Bild (oder bearbeitetes Bild bei gesetzter Textur) zur Anzeige eines Graustufen Schatteneffektes, basierend auf dem Abbild einer Normalenkarte.
shapeName Eine Bildshape (Shapes.AddImage) mit dem Bild der Normalenkarte.
Die R,G,B Farbkomponenten definieren die Normalvektoren auf ein 3D Abbild.

sourceX Die x-Position der Lichtquelle relativ zum Abbild.
sourceY Die y-Position der Lichtquelle relativ zum Abbild.
sourceZ Die z-Position der Lichtquelle relativ zum Abbild. Dies ist die Höhe über dem Bild.
texture Ein optionales ImageList Bild mit Textur (Farbe) zur Bearbeitung (oder ""). Selbe Abmessungen wie die Normalenkarte.
Diese Textur kann in weiteren Aufrufen geändert werden.

ambient Optionale Intensität für Umgebungslicht bei gesetzter Textur (Standard: 0.3).
intensity Optionale Lichtstärke bei gesetzter Textur (Standard: 2).
example http://en.wikipedia.org/wiki/Normal_mapping

OpenWorkingImage(image)
Öffnet ein temporäres Arbeitsbild zur schnellen Pixelmanipulation.
Nach Bearbeitung sollte dieses temporäre Arbeitsbild mit 'CloseWorkingImage' zum Ausgangsbild zurückgesetzt werden (ImageList# bleibt unverändert).

image Das zu öffnende ImageList Bild zur Verwendung als temporäres Arbeitsbild.

Remove(image)
Entfernt ein ImageList Bild. Indexnummern (ImageList#) bleiben unverändert. Nur Bild wird aus ImageList# entfernt, sodaß dieser Eintrag dann leer ist.
image Der Name des aus ImageList zu entfernenden Bildes (Intern: ImageList#).

ReplaceColour(image,colourFrom,colourTo,tolerance)
Ersetzt alle Pixel einer angegebenen Farbe (bzw. -bereich) in einem ImageList Bild durch eine andere Farbe (24b RGB).
s.a. 'MakeTransparent'. Bild ev. erst zu 32bit konvertieren s. 'To32bitARGB'.

image Der Name des ImageList Bildes.
colourFrom Die zu ersetzende Farbe.
colourTo Die anzuwendende Ersatzfarbe.
tolerance Die Toleranz für die zu ersetzende Farbe (0 bis 255):
0 nur exakte Farbe (Standard)
255 alle Farben
Alle ARGB Pixelwerte innerhalb dieser Toleranz werden ersetzt.


Resize(image,width,height)
Setzt eine neue Größe für ein gesamtes ImageList Bild (Thumbnail Bild). ImageList# bleibt unverändert, bei geänderter Bildgröße (Qualitätsverlust beim Vergrößern).
image Der Name des zu ändernden ImageList Bildes.
width Die neue Breite [Pxl].
height Die neue Höhe [Pxl].
example Für gleichbleibendes Verhältnis width/height = Const beibehalten.

Rotate(image,angle)
Drehen eines ImageList Bildes. ImageList# bleibt unverändert, bei geänderter Bildansicht.
Möglichst vermeiden, da merklicher Qualitätsverlust. Für n*90° Drehung(en) besser s. EffectRotate verwenden.

image Der Name des zu drehenden ImageList Bildes.
angle Der Rotationswinkel [Grad] des Bildes im Uhrzeigersinn.

Save(image,fileName)
Speichert ein ImageList Bild als jpg Bilddatei (Qualität: 75%, Kompressionsgrad 25%).
Wie s. LDImage.SaveAs(image, "[Ordnerpfad\]Bilddatei.jpg")

image Der Name des zu speichernden ImageList Bildes.
fileName Der volle Dateipfad zum Speichern des Bildes (im jpeg-Format, unabhängig von Erweiterung).

SaveAs(image,fileName)
Speichert ein ImageList Bild als verschiedene Dateiformate (bestimmt durch Dateierweiterung).
Jpg Format wird in Qualität 75% (Kompressionsgrad 25%) gespeichert.
Zum Speichern als (Mehrfachbild) Icon oder Cursor s. 'LDIcon.CreateIcon'.

image Der Name des zu speichernden ImageList Bildes.
fileName Der volle Dateipfad zum Speichern des Bildes. Eine bestehende Datei wird überschrieben.
Erlaubte Dateityp Erweiterungen sind bmp, gif, jp(e)g, png, tiff oder ico (speichert als png Typ).


SetImagePixels(pixels)
Erstellt ein neues ImageList Bild aus einem 2D Array mit #(AA)RRGGBB Pixelfarbwerten (Intern: ImageList#+1), s. GetImagePixels für Pixelarray.
pixels Ein 2D Array mit Pixelfarben für das Bild, indexiert durch [x][y] mit x,y von 1 bis Bildbreite/-höhe.
returns Der Name des neu erstellten ImageList Bildes vom Pixelarray.
example 'runder Bildrahmen (Passepartout), Radius r:
For x = 1 To 2*r
For y = 1 To 2*r
If (x-r)*(x-r)+(y-r)*(y-r) pxl[x][y] = "Transparent" 'innen
Else
pxl[x][y] = "Peru" 'Rahmen
EndIf
EndFor
EndFor
img = LDImage.SetImagePixels(pxl)


SetPixel(image,x,y,colour)
Setzt die Farbe eines Pixels in einem ImageList Bild.
image Der Name des ImageList Bildes (vorzugsweise von bmp, png).
x Die x-Koordinate des Pixels (0 bis Bildbreite-1).
y Die y-Koordinate des Pixels (0 bis Bildhöhe-1).
colour Die zu setzende Farbe, zB. (LDColours.)Farbname oder #(AA)RRGGBB.

SetWorkingImagePixel(image,x,y,colour)
Setzt die Farbe eines Pixels in einem temporären Arbeitsbild.
image Das zuvor mit 'OpenWorkingImage' geöffnete Arbeitsbild.
x Die x-Koordinate des Pixels (1 bis Bildbreite).
y Die y-Koordinate des Pixels (1 bis Bildhöhe).
colour Die zu setzende Pixelfarbe als #(AA)RRGGBB oder (LDColours.)Farbname.

SplitImage(imageName,countX,countY)
Ermittelt zerteilte Einzelbilder von einem angegebenen (ImageList) Gesamtbild als Array (Intern: ImageList#+1, .., #+x*y).
imageName Der Name des zu ladenden ImageList Bildes oder voller Pfad der Bilddatei (lokal oder Netzwerk).
countX Die Anzahl der Teilbilder in x-Richtung (Spalten).
countY Die Anzahl der Teilbilder in y-Richtung (Zeilen).
returns Ein 2D Array[x][y] mit resultierenden ImageList# Bildern, wobei die Indizes (1-countX) die Spalten und deren Innerarrays (1-countY) die Zeilen darstellen.

Statistics(image)
Ermittelt Minimum, Maximum, Mittelwert und Standardabweichung für Pixelfarben in einem ImageList Bild.
image Der Name des ImageList Bildes.
returns Ein 2D Array mit Statistikwerten (indexiert durch "Min", "Max", "Mean", "STD") mit Unterindizes 1,2,3 für R,G,B und Werten 0 bis 255.
example stat = LDImage.Statistics(img)
min = stat["Min"] ' "1=cR;2=cG;3=cB;"


To32bitARGB(image)
Konvertiert ein ImageList Bild zum Format ARGB (Alphakanal mit 32bit/Pxl) wenn erforderlich (Überprüfung).
image Der Name des zu ändernden ImageList Bildes (zB. geladenes Jpg Bild).
returns "SUCCESS" bei Erfolg, sonst "FAILED".
example img = ImageList.LoadImage(jpgBild)
LDImage.To32bitARGB(img) 'mit Alphakanal


UseFastPixelMethods
Ermittelt oder setzt die Verwendung einer schnellen Methode zur Pixelmanipulation? "True" (Standard) oder "False".
Diese (LockBits) Methode kann hiermit auch deaktiviert werden.


LDInline
Einbinden von C#, VB, JScript Code zum Ausführen während der Programmlaufzeit und Reflexion Methoden.
Werden mehrere Namespaces oder Klassen verwendet, sollten alle Methoden-, Eigenschaften- oder Ereignisnamen eindeutig verwendet werden.
Alternativ kann ein vollqualifizierter 'Namespace.Typ.Name' verwendet werden.
Kann zum Kompilieren von Extensions und zusammen mit weiteren externen, kompilierten (.NET) Dlls verwendet werden.
Methode, Eigenschaft, Ereignis, Klasse und Referenzen können übernommen werden (nur 'public static').

Die Assemblies der aktuellen Anwendung werden automatisch referenziert.
Abhängig von verwendeten .NET Methoden können zusätzliche Assemblies erforderlich sein, die nach vollem Dll Pfad zu referenzieren sind.
Assembly Dlls sind meist an folgenden oder ähnlichen Orten zu finden:
C:\Windows\Microsoft.NET\Framework\v?.?*\ (zB. v3.5 oder v4.0..)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\
Bei Ausgabe im TextWindow sollte dieses bereits vor Aufruf der Methoden geöffnet werden (sonst ev. keine Ausgabe).

example other-samples\LDInline.sb, LDInline-Reflection.sb (incl. code1.cs/code1.vb)

Call Event Get
GetAssemblies GetEvents GetMethodParameters
GetMethods GetProperties GetReferences
GetTypes IncludeCS IncludeJScript
IncludeVB LoadDLL Set

Call(method,args)
Aufruf einer zuvor inkludierten Methode. Binary zuvor geladen per LoadDLL od. virtuell kompilierte Source per IncludeCS/-VB/-JScript.
Bei Verwendung externer Dlls müssen diese im 'SB\Lib' oder Programmordner liegen.

method Der Name der Methode in "".
args Die Argumente für die Methode. "" für ohne, ein Einzelwert oder ein Array (für mehrere Werte, KEINE "" Argumente).
returns Das Rückgabeergebnis(se) des Aufrufs oder "" bei Erfolg, sonst "FAILED".

Event(event,callBack)
Setzt die aufzurufende Subroutine für ein zuvor inkludiertes Ereignis. Binary zuvor geladen per LoadDLL od. virtuell kompilierte Source per IncludeCS/-VB.
Bei Verwendung externer Dlls müssen diese im 'SB\Lib' oder Programmordner liegen.

event Der Ereignisname in "".
callBack Die aufzurufende SB Event-Sub.

Get(property)
Ermittelt den Wert einer zuvor inkludierten Eigenschaft. Binary zuvor geladen per LoadDLL od. virtuell kompilierte Source per IncludeCS/-VB/-JScript.
Bei Verwendung externer Dlls müssen diese im 'SB\Lib' oder Programmordner liegen.

property Der Name der Eigenschaft in "".
returns Der Wert der Eigenschaft oder "FAILED".

GetAssemblies(fullName)
Ermittelt alle verwendeten Inline Assemblies mit Pfaden als Array (Reflexion).
Dies sind die referenzierten Assemblies welche aktuell auch verwendet werden.

fullName Den vollen Referenzname (mit 'Version, Culture, PublicKeyToken') ermitteln? "True" oder "False" (nur Basisname).
returns Die Assemblynamen und Dll-Pfade als Array "asm(, .., ..)=dllPfad;..;".

GetEvents()
Ermittelt alle geladenen Inline Ereignisse mit Handlertyp als Array (Reflexion).
returns Die Ereignisnamen und Handlertyp als Array "event=typ;..;".

GetMethodParameters(method)
Ermittelt alle Parameter (Argumente) mit Rückgabetyp einer geladenen Inline Methode als Array (Reflexion).
method Der Name der Methode in "".
returns Die Parameternamen und Rückgabetyp als Array "param=typ;..;".

GetMethods(fullName)
Ermittelt alle geladenen Inline Methoden (auch innerhalb Eigenschaften) mit Rückgabetyp als Array (Reflexion).
fullName Den vollen Methodenname (mit 'Namespace.Klasse.') ermitteln? "True" oder "False" (Standard, nur Basisname).
returns Die Methodenamen und Rückgabetyp (zB. Microsoft.SmallBasic.Library.Primitive oder System.Void) als Array "method=typ;..;".

GetProperties()
Ermittelt alle geladenen Inline Eigenschaften mit Rückgabetyp als Array (Reflexion).
returns Die Eigenschaftsnamen und Rückgabetyp als Array "prop=typ;..;".

GetReferences(fullName)
Ermittelt alle hinzugefügten Inline Referenzen mit Pfaden als Array (Reflexion, nur nach IncludeCS/-VB via Quellcode).
Dies sind manuell hinzugefügte Referenzen, diese können verwendet werden oder auch nicht.

fullName Den vollen Referenzname (mit 'Version, Culture, PublicKeyToken') ermitteln? "True" oder "False" (nur Basisname).
returns Die angegebenen Referenznamen und Dll-Pfade als Array "ref(, .., ..)=dllPfad;..;".

GetTypes()
Ermittelt alle geladenen Inline Klassennamen mit Namespace als Array (Reflexion).
returns Die Klassen- und Namespacenamen als Array "class=namespace;..;".

IncludeCS(source,assemblies,dllName)
Inkludiert und kompiliert eine C# Klasse(n). Kann der Inhalt einer per 'File.ReadContents' gelesenen Datei sein.
Zum Erstellen der Dll Datei muß Schreibberechtigung im Ordner bestehen. Zum Direktladen einer bestehenden Dll s. LoadDLL.

source Der C# Quellcode.
assemblies Ein Array ev. zusätzlich erforderlicher Assemblies. "" für automatisches Referenzieren/Laden (Angabe für SBLibrary.dll, Microsoft.VisualBasic.dll ist nicht erforderlich).
dllName Optionaler Dateiname zum Erstellen einer Dll (+ .xml) im akt. Ordner. "" für virtuelle Ausführung (Erstellen+Laden) im Arbeitsspeicher.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

IncludeJScript(source,assemblies,dllName)
Inkludiert und kompiliert ein JScript Modul(e) (public class NAME). Kann der Inhalt einer per 'File.ReadContents' gelesenen Datei sein.
Zum Erstellen der Dll Datei muß Schreibberechtigung im Ordner bestehen. Zum Direktladen einer bestehenden Dll s. LoadDLL.

source Der JScript Quellcode.
assemblies Ein Array ev. zusätzlich erforderlicher Assemblies. "" für automatisches Referenzieren/Laden (Angabe für SBLibrary.dll ist nicht erforderlich).
dllName Optionaler Dateiname zum Erstellen einer Dll im akt. Ordner. "" für virtuelle Ausführung (Erstellen+Laden) im Arbeitsspeicher.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

IncludeVB(source,assemblies,dllName)
Inkludiert und kompiliert ein VB Modul(e). Kann der Inhalt einer per 'File.ReadContents' gelesenen Datei sein.
Zum Erstellen der Dll Datei muß Schreibberechtigung im Ordner bestehen. Zum Direktladen einer bestehenden Dll s. LoadDLL.

source Der VB Quellcode.
assemblies Ein Array ev. zusätzlich erforderlicher Assemblies. "" für automatisches Referenzieren/Laden (Angabe für SBLibrary.dll ist nicht erforderlich).
dllName Optionaler Dateiname zum Erstellen einer Dll (+ .xml) im akt. Ordner. "" für virtuelle Ausführung (Erstellen+Laden) im Arbeitsspeicher.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

LoadDLL(dllName)
Verwenden einer zuvor kompilierten und gespeicherten .NET Dll (Aufruf direkt vom Quell- oder 'SB\Lib' Ordner). Obsolet für virtuell im Arbeitsspeicher erstellte Dll (s. Include.. Methoden).
dllName Der Pfad zur Dll Datei.
example Zum Laden einer Assembly.exe, diese erst zu Assembly.dll umbenennen.

Set(property,value)
Setzt den Wert einer zuvor inkludierten Eigenschaft. Binary zuvor geladen per LoadDLL od. virtuell kompilierte Source per IncludeCS/-VB/-JScript.
Bei Verwendung externer Dlls müssen diese im 'SB\Lib' oder Programmordner liegen.

property Der Name der Eigenschaft in "".
value Der Wert der Eigenschaft.

LDIOWarrior
Zugriff auf IO-Warrior Geräte (http://www.codemercs.com/io-warrior/?L=0).
example other-samples\LDIOWarrior.sb

Detatch GetName GetPID
GetReportSize GetSerialNumber GetSpecialReportSize
GetVersion GetVID Initialise
LastError LCDWrite Read
Timeout Write

Detatch()
Auswerfen/Abtrennen aller IO-Warrior Geräte.

GetName(id)
Ermittelt den Gerätename.
id Die Gerätenummmer (ab 1).
returns Der Gerätename oder "".

GetPID(id)
Ermittelt die PID des Gerätes.
id Die Gerätenummmer (ab 1).
returns Die Geräte-PID (Hex) oder 0.

GetReportSize(id)
Ermittelt die Berichtgröße.
Anzahl von Bytes beim Lesen/Schreiben.
Dies ist die Berichtgröße für Kanal 0.

id Die Gerätenummmer (ab 1).
returns Die Berichtgröße oder 0.

GetSerialNumber(id)
Ermittelt die Seriennummer des Gerätes.
id Die Gerätenummmer (ab 1).
returns Die Geräte-Seriennummer oder "".

GetSpecialReportSize(id)
Ermittelt die spezielle Berichtgröße.
Anzahl von Bytes beim speziellen Lesen/Schreiben.
Dies ist die Berichtgröße für Kanal 1.

id Die Gerätenummmer (ab 1).
returns Die spezielle Berichtgröße oder 0.

GetVersion(id)
Ermittelt die Firmware Version des Gerätes.
id Die Gerätenummmer (ab 1).
returns Die Gerätefirmware Version oder 0.

GetVID()
Ermittelt die VID (ist allen IOWarrior Typen gemeinsam) des Gerätes.
returns Die Geräte-VID (Hex) oder 0.

Initialise()
Initialisierung für IO-Warrior Geräte.
returns Die Anzahl der gefundenen Geräte.

LastError()
Ermittelt den letzten System Fehlercode.
"" für keinen Fehler (ev. nur zweckmäßig zur detailierten Fehleranalyse untergeordneter Systemaufrufe).

returns Die letzte Fehlernummer.

LCDWrite(id,text)
Schreibt Text an die LCD (nicht getestet).
id Die Gerätenummmer (ab 1).
text Der zu schreibende Text.

Read(id,channel,blocking,count)
Lesen vom IO-Warrior Gerät.
id Die Gerätenummmer (ab 1).
channel Der Lesekanal (ab 0).
blocking "True" (Rückgabe nach einer Statusänderung) oder "False" (Rückgabe mit aktuellem Status).
count Die Anzahl zu lesender Bytes. Wenn null, wird Berichtgröße 'ReportSize' verwendet für Kanal 0 bzw. 'SpecialReportSize' für Kanal 1.
s. GetReportSize und GetSpecialReportSize

returns Die ausgelesenen Bytes (0 bis 255) als Array.

Timeout
Die Timeout-Dauer für Lesen und Schreiben in ms (Standard: 1000).

Write(id,channel,data)
Schreiben von Bytes in das IO-Warrior Gerät.
id Die Gerätenummmer (ab 1).
channel Der Schreibkanal (ab 0).
data Ein Array der zu sendenden Bytes (0 bis 255).
Die Arraygröße sollte betragen 'ReportSize' für Kanal 0 bzw. 'SpecialReportSize' für Kanal 1.
s. GetReportSize und GetSpecialReportSize

returns Die Anzahl erfolgreich geschriebener Bytes.

LDList
Bietet Möglichkeiten zum Speichern von Werten (Zahl, String, Var) wie in einem 1D Array, der sich selbst neuordnet, sobald Elemente hinzugefügt oder entfernt werden.
Eine Liste ist ein effizienter Arrayspeicher (weit schneller als SB Arrays), kann durch Ganzzahlen indexiert werden und bietet diverse weitere Methoden.
Die Indexierung (ab 1) wird automatisch aktualisiert sobald sich die Liste ändert. Listenname vordefiniert zB. list = "" oder in "" (Intern: List#).

example 3D-samples\3DRubicCube.sb
other-samples\LDFastShapes.sb
http://social.technet.microsoft.com/wiki/contents/articles/24946.small-basic-list-extension.aspx
http://de.wikipedia.org/wiki/Menge_(Mathematik)

int = Intersect(A, B) 'A ∩ B
uni = Union(A, B) 'A ∪ B
nurA = Except(A, int) 'A - B
nurB = Except(B, int) 'B - A
xor = Union(nurA, nurB) 'Symmetr. Diff. A ⊕ B
xor2 = Except(uni, int) 'A ⊕ B
A⊕B = (A-B) ∪ (B-A) = (A∪B) - (A∩B)


Add Append Clear
Contains Copy Count
CreateFromIndices CreateFromValues Distinct
Except Find FindIndices
GetAt IndexOf InsertAt
Intersect Print Read
Remove RemoveAt Reverse
SetAt SortByNumber SortByText
SubList ToArray Union
Write

Add(listName,value)
Fügt einen Wert am Ende einer angegebenen Liste hinzu. Eine nicht bestehende Liste wird erstellt.
listName Der Name der Liste.
value Der anzufügende Wert (zB. String, SB Array, Zahl).
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.
example 'Liste A mit Werten 1-10
list = "A"
For n = 1 To 10
LDList.Add(list, n)
EndFor


Append(listName1,listName2)
Fügt am Ende der ersten Liste eine zweite Liste hinzu.
listName1 Der Name der ersten Liste.
listName2 Der Name der zweiten Liste zum Anfügen an listName1.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

Clear(listName)
Entfernt alle Werte von einer angegebenen Liste.
listName Der Name der Liste.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

Contains(listName,value)
Ermittelt ob ein angegebener Wert in einer Liste enthalten ist.
listName Der Name der Liste.
value Der gesuchte Wert.
returns "True" oder "False".

Copy(listName)
Kopiert eine Liste in eine neue Liste (Intern: List#+1).
listName Der Name der Liste.
returns Der Name der neuen Listenkopie bei Erfolg, sonst "".

Count(listName)
Ermittelt die Anzahl der Elemente in der angegebenen Liste.
listName Der Name der Liste.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

CreateFromIndices(sbArray)
Kopiert alle Indizes eines SB Array in eine neue Liste (Intern: List#+1).
sbArray Der Name des SB Array.
returns Der Name der erstellten Liste bei Erfolg, sonst "".

CreateFromValues(sbArray)
Kopiert alle Werte eines SB Array in eine neue Liste (Intern: List#+1).
Die Arrayindizes werden in der Liste ignoriert.

sbArray Der Name des SB Array.
returns Der Name der erstellten Liste bei Erfolg, sonst "".

Distinct(listName)
Ermittelt eine Teilliste einmaliger Werte (ohne Duplikate) von einer angegebenen Liste (Intern: List#+1).
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName Der Name der Liste.
returns Der Name der neuen Teil-/Unterliste bei Erfolg, sonst "".

Except(listName1,listName2)
Ermittelt eine Liste nicht-gemeinsamer, unterschiedlicher Werte (Differenz-/Restmenge A\B, A-B) zweier angegebener Listen (Intern: List#+1).
Elemente von Liste A ohne die Elemente von B.
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName1 Der Name der ersten Liste.
listName2 Der Name der zweiten Liste.
returns Der Name der neuen Restliste bei Erfolg, sonst "".

Find(listName,match,exact)
Ermittelt eine Teilliste gefundener Texttreffer in einer angegebenen Liste (Intern: List#+1).
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName Der Name der Liste.
match Der gesuchte Text.
exact Exakte Übereinstimmung (GROß-/kleinschr. ignoriert)? "True" (Standard) oder "False" (Suchtext ist überhaupt in der Liste enthalten).
returns Der Name der neuen Teilliste mit Treffern bei Erfolg, sonst "".

FindIndices(listName,match,exact)
Ermittelt eine Teilliste mit den Indizes gefundener Texttreffer in einer angegebenen Liste (Intern: List#+1).
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName Der Name der Liste.
match Der gesuchte Text.
exact Exakte Übereinstimmung (GROß-/kleinschr. ignoriert)? "True" (Standard) oder "False" (Suchtext ist überhaupt in der Liste enthalten).
returns Der Name der neuen Teilliste mit Trefferindizes bei Erfolg, sonst "".

GetAt(listName,index)
Ermittelt den Wert am angegebenen Index (ab 1) in einer Liste.
listName Der Name der Liste.
index Die zu ermittelnde Indexnummer.
returns Der Listenwert.

IndexOf(listName,value)
Ermittelt den Index (ab 1) des ersten Auftreten eines Wertes in der angegebenen Liste.
listName Der Name der Liste.
value Der Wert dessen Index gesucht ist (0 falls kein Fund).
returns Der Index des Wertes oder 0.

InsertAt(listName,index,value)
Fügt einen Wert am angegebenen Index (ab 1) in eine Liste ein.
listName Der Name der Liste.
index Der Index an dem eingefügt wird.
value Der einzufügende Wert.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

Intersect(listName1,listName2)
Ermittelt eine Liste von gemeinsamen, übereinstimmenden Werten (Schnittmenge A∩B, ohne Duplikate) zweier angegebener Listen (Intern: List#+1).
Gemeinsame Elemente von Liste A und B.
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName1 Der Name der ersten Liste.
listName2 Der Name der zweiten Liste.
returns Der Name der neuen Schnittliste bei Erfolg, sonst "".

Print(listName)
Zeilenweise Ausgabe einer Liste im TextWindow (listName| 1 : val1| 2 : val2| ...).
Vorangestelltes 'TextWindow.WriteLine' gibt am Ende auch die Anzahl der Listenelemente aus.

listName Der Name der Liste.
returns Die Anzahl der Listenelemente bei Erfolg, sonst -1.

Read(filePath)
Ermittelt eine Liste aus einer Datei. Ein Listenwert je Zeile (Intern: List#+1).
filePath Der volle Dateipfad zum Einlesen der Liste.
returns Der Name der neuen Liste bei Erfolg, sonst "".

Remove(listName,match,exact)
Entfernt alle Vorkommen eines gefundenen Texttreffers in einer angegebenen Liste.
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName Der Name der Liste.
match Der gesuchte Text.
exact Exakte Übereinstimmung (GROß-/kleinschr. ignoriert)? "True" (Standard) oder "False" (Suchtext ist überhaupt in der Liste enthalten).
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

RemoveAt(listName,index)
Entfernt einen Wert am angegebenen Index (ab 1) von einer Liste.
listName Der Name der Liste.
index Die zu entfernende Indexnummer.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

Reverse(listName)
Kehrt die Reihenfolge der Werte (Indizes) in einer angegebenen Liste um.
listName Der Name der Liste.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

SetAt(listName,index,value)
Setzt (ersetzt) den Wert am angegebenen Index (ab 1) in einer Liste.
listName Der Name der Liste.
index Die neu zu besetzende Indexnummer.
value Der zu setzende Wert.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

SortByNumber(listName)
Sortiert eine angegebene Liste, wobei deren Elemente als Zahlen behandelt werden (numerische Sortierung).
Alle Werte müssen Zahlen sein.

listName Der Name der Liste.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

SortByText(listName)
Sortiert eine angegebene Liste wobei deren Elemente als Textstrings behandelt werden (lexikalische Sortierung).
Bei der Sortierung wird GROß-/kleinschr. ignoriert.

listName Der Name der Liste.
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

SubList(listName,start,length)
Ermittelt eine Teilliste von einer angegebenen Liste (Intern: List#+1).
listName Der Name der Liste.
start Der erste Index in der Teilliste.
length Die Länge der Teilliste.
returns Der Name der neuen Teil-/Unterliste bei Erfolg, sonst "".

ToArray(listName)
Konvertiert eine Liste zu einem SB Array.
Für große Listen nicht empfehlenswert.

listName Der Name der Liste.
returns Der Name des SB Array bei Erfolg, sonst "".
example 'Listenvergleich
arr1 = LDList.ToArray(list1)
arr2 = LDList.ToArray(list2)
'ev. erst LDList.SortByText/-Number
If arr1 = arr2 Then
TextWindow.WriteLine("Gleich")
Else
TextWindow.WriteLine("Verschieden")
EndIf


Union(listName1,listName2)
Ermittelt eine Liste kombinierter Werte (Vereinigungsmenge A∪B, ohne Duplikate) zweier angegebener Listen (Intern: List#+1).
Alle Elemente von Liste A und B.
Beim Textvergleich wird GROß-/kleinschr. ignoriert.

listName1 Der Name der ersten Liste.
listName2 Der Name der zweiten Liste.
returns Der Name der neuen Vereinigungsliste bei Erfolg, sonst "".

Write(listName,filePath,append)
Speichert eine Liste in eine Datei (Eine Zeile je Listenwert).
listName Der Name der Liste.
filePath Der volle Dateipfad zum Speichern der Liste.
append Am Ende einer existierenden Datei anhängen? "True" oder "False" (neue Datei erstellen).
returns Die Anzahl der Elemente in der Liste bei Erfolg, sonst -1.

LDLogic
Logikoperationen und lexikalischer Stringvergleich.
Zur Berechnung eines Ausdrucks unter Verwendung dieser Operationen, benutze 'LDMath.Evaluate3'.

example eingabe = 3.1
res = LDLogic.Switch(LDMath.Evaluate3(eingabe+"<5"),"OK","Neueingabe nötig") ' "OK"

'Boolsche Vereinfachungen
!(x=y || y>=z
(x!=y) || !(y==z && y==x) y!=x || y!=z
!(x>=-3 && x<=0) && x>5 x>5


And_ CaseSensitive EQ
GE GT LE
LT NE Not
Or_ Switch XOr

And_(value1,value2)
Logische 'And' (Und, &) Verknüpfung zweier Boolwerte (endender _ zur Unterscheidung vom 'And' Schlüsselwort):
And_("True","True") = "True"
And_("True","False") = "False"
And_("False","True") = "False"
And_("False","False") = "False"

value1 Die erste Bedingung ("True" oder "False").
value2 Die zweite Bedingung ("True" oder "False").
returns "True" oder "False".
example Not A And Not B = A NOr B

CaseSensitive
Ermittelt oder setzt die Beachtung von GROß-/kleinschr. bei Stringvergleich. "True" (Standard) oder "False".
Für Methoden EQ, GE, GT, LE, LT, NE.


EQ(value1,value2)
Der 'EQual' (gleich, =) Operator.
Prüft ob Wert1 gleich Wert2 ist (NXor).
Auch zum lexikalischen Stringvergleich (s. CaseSensitive).

value1 Der erste Wert.
value2 Der zweite Wert.
returns "True" oder "False".
example LDLogic.EQ("Text", "Texte") ' "False"
'Zufallswert "True" oder "False"
LDLogic.EQ(Math.GetRandomNumber(2), 2)


GE(value1,value2)
Der 'Greater than/Equal' (größer/gleich, >=) Operator.
Prüft ob Wert1 größer oder gleich Wert2 ist.
Auch zum lexikalischen Stringvergleich (s. CaseSensitive).

value1 Der erste Wert.
value2 Der zweite Wert.
returns "True" oder "False".

GT(value1,value2)
Der 'Greater Than' (größer als, >) Operator.
Prüft ob Wert1 größer als Wert2 ist.
Auch zum lexikalischen Stringvergleich (s. CaseSensitive).

value1 Der erste Wert.
value2 Der zweite Wert.
returns "True" oder "False".

LE(value1,value2)
Der 'Less than/Equal' (kleiner/gleich, <=) Operator.
Prüft ob Wert1 kleiner oder gleich Wert2 ist.
Auch zum lexikalischen Stringvergleich (s. CaseSensitive).

value1 Der erste Wert.
value2 Der zweite Wert.
returns "True" oder "False".

LT(value1,value2)
Der 'Less Than' (kleiner als, <) Operator.
Prüft ob Wert1 kleiner als Wert2 ist.
Auch zum lexikalischen Stringvergleich (s. CaseSensitive).

value1 Der erste Wert.
value2 Der zweite Wert.
returns "True" oder "False".

NE(value1,value2)
Der 'Not Equal' (ungleich, <>) Operator.
Prüft ob Wert1 ungleich Wert2 ist (s. XOr).
Auch zum lexikalischen Stringvergleich (s. CaseSensitive).

value1 Der erste Wert.
value2 Der zweite Wert.
returns "True" oder "False".
example LDLogic.NE("text", "TexT") ' "True"

Not(value)
Logische Umkehrung eines Boolwertes, 'Not' (Nicht, ~) Operator:
Not("True") = "False"
Not("False") = "True"

value Die umzukehrende Bedingung ("True" oder "False").
returns "True" oder "False".

Or_(value1,value2)
Logische 'Or' (Oder, |) Verknüpfung zweier Boolwerte (endender _ zur Unterscheidung vom 'Or' Schlüsselwort):
Or_("True","True") = "True"
Or_("True","False") = "True"
Or_("False","True") = "True"
Or_("False","False") = "False"

value1 Die erste Bedingung ("True" oder "False").
value2 Die zweite Bedingung ("True" oder "False").
returns "True" oder "False".
example Not A Or Not B = A NAnd B

Switch(condition,value1,value2)
Führt eine Kurzanweisung mit logischer Bedingung aus. (s. Ternary-, ?: Operator, http://msdn.microsoft.com/library/ty67wk28.aspx)
condition Eine Bedingung oder Variable welche "True" oder "False" ergibt, bzw. LDMath.Evaluate3(condition) für Stringausdruck oder Vergleich.
value1 Der Rückgabewert wenn die Bedingung "True" ergibt.
value2 Der Rückgabewert wenn die Bedingung "False" ergibt.
returns value1 bei wahrem Ergebnis, sonst value2.
example eingabe = 3.1
res = LDLogic.Switch(LDMath.Evaluate3(eingabe+"<5"),"OK","Ungültige Eingabe") ' "OK"

LDLogic.Switch(Text.IsSubText("abc","b"), "Ja","Nein") ' "Ja"
LDLogic.Switch(Array.IsArray("1=a"), 1,0) '1

LDLogic.Switch(LDMath.Evaluate3(toBool), 1,0)) 'BoolToInt
LDLogic.Switch(LDLogic.GE(Math.GetRandomNumber(100),50), n,-n) '±n
LDLogic.Switch(LDLogic.EQ(n,0), 0, n/Math.Abs(n)) 'Sgn(n)


XOr(value1,value2)
Logische 'XOr' (eXclusiv Oder, ^, wie s. NE) Verknüpfung zweier Boolwerte:
XOr("True","True") = "False"
XOr("True","False") = "True"
XOr("False","True") = "True"
XOr("False","False") = "False"

value1 Die erste Bedingung ("True" oder "False").
value2 Die zweite Bedingung ("True" oder "False").
returns "True" oder "False" (value1 != value2).
example A XOr B = (A Or B) And Not(A And B) bzw.
= (A Or B) And (Not A Or Not B) bzw.
= (A And Not B) Or (Not A And B)

'2x Anwendung -> Identität
LDLogic.XOr(LDLogic.XOr(val1,val2),val2) 'val1


LDMath
Trigonometrische Funktionen im Gradmaß, weitere verschiedene mathematische Funktionen und Berechnungen.
example other-samples\LDUnits.sb

ArcCos ArcSin ArcTan
Base2Decimal Convert2Cartesian Convert2Radial
Cos Cosh Decimal2Base
E Evaluate Evaluate2
Evaluate3 Exp FixDecimal
FixSigFig MaxNumber MinNumber
RandomNumberSeed Rotate Sin
Sinh Tan Tanh
Truncate

ArcCos(cos)
Ermittelt den ArcusCosinus Winkel im Gradmaß [180, 0].
cos Der Cosinuswert des Winkels (-1 bis 1).
returns Der Winkel [Grad].

ArcSin(sin)
Ermittelt den ArcusSinus Winkel im Gradmaß [-90, 90].
sin Der Sinuswert des Winkels (-1 bis 1).
returns Der Winkel [Grad].

ArcTan(tan)
Ermittelt den ArcusTangens Winkel im Gradmaß ]-90, 90[.
tan Der Tangenswert des Winkels.
returns Der Winkel [Grad].
example ArcCot(x) = ArcTan(1/x)

Base2Decimal(number,base)
Konvertiert den Zahlenwert einer angegebenen Basis (zB. 2, 8, 16 usw.) zu einer dekadischen Ganzzahl (Basis 10).
Max. Wert: Int32 (2^31-1 = 2147483647 = #7FFFFFFF).

number Der zu konvertierende Zahlenwert der anderen Basis (>= 0).
base Die Basis von der konvertiert wird (zB. 2 binär, 3 ternär, 8 oktal, 16 hex oder andere bis 36, >= 2).
returns Der Zahlenwert als dekadische Ganzzahl bei Erfolg, sonst "FAILED".
example LDMath.Base2Decimal(11110,2) '30
LDMath.Base2Decimal(1010,3) '30
LDMath.Base2Decimal(36,8) '30
LDMath.Base2Decimal("1E",16) '30
LDMath.Base2Decimal("u",36) '30


Convert2Cartesian(x1,y1,dist,angle)
Ermittelt die Koordinaten für Punkt 2. Ausgehend von Punkt 1, mit Abstand und Winkel zu Punkt 2 (Polar -> Kartesisch), gemäß:
x2 = x1 + r*cos(φ)
y2 = y1 + r*sin(φ)

x1 Die x-Koordinate von Punkt 1 (Pol).
y1 Die y-Koordinate von Punkt 1 (Pol).
dist Der Abstand r zwischen Punkt 1 und Punkt 2.
angle Der +/- Winkel φ [Grad] zu Punkt 2 (im Uhrzeigersinn, 0° = 3h).
returns Ein 2-element. Array mit den x/y-Koordinaten für Punkt 2 "1=x2;2=y2;".

Convert2Radial(x1,y1,x2,y2)
Ermittelt den Abstand und Winkel zwischen zwei Punkten (Kartesisch -> Polar) als Array.
x1 Die x-Koordinate von Punkt 1.
y1 Die y-Koordinate von Punkt 1.
x2 Die x-Koordinate von Punkt 2.
y2 Die y-Koordinate von Punkt 2.
returns Ein 2-element. Array mit Abstand r und Winkel φ [Grad] (im Uhrzeigersinn, 0° = 3h) von Punkt 1 zu Punkt 2.
Der Winkel wird im Bereich >0 bis 360 ausgegeben.

example 'Atan2(x,y) [0°,360°[
pol = LDMath.Convert2Radial(0,0, x,y)
w = Math.Remainder(pol[2], 360)
w = w - LDLogic.Switch(LDLogic.LT(y,0), 360,0) '[0°,+/-180°]


Cos(angle)
Ermittelt den Cosinus (Ak/Hy) für einen Winkel im Gradmaß.
angle Der +/- Winkel [Grad].
returns Der Cosinuswert des Winkels [-1,1] (x im Einheitskreis).

Cosh(angle)
Ermittelt den hyperbolischen Cosinus für einen Winkel im Bogenmaß.
angle Der Winkel im Bogenmaß [rad].
returns Der hyperbolische Cosinuswert (>=1, (e^x + e^-x)/2).
example 'Kettenlinie, Katenoide
y = a * Cosh(x/a)


Decimal2Base(number,base)
Konvertiert eine dekadische Ganzzahl (Basis 10) zum Zahlenwert einer anderen Basis (zB. 2, 8, 16 usw.).
Max. Wert: Int32 (2^31-1 = 2147483647 = #7FFFFFFF).

number Die zu konvertierende dekadische Ganzzahl (>= 0).
base Die Basis zu der konvertiert wird (zB. 2 binär, 3 ternär, 8 oktal, 16 hex oder andere bis 36, >= 2).
returns Der Zahlenwert (Kleinbuchstaben) zur gewünschen Basis bei Erfolg, sonst "FAILED".
example LDMath.Decimal2Base(30,2) '11110 bin
LDMath.Decimal2Base(30,3) '1010 ter
LDMath.Decimal2Base(30,8) '36 okt
LDMath.Decimal2Base(30,16) '1e hex
LDMath.Decimal2Base(30,36) 'u


E
Ermittelt die Basis e des natürlichen Logarithmus (~2.718282 = lim(1+1/n)^n für n->∞, ln(e) = 1, Eulersche Zahl, 14 DezStellen).
example e = n^(1/ln(n)) 'n>1

Evaluate(expression)
Evaluiert einen math. (boolschen) Stringausdruck zu einem Boolwert oder Zahlenergebnis (falls möglich). Für Ausgabe im TextWindow muß dieses vor Aufruf bereits angezeigt sein (sonst ev. keine Ausgabe).
Verwendet den JScript 'eval' Befehl, was komplexere JScript Manipulationen ermöglicht. s LDInline(.IncludeJScript). Keine Variablenverarbeitung.

expression Der zu berechnende Stringausdruck zB. "(9/6) + 3", "(9/6) == 3", "2.1 > 1.5", "1E6 + 6/4" oder "Date()".
returns Das evaluierte Ergebnis bei Erfolg (zB. 4.5, false, true, 1000001.5), sonst Fehlermeldung (zB. Infinity).
example s. 'JScript Language Reference' jscript5.chm bzw. script56.chm (Windows Script 5.6 Documentation)
'n ist Teiler von val?
isFact = LDMath.Evaluate(Math.Remainder(val,n) +"==0")


Evaluate2(expression)
Evaluiert einen math. Stringausdruck zu einem Zahlenergebnis (falls möglich).
Alternative zu 'Evaluate' und kompatibel für direkte TextWindow Ausgabe. Keine Variablenverarbeitung.
Vermeide gleichzeitige Verwendung von LDInline im selben Programm (Problem).

expression Der zu berechnende Stringausdruck zB. "1E6 + 6/4".
returns Das evaluierte Zahlenergebnis bei Erfolg (zB. 1000001.5), sonst Fehlermeldung (zB. 'Expression of type 'Double' expected').

Evaluate3(expression)
Evaluiert einen logischen Stringausdruck zu einem Boolwert "True" oder "False" (falls möglich).
Alternative zu 'Evaluate' und kompatibel für direkte TextWindow Ausgabe.
Vermeide gleichzeitige Verwendung von LDInline im selben Programm (Problem).

expression Der zu ermittelnde Logikausdruck zB. "21.3 > 16" (gibt "True").
returns Der ermittelte Boolwert ("True" oder "False").
example s.a. LDLogic.Switch

Exp(value)
Ermittelt das Exponential einer Zahl 'value' (e^value), s. LDMath.E.
value Der Exponent durch den die Basis e potenziert wird.
returns e^value

FixDecimal(number,digits)
Rundet eine Zahl auf eine feste Anzahl von Dezimalstellen. Weitere erforderliche Dezimalnullen werden falls nötig angefügt.
number Die zu rundende Zahl.
digits Die Anzahl an Dezimalstellen.
returns Die gerundete Zahl.
example FixDecimal(-12.3456, 3) '-12.346
FixDecimal(-12.3456, 5) '-12.34560


FixSigFig(number,digits)
Rundet eine Zahl auf eine feste Anzahl von Gesamtziffern (1 bis 9).
number Die zu rundende Zahl.
digits Die Anzahl der Ziffern (<> 0).
returns Die gerundete Zahl.
example FixSigFig(-1234567, 5) '-1234600
FixSigFig(12.3456, 4) '12.35


MaxNumber
Ermittelt die größte Zahl, die SmallBasic verarbeiten kann (79228162514264337593543950335 ~ 7.9..E28, Decimal.MaxValue).

MinNumber
Ermittelt die kleinste Zahl, die SmallBasic verarbeiten kann (-79228162514264337593543950335 ~ -7.9..E28, Decimal.MinValue).

RandomNumberSeed
Setzt den Startpunkt für Zufallszahlen. Dies sollte eine Ganzzahl sein und vor Aufruf von 'Math.GetRandomNumber' gesetzt werden.
Eine Zufallszahlensequenz wird durch diesen Startpunkt initialisiert und kann für Testzwecke verwendet werden, wenn eine wiederholbare Abfolge von Zufallszahlen erforderlich ist.


Rotate(x1,y1,x2,y2,angle)
Drehung von Punkt 2 im Uhrzeigersinn um Punkt 1.
x1 Die x-Koordinate von Punkt 1.
y1 Die y-Koordinate von Punkt 1.
x2 Die x-Koordinate von Punkt 2.
y2 Die y-Koordinate von Punkt 2.
angle Der Drehwinkel [Grad] um den Punkt 2 im Uhrzeigersinn um Punkt 1 gedreht wird.
returns Ein 2-element. Array mit den neuen x/y-Koordinaten des gedrehten Punktes 2.

Sin(angle)
Ermittelt den Sinus (Gk/Hy) für einen Winkel im Gradmaß.
angle Der +/- Winkel [Grad].
returns Der Sinuswert des Winkels [-1,1] (y im Einheitskreis).

Sinh(angle)
Ermittelt den hyperbolischen Sinus für einen Winkel im Bogenmaß.
angle Der Winkel im Bogenmaß [rad].
returns Der hyperbolische Sinuswert (e^x - e^-x)/2.

Tan(angle)
Ermittelt den Tangens (Gk/Ak, Sin/Cos) für einen Winkel im Gradmaß.
angle Der +/- Winkel [Grad].
returns Der Tangenswert des Winkels (Steigung y/x im Einheitskreis).
example Cot(w) = 1/Tan(w)

Tanh(angle)
Ermittelt den hyperbolischen Tangens für einen Winkel im Bogenmaß.
angle Der Winkel im Bogenmaß [rad].
returns Der hyperbolische Tangenswert, ]-1,1[, sinh(x)/cosh(x).

Truncate(value)
Ermittelt den ganzzahligen Teil einer Zahl (Stellen vor dem Dezimalzeichen). Abrundung auf Ganzzahl in Richtung Null.
value Die Zahl (zB. -5.4 oder .123).
returns Der ganzzahlige Teil der Zahl (mit Vorzeichen, ohne Dezimalteil).
example LDMath.Truncate(32.23) '32
LDMath.Truncate(-32.23) '-32
LDMath.Truncate(-0.5) '0


LDMathX
Erweiterte mathematische Methoden (Schnelle Fourier-Transformation, Komplexdaten).

FFTComplex FFTForward FFTImaginary
FFTInverse FFTReal

FFTComplex(real,imaginary)
Erstellt einen Array mit Komplexdaten aus zwei Arrays mit Real- und Imaginärteilen.
real Ein Array mit Realteilen.
imaginary Ein Array mit Imaginärteilen.
returns Ein Array komplexer Daten (reale Amplitude und imaginäre Phase), "MISMATCH" oder "FAILED".
Für jedes Komplexpaar (Re+Im*i) bestimmt der Index den Realteil und der Wert den Imaginärteil (arrZ = "Re=Im;..;").


FFTForward(real)
Ermittelt die Komplexdaten für eine FFT (Fast Fourier Transformation) als Array.
Signalumwandlung vom Zeit- in den Frequenzbereich.

real Ein Array mit Realwerten deren FFT zu berechnen ist.
returns Ein Array komplexer Daten (reale Amplitude und imaginäre Phase) bei Erfolg, sonst "FAILED".
Für jedes Komplexpaar (Re+Im*i) bestimmt der Index den Realteil und der Wert den Imaginärteil (arrZ = "Re=Im;..;").

example http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation

FFTImaginary(complex)
Ermittelt die Imaginärteil(e) für einen Array mit Komplexdaten.
complex Ein Array komplexer Daten (reale Amplitude und imaginäre Phase).
Für jedes Komplexpaar (Re+Im*i) bestimmt der Index den Realteil und der Wert den Imaginärteil (arrZ = "Re=Im;..;").

returns Ein Array mit Imaginärteil(en) der Komplexdaten bei Erfolg, sonst "FAILED".

FFTInverse(complex)
Ermittelt die Umkehrung einer FFT (Fast Fourier Transformation) als Array.
Signalumwandlung vom Frequenz- in den Zeitbereich.

complex Ein Array komplexer Daten (reale Amplitude und imaginäre Phase).
Für jedes Komplexpaar (Re+Im*i) bestimmt der Index den Realteil und der Wert den Imaginärteil (arrZ = "Re=Im;..;").

returns Ein Array inverser FFT Werte bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/IFFT

FFTReal(complex)
Ermittelt die Realteil(e) für einen Array mit Komplexdaten.
complex Ein Array komplexer Daten (reale Amplitude und imaginäre Phase).
Für jedes Komplexpaar (Re+Im*i) bestimmt der Index den Realteil und der Wert den Imaginärteil (arrZ = "Re=Im;..;").

returns Ein Array mit Realteil(en) der Komplexdaten bei Erfolg, sonst "FAILED".

LDMatrix
2D Matrix-Struktur zB. zum Lösen linearer Gleichungssysteme (Intern: Matrix#).
Die Zeilen und Spalten sind ab 1 indexiert. Bei einem Fehler wird "FAILED" zurückgegeben.
Format für LDMatrix ist unterschiedlich und inkompatibel zum LDImage.ColorMatrix Format (2D Array).

example other-samples\LDMatrix.sb
http://de.wikipedia.org/wiki/Matrix_(Mathematik)
http://chortle.ccsu.edu/VectorLessons/vectorIndex.html


Add Copy CopyNew
CopyToSBArray Create Delete
GetValue Inverse Multiply
SetValue Transpose View

Add(matrix1,matrix2,result)
Addiert zwei Matrizen. Die Anzahl der Zeilen und Spalten müssen für beide Matrizen gleich sein. Dieses gilt auch für die Summenmatrix.
Alternativ: Ist die zweite Matrix ein Skalar (skalare Zahl), wird dieser zu JEDEM Element der ersten Matrix hinzuaddiert.

matrix1 Der Name der ersten Matrix.
matrix2 Der Name der zweiten Matrix oder Skalar.
result Der Name der bestehenden Summenmatrix.
returns "" bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/Matrizenaddition

Copy(matrix1,matrix2)
Kopiert die Werte einer Matrix in eine bestehende Zielmatrix.
Die Dimensionen beider Matrizen müssen identisch sein.

matrix1 Der Name der zu kopierenden Quellmatrix.
matrix2 Der Name der bestehenden Zielmatrix.
returns "" bei Erfolg, sonst "FAILED".

CopyNew(matrix)
Erstellt eine Kopie einer bestehenden Matrix (Intern: Matrix#+1).
matrix Der Name der zu kopierenden Quellmatrix.
returns Der Name der neuen Matrixkopie bei Erfolg, sonst "FAILED".

CopyToSBArray(matrix)
Kopiert eine bestehende LDMatrix in einen neuen 2D SB-Array der Form arr[row][col].
Die Umkehrung (SB-Array zu LDMatrix) ist nicht möglich, da SB-Arrays nicht zwangsläufig mit fortlaufenden Ganzzahlen indexiert werden.

matrix Der Name der Matrix.
returns Der Name des 2D SB-Array bei Erfolg, sonst "FAILED".

Create(rows,cols)
Erstellt eine neue m*n Matrix, gefüllt mit 0-Werten (Intern: Matrix#+1).
Zeilen- und Spaltenanzahl werden mit rows (m) und cols (n) entsprechend dimensioniert.

rows Die Anzahl der Zeilen (m >= 1).
cols Die Anzahl der Spalten (n >= 1).
returns Der Name der neuen Matrix bei Erfolg, sonst "FAILED".

Delete(matrix)
Löscht eine existierende Matrix (nicht generell erforderlich, kann aber bei Verwendung vieler Matrizen Speicherplatz freigeben).
matrix Der Name der zu löschenden Matrix.
returns "" bei Erfolg, sonst "FAILED".

GetValue(matrix,row,col)
Ermittelt den Wert eines Elementes in einer bestehenden Matrix.
matrix Der Name der Matrix.
row Die Zeile (ab 1) für den zu ermittelnden Wert.
col Die Spalte (ab 1) für den zu ermittelnden Wert.
returns Der ermittelte Wert bei Erfolg, sonst "FAILED".

Inverse(matrix,inverse)
Ermittelt die 'Inverse Matrix' M^-1 zu einer Matrix M (sodaß M * M^-1 = E, Gauß Elimination).
Die Anzahl der Zeilen und Spalten beider Matrizen müssen identisch und jeweils quadratisch sein.
Eine singuläre Matrix (det = 0) gibt den Wert "SINGULAR" zurück und die inverse Matrix wird fehlerhaft sein.

matrix Der Name der Matrix deren Inverse zu berechnen ist (bleibt unverändert, det <> 0).
inverse Der Name der bestehenden inversen Matrix.
returns "" bei Erfolg, sonst "FAILED" oder "SINGULAR".
example LDMatrix.Inverse(M, I) 'I = Einheitsmatrix E, für M=E
http://de.wikipedia.org/wiki/Inverse_Matrix


Multiply(matrix1,matrix2,result)
Multipliziert zwei Matrizen. Die Spaltenanzahl der ersten und Zeilenanzahl der zweiten Matrix müssen gleich sein.
Die Produktmatrix muß die Zeilenanzahl der ersten und Spaltenanzahl der zweiten Matrix besitzen.
Alternativ: Ist die zweite Matrix ein Skalar (skalare Zahl), wird dieser mit JEDEM Element der ersten Matrix multipliziert. Dabei muß die Produktmatrix die Dimensionen der ersten Matrix besitzen.

matrix1 Der Name der ersten Matrix (oder Zeilenvektor).
matrix2 Der Name der zweiten Matrix (oder Spaltenvektor) oder Skalar.
result Der Name der bestehenden Produktmatrix.
returns "" bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/Matrizenmultiplikation

SetValue(matrix,row,col,value)
Setzt den Wert für ein Element in einer bestehenden Matrix.
matrix Der Name der Matrix.
row Die Zeile (ab 1) für den zu setzenden Wert.
col Die Spalte (ab 1) für den zu setzenden Wert.
value Der zu setzende Zahlenwert.
returns "" bei Erfolg, sonst "FAILED".
example '5x5 Einheitsmatrix
mat = LDMatrix.Create(5,5)
For n = 1 To 5
LDMatrix.SetValue(mat, n,n, 1)
EndFor


Transpose(matrix,transpose)
Ermittelt die 'Transponierte Matrix' (an Hauptdiagonale gespiegelt).
Die Anzahl der Zeilen und Spalten beider Matrizen müssen kreuzweise gleich sein, dh. die erste Matrix muß soviele Spalten haben wie die zweite Matrix Zeilen, und umgekehrt.
zB. Zeilenvektor <- Transpose -> Spaltenvektor
bzw. Zeile[m] -> Spalte[m] und Spalte[n] -> Zeile[n]

matrix Der Name der zu transponierenden Matrix.
transpose Der Name der bestehenden transponierten Matrix.
returns "" bei Erfolg, sonst "FAILED".
example http://de.wikipedia.org/wiki/Transponierte_Matrix

View(matrix,modal)
Anzeige einer bestehenden LDMatrix in einem eigenen Viewer-Fenster (zB. Debugging, wählbare Ziffernanzeige, Fenster zuoberst).
Fenstertitel: 'Matrix# - Dimension rows x cols' (m Zeilen x n Spalten)

matrix Der Name der anzuzeigenden Matrix.
modal Programmablauf anhalten, bis der Viewer geschlossen wird? "True" oder "False".

LDMusic
Erweitert die SB Sound.PlayMusic Methode und bietet verschiedene weitere Instrumente.
Zusätzlich kann Musik über mehrere Kanäle zugleich abgespielt werden.
Neben hoher Anzahl der Instrumentnamen, folgende WEITERE Eigenschaften beachten:
Channel, Instrument, Pan, Velocity, Volume.

example other-samples\LDMusic.sb

Channel EndNote Instrument
InstrumentName Pan PlayMusic
PlayMusic2 PlayNote Reset
Velocity Volume

Channel
Ermittelt oder setzt den MIDI Kanal (1 bis 16, Standard: 1) bei Verwendung von Instrument, Pan, PlayMusic, Velocity, Volume.

EndNote(value)
Stoppt das Abspielen einer Note.
value Die zu stoppende Note (von PlayNote zurückgegebener Wert).

Instrument
Ermittelt oder setzt das aktuelle Musikinstrument (1 bis 128):
1 Acoustic_Grand_Piano (Standard)
2 Bright_Acoustic_Piano
3 Electric_Grand_Piano
4 Honky_Tonk_Piano
5 Electric_Piano_1
6 Electric_Piano_2
7 Harpsichord
8 Clavi
9 Celesta
10 Glockenspiel
11 Music_Box
12 Vibraphone
13 Marimba
14 Xylophone
15 Tubular_Bells
16 Dulcimer
17 Drawbar_Organ
18 Percussive_Organ
19 Rock_Organ
20 Church_Organ
21 Reed_Organ
22 Accordion
23 Harmonica
24 Tango_Accordion
25 Acoustic_Guitar_nylon
26 Acoustic_Guitar_steel
27 Electric_Guitar_jazz
28 Electric_Guitar_clean
29 Electric_Guitar_muted
30 Overdriven_Guitar
31 Distortion_Guitar
32 Guitar_harmonics
33 Acoustic_Bass
34 Electric_Bass_finger
35 Electric_Bass_pick
36 Fretless_Bass
37 Slap_Bass_1
38 Slap_Bass_2
39 Synth_Bass_1
40 Synth_Bass_2
41 Violin
42 Viola
43 Cello
44 Contrabass
45 Tremolo_Strings
46 Pizzicato_Strings
47 Orchestral_Harp
48 Timpani
49 String_Ensemble_1
50 String_Ensemble_2
51 SynthStrings_1
52 SynthStrings_2
53 Choir_Aahs
54 Voice_Oohs
55 Synth_Voice
56 Orchestra_Hit
57 Trumpet
58 Trombone
59 Tuba
60 Muted_Trumpet
61 French_Horn
62 Brass_Section
63 SynthBrass_1
64 SynthBrass_2
65 Soprano_Sax
66 Alto_Sax
67 Tenor_Sax
68 Baritone_Sax
69 Oboe
70 English_Horn
71 Bassoon
72 Clarinet
73 Piccolo
74 Flute
75 Recorder
76 Pan_Flute
77 Blown_Bottle
78 Shakuhachi
79 Whistle
80 Ocarina
81 Lead_1_square
82 Lead_2_sawtooth
83 Lead_3_calliope
84 Lead_4_chiff
85 Lead_5_charang
86 Lead_6_voice
87 Lead_7_fifths
88 Lead_8_bass_lead
89 Pad_1_new_age
90 Pad_2_warm
91 Pad_3_polysynth
92 Pad_4_choir
93 Pad_5_bowed
94 Pad_6_metallic
95 Pad_7_halo
96 Pad_8_sweep
97 FX_1_rain
98 FX_2_soundtrack
99 FX_3_crystal
100 FX_4_atmosphere
101 FX_5_brightness
102 FX_6_goblins
103 FX_7_echoes
104 FX_8_sci_fi
105 Sitar
106 Banjo
107 Shamisen
108 Koto
109 Kalimba
110 Bag_Pipe
111 Fiddle
112 Shanai
113 Tinkle_Bell
114 Agogo
115 Steel_Drums
116 Woodblock
117 Taiko_Drum
118 Melodic_Tom
119 Synth_Drum
120 Reverse_Cymbal
121 Guitar_Fret_Noise
122 Breath_Noise
123 Seashore
124 Bird_Tweet
125 Telephone_Ring
126 Helicopter
127 Applause
128 Gunshot

example other-samples\LDMusic.sb

InstrumentName(instrument)
Ermittelt den Name eines Instruments aus seiner Nummer (Standard: 1 = Acoustic_Grand_Piano).
instrument Die Nummer des Instruments (s. LDMusic.Instrument).
returns Der Name des Instruments.
example LDMusic.InstrumentName(8) ' "Clavi"
LDMusic.Clavi '8


Pan
Ermittelt oder setzt die linke (-100) bis rechte (100) Stereo Balance der Tastenanschläge (Standard: 0).

PlayMusic(notes)
Abspielen von Musiknoten. Standardlänge: L4 bzw. 400 ms.
notes Ein String abzuspielender Noten im Format der von QBasic unterstützten Music Markup Language (MML).
Oktave: O0-O8, Noten: A-G, Halbton: +(#) auf / - ab, Notenlänge (L)1,2,4 od. 8tel, Pause: R(P)1-8 wie Notenlänge.

example LDMusic.Instrument = LDMusic.Xylophone
LDMusic.PlayMusic("O5 C8 C8 G8 G8 A8 A8 G4 F8 F8 E8 E8 D8 D8 C2")


PlayMusic2(notes,instrument,velocity,volume,pan,channel)
Abspielen von Musiknoten mit angegebenem Instrument und MDI Kanal, sowie Setzen von Lautstärke, Balance und Anschlaggeschwindigkeit.
notes Ein String abzuspielender Noten im Format der von QBasic unterstützten Music Markup Language (MML).
Oktave: O0-O8, Noten: A-G, Halbton: +(#) auf / - ab, Notenlänge (L)1,2,4 od. 8tel, Pause: R(P)1-8 wie Notenlänge.

instrument Die Nummer des Instruments (s. LDMusic.Instrument).
velocity Die Geschwindigkeit der Tastenanschläge (1 bis 128, Standard: 100).
volume Die Lautstärke (0 bis 100, Standard: 50).
pan Die linke (-100) bis rechte (100) Stereo Balance (Standard: 0).
channel Der MIDI Kanal (1 bis 16, Standard: 1).
example notes = "O5 C8 C8 G8 G8 A8 A8 G4 F8 F8 E8 E8 D8 D8 C2"
LDMusic.PlayMusic2(notes, 1, 100,"","",1)


PlayNote(octave,note,channel)
Spielt eine einzelne Note (via Soundkarte, erlaubt Mehrkanal Instrumente, s. PlayMusic).
octave Die Oktave (0 bis 8, Standard: 4).
note Die Note ("C", "C+", "C#", "D-", ... , "B").
channel Der MIDI-Kanal (1 bis 16, Standard: 1).
returns Der (MIDI) Wert der abgespielten Note (0 bis 15107).

Reset()
Stoppt sämtliche Musik auf allen Kanälen.

Velocity
Ermittelt oder setzt die Geschwindigkeit der Tastenanschläge (1 bis 128, Standard: 100).
Dies ist die Anschlagstärke für eine Taste.


Volume
Ermittelt oder setzt die Lautstärke der Tastenanschläge (0 bis 100, Standard: 50).

LDNetwork
Netzwerk- oder Web-Methoden (s. LDUtilities.NetworkURL und php Dateien unter http://litdev.co.uk).
example 3D-samples\LD3DMazeGame.sb

DownloadFile GetGameData HighScore
LAN Ping SetGameData

DownloadFile(localFile,remoteFile)
Download einer Webdatei ähnlich 'Network.DownloadFile', jedoch mit Angabe des Speicherpfades und bessere Verarbeitung großer Dateien.
Eine erfolglose Download Anfrage wird nach Timeout abgebrochen, mit Fehlermeldung.

localFile Der lokale Dateipfad zum Speichern der heruntergeladenen Datei (Änderungsdatum wird auf aktuelle Zeit gesetzt).
remoteFile Die Adresse der Netzwerkdatei.
returns Die Dateigröße [Byte] bei Erfolg, sonst -1.

GetGameData(game)
Ermitteln/Download von (zuvor gespeicherten) Daten für ein Spiel.
game Der Name des Spiels (Für jedes Spiel bzw. Version ist ein eindeutiger Name erforderlich).
returns Die ermittelten gespeicherten Daten bei Erfolg, sonst "".
example 'Test ob unter "myGame" bereits Daten vorliegen:
dat = LDNetwork.GetGameData("myGame")
TextWindow.WriteLine(dat)


HighScore(game,user,score)
Upload eines potentiellen HighScores in das Netz.
GROß-/klein Unterscheidung und der Punktestand sollte eine Ganzzahl sein.

game Der Name des Spiels (Für jedes Spiel bzw. Version ist ein eindeutiger Name erforderlich).
user Der Benutzername.
score Der Punktestand.
returns Ein Array mit dem aktuellen HighScore-Benutzername und dessen Punktestand.

LAN(timeout)
Ermittelt eine Liste von Geräten und deren Adressen mit Verbindung zum lokalen Netzwerkbereich (LAN, Heimnetzwerk, 192.168.1.xx).
timeout Die Auszeit [ms] (zB. 1000).
returns Ein Array mit IP Adressen und Gerätenamen mit Pingzeit, indexiert durch die IP Adresse.

Ping(ip,timeout)
Sendet einen Ping an eine IP Adresse und gibt die Umlaufzeit zurück.
ip Die anzupingende IP Adresse (oder Url).
timeout Die Auszeit [ms] (zB. 1000).
returns Die Umlaufzeit bei Erfolg [ms] bei Erfolg, sonst -1.

SetGameData(game,data)
Setzten/Upload von Daten für ein Spiel.
game Der Name des Spiels (Für jedes Spiel bzw. Version ist ein eindeutiger Name erforderlich).
data Die zu speichernden Daten, kann auch ein Array sein.
returns Die gespeicherten Daten bei Erfolg, sonst "".

LDPhysics
Physik Erweiterung (verwendet Box2D-Engine).
Hilfe unter LDPhysics.Help.

example physics-samples\*.sb
Physics-GettingStartedGuide.pdf
http://blogs.msdn.microsoft.com/smallbasic/2014/06/07/small-basic-box2d-physics-extension


AddChain AddExplosion AddFixedAnchor
AddFixedShape AddInactiveShape AddMovingAnchor
AddMovingShape AddRope AttachShapes
AttachShapesWithJoint AttachShapesWithRotation BoxShape
BrakeTire ChainColour DetachJoint
DetachShapes DisconnectShape DoTimestep
FollowShapeX FollowShapeY GetAllShapesAt
GetAngle GetCollisions GetContacts
GetInertia GetMass GetPan
GetPosition GetRotation GetShapeAt
GetTireInformation GetTireProperties GetVelocity
GroupShapes Help LoadImagesAsCircles
MaxPolygonVertices MaxProxies MoveTire
PanView PositionIterations RayCast
ReadJson RemoveChain RemoveFrozen
RemoveRope RemoveShape Reset
RopeColour Scaling SetAABB
SetAngle SetBoundaries SetBullet
SetDamping SetForce SetGravity
SetGroup SetImpulse SetJointMotor
SetPosition SetRotation SetShapeGravity
SetTire SetTireProperties SetTorque
SetVelocity TimeStep TimestepControl
ToggleMoving ToggleRotation ToggleSensor
TurnTire UngroupShapes UnsetBullet
VelocityIterations VelocityThreshold WakeAll
WriteJson

AddChain(shape1,shape2)
Fügt eine Kette zwischen zwei existierenden Shapes hinzu (Intern: Chain#).
shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.
returns Der Name der Kette.

AddExplosion(posX,posY,power,damping,colour)
Zeigt eine Explosion von 50 Partikeln a 20kg, die verteilt über 500 ms auseinander streben.
posX Die x-Koordinate der Explosion.
posY Die y-Koordinate der Explosion.
power Die Explosionskraft (Anfangsgeschwindigkeit der Partikel).
damping Die Dämpfung für den Impuls. Je kleiner der Wert, umso größer der Streubereich (Standard: 10).
colour Optionale Farbe der Explosionsteilchen ("" für ohne).

AddFixedAnchor(posX,posY)
Fügt ein kleines, unsichtbares Shape hinzu, welches als Ankerpunkt (zB. für eine Kette) benutzt werden kann (Intern: Ellipse#).
posX Die x-Koordinate des Ankerpunktes.
posY Die y-Koordinate des Ankerpunktes.
returns Der Name des Ankerpunktes.

AddFixedShape(shapeName,friction,restitution)
Fügt der Physics Engine eine bestehende SB-Shape als feste Shape (undynamisch, mit Reaktionen auf andere Shapes, zB. Reibung, Kollision, Rückstoss) hinzu.
shapeName Der Name der Shape.
friction Reibungswert (gewöhnlich 0.0 bis 1.0).
restitution Rückfederung/Abprallwert (gewöhnlich 0.0 bis 1.0).

AddInactiveShape(shapeName)
Fügt der Physics Engine eine bestehende SB-Shape als inaktive Shape (undynamisch, ohne Interaktion mit anderen Shapes) hinzu, welche sich nur mit der PanView-Methode bewegt.
shapeName Der Name der Shape.

AddMovingAnchor(posX,posY)
Fügt ein kleines, unsichtbares und hoch verdichtetes Shape hinzu, welche als beweglicher Ankerpunkt benutzt werden kann (Intern: Ellipse#).
posX Die x-Koordinate des Ankerpunktes.
posY Die y-Koordinate des Ankerpunktes.
returns Der Name des Ankerpunktes.

AddMovingShape(shapeName,friction,restitution,density)
Fügt der Physics Engine eine existierende SB-Shape als bewegliche Shape (dynamisch) hinzu.
shapeName Der Name der Shape.
friction Reibungswert (gewöhnlich 0.0 bis 1.0).
restitution Rückfederung/Abprallwert (gewöhnlich 0.0 bis 1.0).
Ein negativer Wert fügt die Shape mit sehr kleinen Abmessungen hinzu, die es erlauben, ein inaktives Bild anzufügen und es innerhalb einer unregelmäßigen Verbundshape (die das Gesamtbild umfasst) zu gruppieren.

density Die Dichte [kg/m/m = 0.01kg/pxl/pxl] der Shape (Standard: 1).

AddRope(shape1,shape2)
Fügt ein Seil zwischen zwei existierenden Shapes hinzu (Intern: Rope#).
shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.
returns Der Name des Seils.

AttachShapes(shape1,shape2)
Verbindet zwei Shapes, sodaß diese sich zusammen als Einheit bewegen.
Die Shapes werden durch ein Abstandsgelenk (Joint) verbunden und können beim Angriff etwas wackeln.

shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.

AttachShapesWithJoint(shape1,shape2,type,collide,parameters)
Verbindet zwei Shapes zur gemeinsamen Bewegung in einem von mehreren Verkettungstypen (Intern: Joint#).
Kann erweitert werden und erfordert Nachschlagen in der Box2D Anleitung.
Oft ist es besser, Shaperotation für die Verkettung zu unterbinden, um sich wie beabsichtigt zu verhalten.
Mehrfachverkettungen können ebenfalls auf Shapes angewandt werden.
Diese Methoden verwenden die anfänglichen Shapepositionen, diese also zuerst setzen.

shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.
type Einer der folgenden Verkettungstypen:
"Distance" - Behält einen fixen Abstand zwischen den Shapes.
"Gear" - Verknüpft Prismatic oder Revolute Verkettungen (zuvor erstellt) zweier Shapes.
"Line" - Bewegt die Shapes entlang einer anfänglichen Verbindungslinie zwischen den Shapes.
"Mouse" - Bewegt die Shape mit dem Mauszeiger (beide Shapenamen sollten gleich lauten).
"Prismatic_H" - Bewegt die Shapes senkrecht entlang einer Linie zwischen den zwei Shapes.
"Prismatic_V" - Bewegt die Shapes waagrecht entlang einer Linie zwischen den zwei Shapes.
"Pulley" - Ein Zugsystem, eine Shape bewegt sich rauf so wie die andere runter - positioniere die Shapes anfänglich an den Extrempunkten der Zugbewegung.
"Revolute" - Die Shapes können umeinander rotieren.

collide Interaktion verbundener Shapes miteinander? "True" oder "False" (Standard).
parameters Optionale Parameter (Standard: ""), bzw. mehrere Parameter als Array.
"Distance" - Dämpfungsverhältnis (Standard: 0)
"Gear" - Übersetzungsverhältnis, erste Verkettung, zweite Verkettung (Standard: 1, Autoerkennen von Verkettungen)
"Line" - x-Richtung, y-Richtung, Untere Übersetzung, Obere Übersetzung (Standard: Linie verbindet Shapes, unbegrenzt)
"Mouse" - Max. Beschleunigung, Dämpfungsverhältnis (Standard: 10000, 0.7)
"Prismatic_H" - x-Richtung, y-Richtung, Untere Übersetzung, Obere Übersetzung (Standard: 1,0, unbegrenzt)
"Prismatic_V" - x-Richtung, y-Richtung, Untere Übersetzung, Obere Übersetzung (Standard: 0,1, unbegrenzt)
"Pulley" - Zugverhältnis (Flaschenzug, Standard: 1)
"Revolute" - Unterer Winkel, Oberer Winkel (Standard: unbegrenzt)

returns Der Name der Verkettung.

AttachShapesWithRotation(shape1,shape2)
Verbindet zwei Shapes, sodaß diese sich zusammen als Einheit bewegen, erlaubt aber den Shapes einander zu umkreisen oder zu rotieren.
shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.

BoxShape(shapeName,x1,y1,x2,y2)
Setzt eine Shape auf Verharren innerhalb einer Box/Rahmen in der Ansicht.
Ist ähnlich wie 'PanView', außer daß die Ansicht automatisch nachschwenkt, um die angegebene Shape visuell innerhalb eines Bereichs im GraphicsWindow zu halten.
Es kann nur eine Shape im Rahmen gehalten werden. Zum Zurücksetzen der gehaltenen Shape, shapeName auf "" setzen.

shapeName Der Name der zu haltenden Shape oder "".
x1 Die linke x-Koordinate der Box.
y1 Die obere y-Koordinate der Box.
x2 Die rechte x-Koordinate der Box.
y2 Die untere y-Koordinate der Box.

BrakeTire(shapeName)
Anwenden einer Bremse für eine Reifenshape.
shapeName Die zu bremsende Reifenshape.

ChainColour
Ermittelt oder setzt die Farbe für Ketten.

DetachJoint(jointName)
Trennt zwei Shapes welche zuvor mittels Verkettung verbunden waren.
jointName Der Name der Verkettung (Intern: Joint#).

DetachShapes(shape1,shape2)
Trennt zwei zuvor verbundene Shapes.
shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.

DisconnectShape(shapeName)
Entfernt eine Shape aus der Physics Engine ohne die Shape aus der Shapes-Liste zu löschen.
shapeName Der Name der Shape.

DoTimestep()
Übergibt kurz an die Physics Engine um Bewegungen und Positionen aller Shapes neu zu berechnen.
example 'Hautptschleife
While "True"
LDPhysics.DoTimestep()
Program.Delay(20)
EndWhile


FollowShapeX(shapeName)
Setzt eine Shape auf stationäres Verharren an der x-Position in der Ansicht.
Ist ähnlich wie 'PanView', außer daß die Ansicht automatisch nachschwenkt, um die angegebene Shape visuell an einer konstanten x-Position zu halten.
Es kann nur eine Shape in x-Richtung verfolgt werden. Zum Zurücksetzen der verfolgenden Shape, shapeName auf "" setzen.

shapeName Der Name der zu verfolgenden Shape oder "".

FollowShapeY(shapeName)
Setzt eine Shape auf stationäres Verharren an der y-Position in der Ansicht.
Ist ähnlich wie 'PanView', außer daß die Ansicht automatisch nachschwenkt, um die angegebene Shape visuell an einer konstanten y-Position zu halten.
Es kann nur eine Shape in y-Richtung verfolgt werden. Zum Zurücksetzen der verfolgenden Shape, shapeName auf "" setzen.

shapeName Der Name der zu verfolgenden Shape oder "".

GetAllShapesAt(posX,posY)
Ermittelt alle PhysicsEngine Shapes (falls vorhanden) an der angegebenen Position als Array.
Wenn 'Pan/Nachschwenken' aktiviert ist, gelten die PhysicsEngine Koordinaten für diese Methode.

posX Die x-Koordinate der Position.
posY Die y-Koordinate der Position.
returns Ein Array mit den Namen aller Shapes an dieser Position oder "".

GetAngle(shapeName)
Ermittelt den Rotationswinkel für eine Shape.
shapeName Der Name der Shape.
returns Der Rotationswinkel [Grad].

GetCollisions(shapeName)
Ermittelt alle Shapes die während des letzten DoTimestep mit der angegebenen Shape kollidiert sind.
shapeName Die auf Kollisionen zu prüfende Shape.
returns Ein Array mit den Namen aller Shapes die mit der angegebenen kollidiert sind (kann leer "" sein oder "Wall" für statisches Hindernis, Physics Engine Rahmen).

GetContacts(posX,posY,distance)
Ermittelt eine Liste von Shapes, die innerhalb einer Entfernung von einem angegebenen Kontaktpunkt kollidieren.
posX Die x-Koordinate des zu überprüfenden Kontaktpunktes.
posY Die y-Koordinate des zu überprüfenden Kontaktpunktes.
distance Die Maximalentfernung der Kollision vom Kontaktpunkt.
returns Ein Array von Kontakten, wobei jeder Kontakt als Array zweier Shapenamen darstellt ist.

GetInertia(shapeName)
Ermittelt das Trägheitsmoment I einer Shape.
shapeName Der Name der Shape.
returns Das Trägheitsmoment der Shape.

GetMass(shapeName)
Ermittelt die Masse einer Shape.
Quadrat. Shape 10x10 pxl = 100pxl*pxl (dh. Box2D Fläche 1m*m) entspricht einer Masse von 1kg (bei Standarddichte 1kg/m/m).

shapeName Der Name der Shape.
returns Die Masse der Shape.

GetPan()
Ermittelt den aktuellen 'Pan' Versatz (s. PanView, FollowShapeX(Y) und BoxShape).
Weltkoordinaten = Bildschirmkoordinaten + Pan Versatz.

returns Ein 2-element. Array mit den aktuellen Pan Versatzwerten.

GetPosition(shapeName)
Ermittelt den Mittelpunkt einer Shape.
shapeName Der Name der Shape.
returns Ein Array mit 2 Elementen für die x- und y-Koordinaten des Mittelpunktes.

GetRotation(shapeName)
Ermittelt die Rotationsgeschwindigkeit einer Shape.
shapeName Der Name der Shape.
returns Die Rotationsgeschwindigkeit [Grad/sec].

GetShapeAt(posX,posY)
Ermittelt eine Shape (falls vorhanden) an der angegebenen Position.
Die Koordinaten für diese Methode sind die Bildschirm Koordinaten wenn 'Pan/Nachschwenken' aktiviert ist.

posX Die x-Koordinate.
posY Die y-Koordinate.
returns Der Name der Shape oder "" wenn sich dort keine befindet.

GetTireInformation(shapeName)
Ermittelt Reifeninformationen wie:
"Skid" (übersteigt dieser Wert die Größe der "AntiSkid" Eigenschaft, rutscht der Reifen weg)
"Crash" (der Wert ist die Aufprallgeschwindigkeit)

shapeName Der Name der Reifenshape.
returns Ein Array mit den Informationen, indexiert durch den Name der Information zB. "Skid".

GetTireProperties(shapeName)
Ermittelt Reifeneigenschaften wie:
"AntiSkid" (höherer Wert reduziert Schleudern/Abdriften)
"Drag" (höherer Wert erhöht Vor-/Rückwärtszug)
"Brake" (höherer Wert erhöht die Bremskraft)
"Straighten" (höherer Wert korrigiert Geradeauslenkung/Spurtreue schneller)
"BrakeStraighten" (höherer Wert korrigiert Geradeauslenkung beim Bremsen schneller)

shapeName Der Name der Reifenshape.
returns Ein Array mit den Eigenschaften, indexiert durch den Name der Eigenschaft zB. "AntiSkid".

GetVelocity(shapeName)
Ermittelt die lineare Geschwindigkeit einer Shape.
shapeName Der Name der Shape.
returns Ein Array mit 2 Elementen welche die Geschwindigkeit der Shape (in x- und y-Richtung) angeben.

GroupShapes(shape1,shape2)
Verbindet zwei Shapes fest miteinander, sodaß diese sich gemeinsam bewegen. Shape1 wird derart zu shape2 hinzugefügt, sodaß sich beide wie eine einzige Shape verhalten.
shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.

Help()
Diese Methode zeigt lediglich diese Hilfe an.

LDPhysics verwendet Box2D (http://box2d.org) als Engine und stellt eine Verbindung zwischen Box2D und SB her.
Längenverhältnis ist: 10pxl/m, dh. 1pxl entspricht 0.1m in Box2D Einheiten (somit Beschleunigung g von 10m/s/s = 100pxl/s/s).

Nur Shapes die mit der LDPhysics Engine verbunden wurden, werden dabei berücksichtigt. So können gleichzeitig auch normale Shapes verwendet werden (zB. für Hintergrund). Wurde eine Shape an die Engine gekoppelt, ist es am Besten mit dieser nur noch über 'LDShapes...' -Methoden zu interagieren. Alle Positionen sind in SB-GraphicsWindow Koordinaten [Pxl] angegeben und beziehen sich auf den Mittelpunkt der Shape.

Bild- und Textshapes werden wie Rechtecke behandelt und Ellipsen wie Kreise. Es werden auch Dreiecke und konvexe Polygone unterstützt, aber keine Linien (dafür schmales Rechteck). Bilder können ebenfalls als Kreise behandelt werden, indem LoadImagesAsCircles auf "True" setzt wird.
Auch TextBox und Button Steuerelemente können verwendet werden (als Rechtecke behandelt).

Problematisch kann die Verwendung kleiner, sehr schnell bewegter Objekte sein. Diese können manchmal scheinbar durch andere, kleine Objekte hindurchfliegen ohne anzustoßen (s. auch SetBullet).

Auch wenn Shapes sehr unterschiedliche Größen oder Masse haben, besonders wenn sehr große Shapes miteinander verbunden wurden, kann es Probleme geben. Es kann dann nötig sein, die Dichte (Density) dieser Objekte anzupassen (Verankern -Anchors- sind eine Möglichkeit dieses etwas zu automatisieren), ansonsten ist 1 (Standard) ein guter Wert für Dichte. Vermeide zu viele Shapes miteinander zu verbinden.

Es wäre möglich, die Stabilität einiger 'schwieriger' Modelle mittels 'Timestep'-Einstellungen zu erhöhen, die voreingestellten Werte sind jedoch meist ausreichend.

Die Methoden der LDPhysics Engine dürfen nicht direkt aus einer SB Sub aufgerufen werden. Daher sollten dort nur Variablen verwendet werden, die in der Hauptschleife des Programmes die notwendigen Aufrufe an die LDPhysics Engine auslösen.

Dieser Erweiterung liegen Beispielprogramme und ein 'Physics-GettingStartedGuide.pdf' bei. Diese bieten einen guten Einstieg um die neuen Möglichkeiten kennenzulernen.

Fehlermeldungen und Probleme bitte im SBForum (http://social.msdn.microsoft.com/Forums/en-US/smallbasic/threads). Zuvor den Programmcode möglichst vereinfachen und kürzen um das Problem zu isolieren.


LoadImagesAsCircles
Ermittelt oder setzt das Laden einer Bildshape als Kreisform? "True" oder "False" (Standard).

MaxPolygonVertices
Ermittelt oder setzt die maximale Anzahl der Eckpunkte für konvexe Polygone in der Physics Engine (Standard: 8).

MaxProxies
Ermittelt oder setzt die maximale Anzahl für Objekt-'Proxies' in der Physics Engine (Standard: 1024).

MoveTire(shapeName,force)
Bewegt eine Reifenshape durch Anwenden einer vor- oder rückwärts gerichteten Kraft.
shapeName Die zu bewegende Reifenshape.
force Die anzuwendende Kraft (rückwärts < 0 < vorwärts).

PanView(panHorizontal,panVertical)
Schwenkt die Kameraansicht, incl. Fensterbegrenzungen.
panHorizontal Schwenkt die Kamera horizontal (neg. Werte für 'nach links').
panVertical Schwenkt die Kamera vertikal (neg. Werte für 'hoch').

PositionIterations
Ermittelt oder setzt die Positionsiterationen der Physics Engine (Standard: 2).

RayCast(shapeName,angle,distance)
Erstellt einen unsichtbaren 'Leitstrahl' zum Erkennen der Annäherung weiterer Shapes.
shapeName Der Name der Shape, als Ausgangspunkt für den Leitstrahl.
angle Der zu überprüfende Winkel oder ein Array von Winkeln [Grad].
distance Die maximale Entfernung zur Überprüfung.
returns Ein Array der Ergebnisse, indexiert durch Shapenamen ("Wall" für ein statisches Hindernis) und einem Wert entsprechend deren Entfernung (Reihenfolge der Shapes nach Distanz sortiert, näheste zuerst).
Bei Angabe eines Arrays mit Winkeln, nur die näheste Shape/Winkel, wobei der Wert den Winkel anstatt der Entfernung angibt.


ReadJson(fileName,scale,reverseY,stationary,offsetX,offsetY)
Liest ein json Script (R.U.B.E kompatibel) ein und erstellt daraus ein LDPhysics Modell.
S. http://www.iforce2d.net/rube für weitere Details.

fileName Der volle Pfad der einzulesenden json Datei.
scale Die Skalierung für alle Shapes (Standard: 1, keine Skalierung).
reverseY y-Richtung umkehren, von oben nach unten? ("True" oder "False").
stationary Setzt anfangs alle Shapes ruhend, (s. Set)JointMotor'en sind weiterhin aktiv ("True" oder "False").
offsetX Versatz entlang der x-Koordinate für alle Shapes.
offsetY Versatz entlang der y-Koordinate für alle Shapes, zB. hilfreich wenn 'reverseY' gesetzt wurde.
returns Ein Stringarray mit den verwendeten LDPhysics Befehlen zum Erstellen des Modells.

RemoveChain(shapeName)
Entfernt eine Kette.
shapeName Der Name der Kette.

RemoveFrozen()
Entfernt alle angehaltenen Shapes (außerhalb AABB befindlich = 'aus dem Rahmen gefallen').

RemoveRope(shapeName)
Entfernt ein Seil.
shapeName Der Name des Seils.

RemoveShape(shapeName)
Entfernt eine Shape.
shapeName Der Name der Shape.

Reset()
Zurücksetzen (löscht alle Verbindungen zwischen Shapes und der Physics Engine).

RopeColour
Ermittelt oder setzt die für Seile verwendete Farbe.

Scaling
Ermittelt oder setzt die Skalierung [Pixel/m] der Physics Engine (Standard: 10). Es ist nicht ratsam diese zu ändern.

SetAABB(minX,maxX,minY,maxY)
Die AABB (axis-aligned bounding box) - der Rahmen des Physics Universums. Ein Reset Aufruf muß unbedingt erfolgen nachdem diese Grenzen geändert wurden.
minX Linke Koordinate des Universums (Standard: -100).
maxX Rechte Koordinate des Universums (Standard: 200).
minY Obere Koordinate des Universums (Standard: -100).
maxY Untere Koordinate des Universums (Standard: 200).

SetAngle(shapeName,angle)
Setzt den Rotationswinkel für eine Shape zurück.
shapeName Der Name der Shape.
angle Der Rotationswinkel [Grad].

SetBoundaries(left,right,top,bottom)
Setzt feste Begrenzungen für die Fläche (Werte außerhalb des GraphicsWindow entfernen die Begrenzung).
left Der x-Wert der linken Begrenzung.
right Der x-Wert der rechten Begrenzung.
top Der y-Wert der oberen Begrenzung.
bottom Der y-Wert der unteren Begrenzung.

SetBullet(shapeName)
Setzt eine Shape als 'Projektil' (Bullet). Dies verhindert das Hindurchfliegen bei kleinen, schnell bewegten Shapes.
shapeName Der Name der Shape.

SetDamping(shapeName,linear,angular)
Setzt den Dämpfungsfaktor für eine Shape (Standard: 0).
shapeName Der Name der Shape.
linear Linearer Dämpfungsfaktor.
angular Schräger/winkliger Dämpfungsfaktor.

SetForce(shapeName,forceX,forceY)
Setzt eine Kraft, die einer Shape zugeordnet wird (F = m*a bzw. m*g).
shapeName Der Name der Shape.
forceX Die x-Komponente der Kraft.
forceY Die y-Komponente der Kraft.
example 'Beschleunigt shp aufwärts um 1pxl/s/s
LDPhysics.SetForce(shp, 0,-LDPhysics.GetMass(shp))


SetGravity(gravX,gravY)
Setzt die allgemeine Richtung und Größe der Gravitation [10m/s/s = 100pxl/s/s] (Standard: 0, 100).
gravX Die x-Komponente der Gravitation.
gravY Die y-Komponente der Gravitation.

SetGroup(shapeName,group,mask)
Setzt eine Auswahl von Shapes welche mit anderen Shapes interagieren (kollidieren).
shapeName Der Name der zu verwaltenden Shape.
group Die Gruppe, der die aktuelle Shape angehört. Ganzzahl zwischen 0 und 15 (Standard: 0).
mask Ein Array von Gruppen welche mit dieser Shape kollidieren (Standard: alle Gruppen 0,1,2,..,14,15).
Standardmäßig werden alle Shapes als Gruppe 0 erstellt und interagieren mit allen Gruppen 0 bis 15.

example Interaktion einer Shape mit Gruppen 0,1 und 4:
mask="1=0;2=1;3=4;".


SetImpulse(shapeName,impulseX,impulseY)
Setzt den Impuls (I = F*t) für eine Shape (zB. Anschieben eines Wagens, geradeaus).
shapeName Der Name der anzustossenden Shape.
impulseX Die x-Komponente des Impulses.
impulseY Die y-Komponente des Impulses.
example 'Beschleunigt shp aufwärts um 1pxl/s/s
LDPhysics.SetImpulse(shp, 0,-LDPhysics.GetMass(shp)/LDPhysics.TimeStep)


SetJointMotor(jointName,speed,maxForce)
Setzt einen Motor für gewählte Verkettungen (Line, Prismatic_H, Prismatic_V und Revolute).
jointName Der Name der Verkettung.
speed Die gewünschte Motorgeschwindigkeit.
maxForce Die maximale Motorkraft (Achsendrehmoment). 0 stellt den Motor ab.

SetPosition(shapeName,posX,posY,angle)
Setzt die Position einer Shape (zurück).
shapeName Der Name der Shape.
posX Die x-Koordinate des Shape Mittelpunktes.
posY Die y-Koordinate des Shape Mittelpunktes.
angle Der Rotationswinkel [Grad].

SetRotation(shapeName,rotation)
Setzt die Rotations-/Winkelgeschwindigkeit für eine Shape.
shapeName Der Name der Shape.
rotation Die Rotations-/Winkelgeschwindigkeit [Grad/sec].

SetShapeGravity(shapeName,gravX,gravY)
Setzt Richtung und Größe der Gravitation [10m/s/s = 100pxl/s/s] für eine angegebene Einzelshape (Standard: 0, 100).
shapeName Der Name der zu modifizierenden Shape.
gravX Die x-Komponente der Gravitation.
gravY Die y-Komponente der Gravitation.

SetTire(shapeName)
Setzt und behandelt ein Objekt als 'fahrbaren' Reifen für ein Top-Down Spiel.
Gewöhnlich wird die Gravitation vernachlässigt (auf 0 gesetzt) und die Shape sollte bereits zur Engine hinzugefügt sein.
Das Objekt sollte zu Beginn in der Anzeige auf- und vorwärts gerichtet positioniert sein.

shapeName Die als Reifen zu setzende Shape.

SetTireProperties(shapeName,properties)
Setzt Reifeneigenschaften wie:
"AntiSkid" (höherer Wert reduziert Schleudern/Abdriften)
"Drag" (höherer Wert erhöht Vor-/Rückwärtszug)
"Brake" (höherer Wert erhöht die Bremskraft)
"Straighten" (höherer Wert korrigiert Geradeauslenkung/Spurtreue schneller)
"BrakeStraighten" (höherer Wert korrigiert Geradeauslenkung beim Bremsen schneller)

shapeName Der Name der Reifenshape.
properties Ein Array mit einer oder mehreren zu setzenden Eigenschaften.
Der Index ist eine der Eigenschaften (exakte Schreibweise) und der Wert ist der Wert der Eigenschaft.


SetTorque(shapeName,torque)
Setzt ein Drehmoment (M = I*alpha) für eine Shape (zB. Antrieb eines Rades, Rotation).
shapeName Der Name der Shape.
torque Der Wert des aufzubringenden Drehmomentes.
example 'Beschleunigt shp-Drehung um 1rad/s/s (~57°/s/s) im Uhrzeigersinn
LDPhysics.SetTorque(shp, LDPhysics.GetInertia(shp))


SetVelocity(shapeName,velX,velY)
Setzt die lineare Bewegungsgeschwindigkeit für eine Shape.
shapeName Der Name der Shape.
velX Die x-Komponente der Geschwindigkeit.
velY Die y-Komponente der Geschwindigkeit.

TimeStep
Ermittelt oder setzt das Intervall für die zeitliche Schrittweite in der Physics Engine (Standard: 0.025).

TimestepControl(timestep,velocityIterations,positionIterations)
Anpassen der voreingestellten Timestep-Steuerparameter.
timestep Die zeitliche Schrittweite (Standard: 0.025).
velocityIterations Geschwindigkeitsiteration (Standard: 6).
positionIterations Positionsiteration (Standard: 2).

ToggleMoving(shapeName)
Umschalten einer bewegten Shape zum Stillstand und umgekehrt.
Diese Methode setzt eine Rotation ebenfalls an/aus in Übereinstimmung ob bewegt oder statisch.

shapeName Der Name der Shape.

ToggleRotation(shapeName)
Umschalten einer rotierenden Shape zum Stillstand und umgekehrt.
Diese Methode ändert die Rotationseigenschaft für fixe und bewegte Shapes.

shapeName Der Name der Shape.

ToggleSensor(shapeName)
Umschalten einer Shape zum Verhalten als Sensor und umgekehrt.
Eine Sensor Shape interagiert nicht mit anderen Shapes, liefert jedoch weiter Kollisionsdaten.

shapeName Der Name der Shape.

TurnTire(shapeName,torque)
Drehen einer Reifenshape, Links- bzw. Rechtslenkung.
shapeName Die zu drehende Reifenshape.
torque Das Drehmoment/anzuwendende Drehkraft (Drehung nach links < 0 < rechts).

UngroupShapes(shape1,shape2)
Aufheben einer Gruppierung zweier Shapes.
shape1 Der Name der ersten Shape.
shape2 Der Name der zweiten Shape.

UnsetBullet(shapeName)
Aufheben des 'Bullet-Status' einer Shape. Diese wird dann wieder als normale Shape behandelt.
shapeName Der Name der Shape.

VelocityIterations
Ermittelt oder setzt die Geschwindigkeitsiteration der Physics Engine (Standard: 6).

VelocityThreshold
Ermittelt oder setzt den Schwellenwert der Physics Engine für unelastische Kollisionen 'klebende Wände' (Standard: 1).

WakeAll()
Erweckt alle ruhenden Shapes. Shapes ruhen aufgrund nicht einwirkender Kräfte oder Kontakte und erwachen automatisch bei einem Kontakt oder einwirkender Kraft, sodaß diese Aktion nur selten nötig ist.

WriteJson(fileName)
Erstellt ein json Script vom aktuellen LDPhysics Modell (R.U.B.E kompatibel).
S. http://www.iforce2d.net/rube für weitere Details.

fileName Der volle Pfad der zu erstellenden json Datei.

LDProcess
Steuern externer Anwendungen und Prozesse.
example debug\Instrument.sb

GetProcesses Start Stop

GetProcesses()
Ermittelt alle aktuell laufenden Prozesse am System als Array ("procID=procName;..;").
returns Ein Array mit den Namen aller Systemprozesse (ohne .exe Erweiterung), indexiert durch die ID des Prozesses und alphabetisch geordnet nach Prozessname.

Start(application,arguments)
Startet eine externe Anwendung, Datei oder Url.
application Der volle Pfad der (shell) zu startenden Anwendung, Datei, Ordner, Verknüpfung.lnk/.url oder Url-Adresse. zB. "C:\Program Files\Microsoft\Small Basic\SB.exe" (kein %VAR% Pfad).
arguments Argumente (in "") zur Übergabe an die Anwendung oder "".
returns Die ID des neu gestarteten Prozesses oder
-1 Mißerfolg
-2 an bestehenden Prozess angehängt

example 'Start CMD in Program.Directory
LDProcess.Start("cmd.exe", "")


Stop(id)
Stoppt einen externen Prozess.
id Die ID des zu stoppenden Prozesses.
returns "True" bei Erfolg, sonst "False".

LDQueue
Dieses Objekt bietet die Möglichkeit zum Zwischenspeichern von Werten (Zahl, String, Var).
Ähnlich einem Stack ('zuletzt rein-zuerst raus'), gilt hier 'zuerst rein-zuerst raus', wie in einer Warteschlange (Gleichbleibende Reihenfolge).
Am Ende der Schlange kann ein Wert angefügt ('Enqueue') werden und am Beginn kann der erste Wert wieder entfernt ('Dequeue') werden.
Enqueue und Dequeue der Werte nur hintereinander, einer nach dem anderen. Queuename vordefiniert zB. QName = "" oder in "".

example client-server\LDClient.sb, LDServer.sb

Dequeue Enqueue GetCount

Dequeue(queueName)
Ermittelt (und entfernt) den Wert am Beginn des angegebenen Queue.
queueName Der Name des Queue.
returns Der Wert des vorne vom Queue entnommenen Elementes.

Enqueue(queueName,value)
Fügt einen Wert am Ende des angegebenen Queue hinzu.
queueName Der Name des Queue.
value Der hinten anzufügende Wert.

GetCount(queueName)
Ermittelt die Anzahl der Elemente im angegebenen Queue.
queueName Der Name des Queue.
returns Die Anzahl Elemente im angegebenen Queue oder 0.

LDRegex
RegEx (Regular expression, reguläre Ausdrücke) zur Textmanipulation.
example http://msdn.microsoft.com/library/hs600312.aspx (Regular expressions quick reference.pdf)
http://www.regular-expressions.info/refquick.html (/quickstart.html, /tutorial.html)
http://regexlib.com/CheatSheet.aspx


Match Replace

Match(input,pattern,caseSensitive)
Durchführen einer Regex Suche.
http://msdn.microsoft.com/library/system.text.regularexpressions.regex.aspx
http://msdn.microsoft.com/library/vstudio/b49yw9s8.aspx

input Der Eingabestring der nach Übereinstimmungen durchsucht wird (bleibt unverändert).
pattern Das Regex Suchmuster als String:
^ Beginn, $ Ende, . jedes, ? 0-1, * 0+, + 1+, \ Escape, [a-f] a bis f, [^0-9] nicht Ziffer, \d Ziffer, \w Buchst, \s Whitespace, \t Tab, (Gruppe), {Quant}

caseSensitive Bei Regex Übereinstimmung GROß-/kleinschr. unterscheiden? "True" oder "False" (Standard).
returns Die Suchtreffer als Array, indexiert durch deren Anfangsposition (ab 1) im String ("startPos1=fund1;..;") oder "".
example A. Zeilenanzahl im String:
lf = Text.GetCharacter(10) ' "\n"
arr = LDRegex.Match(str, lf,"")
nLine = Array.GetItemCount(arr)
B. arr = Match(str, "^[^\.]*$","")
'arr = "" (str mit ".")
'arr[1] = str (ohne ".")
C. isMatch?:
If LDRegex.Match(str, muster,"") <> "" Then
isMatch = "True"
EndIf
D. isHex?:
LDLogic.NE(Match(hex, "^#[0-9a-f]+$",""),"")
E. isColor?:
LDLogic.NE(Match(col, "^#(?:[0-9a-f]{3}){1,2}$",""),"")


Replace(input,pattern,replacement,caseSensitive)
Durchführen einer Regex Suche mit Ersetzen.
http://docs.microsoft.com/dotnet/standard/base-types/regular-expression-language-quick-reference
http://docs.microsoft.com/dotnet/standard/base-types/substitutions-in-regular-expressions

input Der Eingabestring in dem Suchtreffer ersetzt werden (bleibt unverändert).
pattern Das Regex Suchmuster als String:
^ Beginn, $ Ende, . jedes, ? 0-1, * 0+, + 1+, \ Escape, [a-f] a bis f, [^0-9] nicht Ziffer, \d Ziffer, \w Buchst, \s Whitespace, \t Tab, (Gruppe), {Quant}

replacement Der Ersatzstring für Suchtreffer, zB. für (Treffergruppe):
$& voller Trefferstring
$1 Trefferindex 1
$2 Trefferindex 2 usw.

caseSensitive Bei Regex Ersatz GROß-/kleinschr. unterscheiden? "True" oder "False" (Standard).
returns Die geänderte Version des Eingabestrings nach Regex Ersatz.
example A. " aus String entfernen:
qu = Text.GetCharacter(34)
ohneQu = LDRegex.Replace(str, qu,"","")
B. Doppelleerzeilen entfernen:
LDRegex.Replace(str, doCrLf,crlf,"")
C. Strip html/xml Tags:
LDRegex.Replace(html,"","","") 'od.
LDRegex.Replace(html,"<.*?>"," ","") 'und
LDRegex.Replace(html," ","","")
D. Nur num. Arraywerte:
LDRegex.Replace(arr,"(;|)\d\=|;"," ","")
E. Mehrere Leerzeilen durch einzelne ersetzen:
str = File.ReadContents(fIn)
out = LDRegex.Replace(str, "(\r\n){2,}",doCrLf,"")
File.WriteContents(fNeu ,out)
F. Endende spc/tab entfernen:
LDRegex.Replace(line,"[ \t]+$","","")
G. Nicht-Ascii Zeichen (<32, >126) entfernen:
LDRegex.Replace(str,"[^ -~]*","","")
H. chr am Ende anfügen:
LDRegex.Replace(str, "(.)$","\1"+chr,"")


LDResources
Speichern und Laden von Programmressourcen in/aus einer gleichnamigen Binärdatei.
Diese Ressourcen werden in einer einzelnen Datei gespeichert, als aktueller Programmname mit Erweiterung .sbres und befindet sich im selben Verzeichnis wie das Programm.
Ressourcen beinhalten alle ImageList Bilder, mit 'Sound.Play' abzuspielende Sounds, sowie optional weitere Dateien, Strings oder Variablen.

example other-samples\LDResources.sb

AddFile AddText CleanTemp
ExtractFile Files Images
Load Save Sounds
Texts

AddFile(fileName)
Fügt eine beliebige Datei zum Speichern in die Ressource hinzu.
fileName Der volle Pfad der hinzuzufügenden Datei.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

AddText(text)
Fügt Text (auch als Variable bzw. Array) zum Speichern in der Ressource hinzu.
text Der Text oder eine SB Variable zum Hinzufügen in die Ressource.

CleanTemp()
Löscht verwendete, temporäre Sound Dateien (LDResources.Sounds) aus dem %TEMP% Ordner.

ExtractFile(fileName)
Entpackt eine gespeicherte Ressourcedatei in den aktuellen Programmordner (Program.Directory).
fileName Der Dateiname, wie unter 'LDResources.Files' zurückgegeben.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

Files
Ermittelt eine Liste aller geladenen Dateinamen (mittels 'ExtractFile' extrahierbar) als Array.

Images
Ermittelt eine Liste aller geladenen 'ImageList#' Bilder (vorgeladen zur Weiterverwendung in ImageList) als Array.

Load()
Lädt alle zuvor gespeicherten Ressourcen aus einer gleichnamigen .sbres Datei.
ImageList# Bilder und Sounds werden automatisch geladen und sind bereit zur Verwendung.
Sound Dateien werden im %TEMP% Ordner erstellt, sobald sie von 'Sound.Play' benötigt werden.

returns "SUCCESS" bei Erfolg, sonst "FAILED".

Save()
Speichert alle verwendeten Ressourcen in eine gleichnamige .sbres Datei.
Dies betrifft alle benötigten ImageList Bilder, abzuspielende Sounds (Sound.Play), sowie hinzugefügte Dateien oder Text/Variablen.

returns "SUCCESS" bei Erfolg, sonst "FAILED".

Sounds
Ermittelt eine Liste aller geladenen Sound Dateien (vorgeladen zur Weiterverwendung mit 'Sound.Play') als Array. Diese werden im %TEMP% Ordner erstellt, sofern 'LDResources.CleanTemp' nicht aufgerufen wird.

Texts
Ermittelt eine Liste aller geladenen Texte/Variablen als Array.

LDScrollBars
Scrollleisten für das GraphicsWindow. Kann zum Bildlauf im Spiel verwendet werden.

Warnung: Die Größe des GraphicsWindow nicht per GraphicsWindow.Width oder -Height ändern, NACHDEM ScrollBars hinzugefügt wurden.
In diesem Fall LDGraphicsWindow.Width und -Height verwenden.
Für ausgedehnte Scrollbereiche s. Rasterize (Eigenschaft).

example other-samples\LDScrollBars.sb

Add HorizontalScroll KeyScroll
Modify MouseScroll PanningRatio
Rasterize ScrollBarChanged VerticalScroll
Visibility

Add(width,height)
Fügt ScrollBar(s) im GraphicsWindow hinzu (GraphicsWindow muß initialisiert sein, bzw. wird aktiviert).
Eingabebreite und -höhe sind jene, auf die gescrollt werden kann (Leistenbreite: 16).
0 verhindert das Einblenden einer ScrollBar.
GraphicsWindow.Width/Height übernehmen die angegebenen Werte, daher künfig LDGraphicsWindow.Width/Height verwenden.

width Die Breite des scrollbaren Bereichs (sinnvoll ab GW.Width).
height Die Höhe des scrollbaren Bereichs (sinnvoll ab GW.Height).

HorizontalScroll
Ermittelt oder setzt die horizontale Position der ScrollBar. Bei Positionsänderung wird 'ScrollBarChanged' Event ausgelöst.

KeyScroll
Ermittelt oder setzt die Verschiebbarkeit der ScrollBar mittels Pfeiltasten. "True" (Standard) oder "False".

Modify(action)
Setzt eine ScrollBar auf eine definierte Position. Bei Positionsänderung wird 'ScrollBarChanged' Event ausgelöst.
action Mögliche Aktionen:
"PageDown", "PageUp"
"PageLeft", "PageRight"
"ScrollToTop", "ScrollToBottom"
"ScrollToLeftEnd", "ScrollToRightEnd"
"ScrollToHome", "ScrollToEnd"


MouseScroll
Ermittelt oder setzt die Verschiebbarkeit der ScrollBar mittels Mausrad. "True" (Standard) oder "False".
Horizontaler Bildlauf per Mausrad bei gedrückter Umschalt-Taste (Shift).


PanningRatio
Ermittelt oder setzt das Bildlaufverhältnis bei Verschiebung der ScrollBar (Standard: 1).

Rasterize
Ermittelt oder setzt die Rasterung für gezeichnete (GW.Draw/GW.Fill) Objekte. "True" (Standard) oder "False".

Für über 100 gezeichnete Objekte (keine Shapes) rastert SB diese aus Gründen der Systemleistung zu einem Bitmap Bild.
Für sehr große scrollbare Bereiche kommt es zu Platzmangel im Arbeitsspeicher und kann daher hier deaktiviert werden.
Wenn deaktiviert, nicht mehr als 100 gezeichnete Objekte verwenden.
Ist zu setzen bevor LDScrollBars.Add aufgerufen wird.


ScrollBarChanged
Ereignisaufruf bei Erkennen einer Bildlauf Operation.

VerticalScroll
Ermittelt oder setzt die vertikale Position der ScrollBar. Bei Positionsänderung wird 'ScrollBarChanged' Event ausgelöst.

Visibility
Ermittelt oder setzt die Sichtbarkeit der ScrollBar. "True" (Standard) oder "False".

LDSearch
Methoden zur Onlinesuche mit 'Bing'.
Unterstützt Web-, Bild-, Video-, News- und Rechtschreibungs- Suchvorschläge.


Count GetImage GetNews
GetProof GetSpelling GetVideo
GetWeb Language

Count
Ermittelt oder setzt die maximale Anzahl der erhaltenen Suchergebnisse (Standard: 50).

GetImage(search)
Ausführen einer Bing Websuche nach Bildern.
search Der Suchtext.
returns Ein Array der Suchergebnisse als "url=Beschreibung;..;".

GetNews(search)
Ausführen einer Bing Websuche nach News.
search Der Suchtext.
returns Ein Array der Suchergebnisse als "url=Beschreibung;..;".

GetProof(text,mode)
Ausführen einer Text Rechtschreibprüfung (Nachweis) für längeren Text mit detailierten Infos wie in Word.
text Der zu überprüfende Text.
mode Der Modus:
"Proof" längerer Text (Standard)
"Spell" Kurz- oder Einzelwort Prüfung

returns Ein Array mit Schreibweise und weiteren Vorschlägen bei Erfolg, sonst "" (keine Treffer).

GetSpelling(search)
Ausführen einer Bing Websuche nach Rechtschreibung oder alternative Suchvorschläge.
search Der Suchtext.
returns Ein Array (ab 1) mit Rechtschreibung bzw. alternativen Vorschlägen bei Erfolg, sonst "" (keine Treffer).

GetVideo(search)
Ausführen einer Bing Websuche nach Videos.
search Der Suchtext.
returns Ein Array der Suchergebnisse als "url=Beschreibung;..;".

GetWeb(search)
Ausführen einer Bing Suche nach Webseiten.
search Der Suchtext.
returns Ein Array der Suchergebnisse als "url=Beschreibung;..;".

Language
Ermittelt oder setzt die verwendete Sprache (Standard: aktuelle Kultur, de-DE).
Optionen:
es-AR,en-AU,de-AT,nl-BE,fr-BE,pt-BR,en-CA,fr-CA,es-CL,da-DK,fi-FI,fr-FR,de-DE,zh-HK,en-IN,en-ID,en-IE,it-IT,ja-JP,ko-KR,en-MY,es-MX,nl-NL,en-NZ,no-NO,zh-CN,pl-PL,pt-PT,en-PH,ru-RU,ar-SA,en-ZA,es-ES,sv-SE,fr-CH,de-CH,zh-TW,tr-TR,en-GB,en-US,es-US

example http://msdn.microsoft.com/library/ee825488.aspx (Kulturnamen, Codes, ISO Werte)

LDServer
Server- und Klient Kommunikation zwischen Computern.
Für Server und Klient sind separate Programme erforderlich. Diese Klasse ist für den Server (s.a. LDClient).

example client-server\*.sb

AutoMessages Broadcast ClientConnected
ClientDisconnected ClientMessage Close
CloseDelay Disconnect GetClients
IP LastClient LastClientConnected
LastClientDisconnected LastClientMessage Port
SendMessage Start Stop

AutoMessages
Bei 'auto' Modus Verbindungsnachrichten im TextWindow anzeigen? "True" (Standard) oder "False".

Broadcast(message)
Sendet eine Nachricht an alle Klienten.
message Die Nachricht. Kann eine beliebige Variable (auch Array) sein.
returns Ein Array mit dem Klientname als Index und einem Wert "SUCCESS", "NOT_CONNECTED", "NO_CLIENT" oder "FAILED".

ClientConnected
Ereignisaufruf wenn ein Klient eine Verbindung herstellt.

ClientDisconnected
Ereignisaufruf wenn ein Klient getrennt wird.

ClientMessage
Ereignisaufruf wenn ein Klient eine Nachricht an den Server sendet.

Close(clientName)
Trennt und schließt (beendet) einen Klient.
clientName Der Klientname, gewöhnlich Client1, Client2 usw.
Eine Liste aktueller Klienten kann mittels 'GetClients' Methode erhalten oder vom 'ClientConnected' Ereignis gefunden werden.

returns "SUCCESS", "NOT_CONNECTED", "NO_CLIENT" oder "FAILED".

CloseDelay
Eine Verzögerung [ms] (Standard: 100) bei Trennung, um das Senden einer Nachricht zu erlauben, bevor die Verbindung getrennt wird (Stop, Disconnect und Close).
Diese Verzögerung sollte auch für die Klienten (LDClient.CloseDelay) gesetzt werden.


Disconnect(clientName)
Trennt einen Klient ab.
clientName Der Klientname, gewöhnlich Client1, Client2 usw.
Eine Liste aktueller Klienten kann mittels 'GetClients' Methode erhalten oder vom 'ClientConnected' Ereignis gefunden werden.

returns "SUCCESS", "NOT_CONNECTED", "NO_CLIENT" oder "FAILED".

GetClients()
Ermittelt eine Liste aktuell verbundener Klienten.
returns Ein Array mit aktuellen Klientnamen oder "" für keiner.

IP
Die IP Adresse des Servers (bezieht sich standardmäßig auf die aktuelle LAN IP).
Zur Verwendung über das Internet wird eine eigene Web IP benötigt.


LastClient
Der Name des letzten Klienten.

LastClientConnected
Der Name des zuletzt verbundenen Klienten.

LastClientDisconnected
Der Name des zuletzt getrennten Klienten.

LastClientMessage
Die letzte Klient Nachricht.

Port
Der zu verwendende Windows Port (Standard: 100).

SendMessage(clientName,message)
Sendet eine Nachricht an einen Klient.
clientName Der Klientname, gewöhnlich Client1, Client2 usw.
Eine Liste aktueller Klienten kann mittels 'GetClients' Methode erhalten oder vom 'ClientConnected' Ereignis gefunden werden.

message Die Nachricht. Kann eine beliebige Variable (auch Array) sein.
returns "SUCCESS", "NOT_CONNECTED", "NO_CLIENT" oder "FAILED".

Start(auto)
Startet den Server.
auto Automatiche Nachrichtenübergabe? "True" oder "False".
Bei (empfohlener) Verwendung werden alle Klientdaten via Server an alle anderen Klienten übergeben,
und es ist keine weitere Verarbeitung von Senden- und Empfangen Ereignissen erforderlich.
Die Daten werden in Arrays (indexiert durch Klientname) aktualisiert, die von den 'LDClient.Update..' Methoden zurückgegeben werden.
Die 'auto' Option sollte für Server und alle Klienten gleich sein.

returns Die aktuellen Verbindungsparameter als IP:Port (zB. "192.168.1.60:100") oder "FAILED".
Dies ist der zu verwendende Parameter für eine Verbindung vom Klient (LDClient.Connect).


Stop()
Stoppt den aktuellen Server und schließt alle Klienten.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

LDSettings
Speichern und Abrufen von Benutzereinstellungen für Programme in einer binären Settings-Datei.
example other-samples\ClockWidget.sb

FilePath GetValue SetValue

FilePath
Ermittelt oder setzt den vollen Pfad der Einstellungsdatei.
(Standard: Program.Directory\ExeName.settings, s.a. File.GetSettingsFilePath)


GetValue(name)
Ermittelt den Wert für eine Einstellung.
name Der Name der Einstellung in "".
returns Der ermittelte Wert der Einstellung bei Erfolg, sonst "".

SetValue(name,value)
Setzt/Ändert den Wert für eine Einstellung.
Eine nicht bestehende Einstellungsdatei wird neu erstelllt.

name Der Name der Einstellung in "".
value Der zu setzende Wert für die Einstellung.

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).

LDShell
Funktionen für erweiterte Dateiinfos, lnk/url Verknüpfungen und Shell Anwendungen. (Code und Methoden von Pappa Lapub).

AllDetails ApplyVerbOn CascadeWindows
DateTimeSettings DTIconsHide DTIconsOn
DTIconsShow DTIconsToggle ExploreFolder
GetAllDetailNamesFor GetAllDetailsFor GetAllVerbsFor
GetDetail GetSetting GetSystemInfo
LinkCreate LinkGetProperty LinkSetProperty
Name OpenFolder RestoreWindows
RunBox SelectFolder ShellLink
ShellLinkGet ShellLinkSet ShowDesktop
ShowFileProperties SpecialFolderConstants SpecialFolderList
SpecialFolderPaths SpecialFolders StartSettings
Switch3D TileAllHoriz TileAllVert
ToggleDesktop Version

AllDetails
Ermittelt die Namen aller verfügbaren erweiterten Eigenschaften als Array (zB. Win7 "-1=Infotip;0=Name;..;286=Gesamtbitrate;").

ApplyVerbOn(path,verb)
Wendet das angegebene Verb (Kontextmenüeintrag) für die angegebene Datei oder Ordner an.
Liste verfügbarer Verben (für Datei/-typ oder Ordner) unter s. 'GetAllVerbsFor'.

path Der volle Datei- oder Ordnerpfad.
verb Das anzuwendende Verb (GROß-/kleinschr. bzw. '&' egal).
returns "SUCCESS" bei Erfolg, sonst "FAILED".
example 'Textdatei bearbeiten (Systemstandard):
LDShell.ApplyVerbOn(txtPfad, "Bearbeiten")


CascadeWindows()
Ordnet alle offenen Fenster in Kaskade unterteilt am Desktop an (Zurücksetzen mit RestoreWindows).

DateTimeSettings()
Zeigt den Dialog 'Datum- und Uhrzeiteinstellungen' an.

DTIconsHide()
Blendet alle Desktopsymbole aus.

DTIconsOn
Ermittelt oder setzt die Anzeige der Desktopsymbole? "True" (Standard) oder "False".

DTIconsShow()
Zeigt alle ausgeblendeten Desktopsymbole wieder an.

DTIconsToggle()
Schaltet die Anzeige aller Desktopsymbole automatisch um (Ein/Aus).

ExploreFolder(path)
Startet Explorer mit dem angegebenen Ordnerpfad (bzw. Elternordner für existierenden Dateipfad) in der Baumansicht. Neuer Tab in QTTabBar.
path Der im Explorer zu startende Ordner- bzw. Dateipfad (öffnet Elternordner). Der Ordner muß existieren.

GetAllDetailNamesFor(path,step1)
Ermittelt die Namen aller verfügbaren erweiterten Eigenschaften für angegebene Datei oder Ordner als Array (bis max. 316, ohne -1=Infotip).
path Der volle Datei- oder Ordnerpfad.
step1 Indizes in 1-Schritten? "True" oder "False" (Standard, tatsächlicher Eigenschaftenindex).
returns Die Namen aller verfügbaren erweiterten Eigenschaften als Array ("idx=Eigenschaftname;...", ohne Infotip) bei Erfolg, sonst "FAILED".

GetAllDetailsFor(path)
Ermittelt alle verfügbaren erweiterten Eigenschaften für angegebene Datei oder Ordner als Array (bis max. 316, ohne -1=Infotip).
path Der volle Datei- oder Ordnerpfad.
returns Alle verfügbaren erweiterten Eigenschaften als Array ("Eigenschaftname=Wert;...", ohne Infotip) bei Erfolg, sonst "FAILED".

GetAllVerbsFor(path)
Ermittelt alle verfügbaren Verben (Kontextmenüeinträge) für angegebene Datei/-typ oder Ordner als Array.
Anwendung eines Verbs für Datei/Ordner unter s. 'ApplyVerbOn'.

path Der volle Datei- oder Ordnerpfad.
returns Alle verfügbaren Verben als Array ("idx=Verb;...", ohne '&') bei Erfolg, sonst "FAILED".

GetDetail(path,infoType)
Ermittelt den Wert einer erweiterten Eigenschaft zu einem angegebenen Datei- oder Ordnerpfad.
path Der volle Datei- oder Ordnerpfad.
infoType Die Indexnummer oder Name der Eigenschaft (zB. -1="Infotip"|"", 0="Name", 1="Größe", usw.)
Indexnummern und Namen aller verfügbaren Eigenschaften unter s. 'AllDetails'.

returns Der Wert der Eigenschaft wenn vorhanden, sonst "". "FAILED" bei Mißerfolg (zB. fehlender Pfad).
Infotip Zeilen getrennt durch lf, endend mit crlf.

example iTip = GetDetail(pfad, "")
name = GetDetail(pfad, 0)
size = GetDetail(pfad, "gRÖsse")


GetSetting(value)
Ermittelt Werte für globale Shell Einstellungen (s. Ordneroptionen-Ansicht, CheckedStatus).
value Eine ganzzahlige Konstante für den zu ermittelnden Wert (zB. 1, 2, 4, "8", "32" usw.).
returns "True" oder "False" bei Erfolg, sonst "FAILED".
example http://msdn.microsoft.com/library/windows/desktop/gg537739.aspx
showAllObjects = SBShell.GetSetting(1)
showExtensions = SBShell.GetSetting(2)
showInfoTip = SBShell.GetSetting(8192)
showSuperHidden = SBShell.GetSetting(262144)


GetSystemInfo(info)
Ermittelt eine angegebene Systeminformation.
info Der Name des zu ermittelnden Wertes in "":
"DirectoryServiceAvailable" Verzeichnisdienst?
"DoubleClickTime" Verzögerung [ms]
"ProcessorLevel" CPUModell 3,4,5,6 für x386,x486,Pentium,3558
"ProcessorSpeed" Taktfrequenz [MHz]
"ProcessorArchitecture" 0,5,6,9 für x86,ARM,Itanium,AMD64
"PhysicalMemoryInstalled" Arbeitsspeicher RAM [Byte]
"IsOS_DomainMember" (XP+)
"IsOS_Professional", "IsOS_Personal" (XP)

returns Der ermittelte Wert bei Erfolg, sonst "" oder "FAILED".
example http://msdn.microsoft.com/library/windows/desktop/gg537740.aspx

LinkCreate(shortcut,target)
Erstellt eine neue lnk/url Verknüpfung (Shell32). Weitere Bearbeitung mittels 'LinkSetProperty'.
shortcut Der volle Pfad der neuen lnk/url Verknüpfung.
target Der volle Pfad für Zieldatei/-ordner bzw. url Adresse (Datei Uri).
returns Der volle Dateipfad der erstellten Verknüpfung bei Erfolg, sonst "FAILED".

LinkGetProperty(shortcut,property)
Ermittelt Eigenschaften einer lnk/url Verknüpfung, wie Zielpfad, Argumente usw. (* für url, Shell32).
shortcut Der volle Pfad der lnk/url Verknüpfung.
property Die zu ermittelnde Eigenschaft (Schreibweise egal, * für url):
"Target" Zielpfad *
"Args" Argumente
"Folder" Startordner
"Desc" Kommentar *
"Icon" Symbolpfad,# (Strd: ,0)*
"Hotkey" Tastencode (Strd: 0) *
"Style" Stil (1 normal, 3 max, 7 min) *

returns Der Wert der Eigenschaft oder "" bei Erfolg, sonst "FAILED".

LinkSetProperty(shortcut,target,args,folder,desc,icoPath,icoIdx,hotkey,style)
Setzt Eigenschaften für eine bestehende lnk/url Verknüpfung, wie Zielpfad, Argumente usw. (* für url, Shell32).
shortcut * Der volle Pfad der bestehenden lnk/url Verknüpfung.
target * Voller Pfad für Zieldatei/-ordner bzw. url Adresse (Datei Uri).
args Startparameter bei Aufruf oder "" (bei url).
folder Voller Pfad des Startordners oder "" (bei url).
desc * Kommentar/Beschreibung oder "".
icoPath * Voller Pfad der Symboldatei oder "".
icoIdx * Iconindex# in der Symboldatei (Strd: 0, für .ico).
hotkey * Tastencode zum Aufruf (Strd: 0).
style * Fensterstil bei Aufruf (Strd: 1 normal, 3 max, 7 min).
returns Der volle Dateipfad der geänderten Verknüpfung bei Erfolg, sonst "FAILED".

Name
Ermittelt den Name der ausführenden Assembly für diese Extension.

OpenFolder(path)
Öffnet den angegebenen Ordnerpfad (bzw. Elternordner für existierenden Dateipfad) im Explorer. Neuer Tab in QTTabBar.
path Der im Explorer zu öffnende Ordner- bzw. Dateipfad (öffnet Elternordner). Der Ordner muß existieren.

RestoreWindows()
Stellt alle minimierten Fenster in der Taskleiste (nach ShowDesktop, TileAll.., CascadeWindows, Tasten: LWin+D) wieder her.

RunBox()
Zeigt den Dialog 'Ausführen' an.

SelectFolder(title,initDir)
Zeigt einen Dialog zur Auswahl eines Ordners (unabhängig vom GW, s. 'LDDialogs.GetFolder').
title Der im Dialog anzuzeigende Titel.
initDir Der Startordner bei Öffnen des Dialogs oder "" für zuletzt gewählten Ordner (Standard: Arbeitsplatz).
returns Der volle Ordnerpfad bei Auswahl oder "" bei Abbruch, sonst "FAILED".

ShellLink(shortcut,target)
Erstellt eine neue lnk/url Verknüpfung (IWshRuntimeLibrary). Weitere Bearbeitung mittels 'ShellLinkSet'.
shortcut Der volle Pfad der neuen lnk/url Verknüpfung.
target Der volle Pfad für Zieldatei/-ordner bzw. url Adresse (Datei Uri).
returns Der volle Dateipfad der erstellten Verknüpfung bei Erfolg, sonst "FAILED".

ShellLinkGet(shortcut,property)
Ermittelt Eigenschaften einer lnk/url Verknüpfung, wie Zielpfad, Argumente usw. (* für url, IWshRuntimeLibrary).
shortcut Der volle Pfad der lnk/url Verknüpfung.
property Die zu ermittelnde Eigenschaft (Schreibweise egal, * für url):
"Target" Zielpfad *
"Args" Argumente
"Folder" Startordner
"Desc" Kommentar *
"Icon" Symbolpfad,# (Strd: ,0)*
"Hotkey" Tastenkomb. (Strd: "") *
"Style" Stil (1 normal, 3 max, 7 min) *

returns Der Wert der Eigenschaft oder "" bei Erfolg, sonst "FAILED".

ShellLinkSet(shortcut,target,args,folder,desc,icon,hotkey,style)
Setzt Eigenschaften für eine bestehende lnk/url Verknüpfung, wie Zielpfad, Argumente usw. (* für url, IWshRuntimeLibrary).
shortcut * Der volle Pfad der bestehenden lnk/url Verknüpfung.
target * Voller Pfad für Zieldatei/-ordner bzw. url Adresse (Datei Uri).
args Startparameter bei Aufruf oder "" (bei url).
folder Voller Pfad des Startordners oder "" (bei url).
desc * Kommentar/Beschreibung oder "".
icon * Voller Pfad(,#) der Symboldatei oder "". '#' ist Index in der Symboldatei (Strd: 0, für .ico).
hotkey * Tastenkomb. zum Aufruf (Strd: "").
style * Fensterstil bei Aufruf (Strd: 1 normal, 3 max, 7 min).
returns Der volle Dateipfad der geänderten Verknüpfung bei Erfolg, sonst "FAILED".

ShowDesktop()
Minimiert alle offenen Fenster in die Taskleiste und zeigt den Desktop an (Zurücksetzen mit RestoreWindows, Tasten: LWin+D).

ShowFileProperties(filePath)
Zeigt den Shell Eigenschaftendialog für angegebene Datei oder Ordner an (GW ist dafür erforderlich, nicht von TW/Console oder nach GW.Hide/GW.Show).
Erfordert Aufruf als STAThread oder mittels Ereignis Sub.

filePath Der volle Datei- oder Ordnerpfad.

SpecialFolderConstants
Ermittelt alle CSIDL Nummern mit deren speziellen System-/Shellordnernamen als Array ("csidl#=Ordnername;..;").

SpecialFolderList(csidl)
Ermittelt alle Objekte in einem speziellen System-/Shellordner (oberste Ebene).
csidl Die CSIDL Nummer des Systemordners (0 bis 47, Konstanten und Namen möglicher Ordner unter s. 'SpecialFolderConstants').
returns Die Namen der Objekte im Systemordner als Array (nur oberste Ebene) bei Erfolg, sonst "FAILED".
example 'zB. csidl# .. Ordner:
3 Systemsteuerung
5 Eigene Dokumente
8 Zuletzt verwendet
9 SendTo
10 Papierkorb
16 Desktopordner
17 Computer
20 Fonts
32 Temp Inet Files
...
http://msdn.microsoft.com/library/bb774096.aspx


SpecialFolderPaths
Ermittelt alle speziellen System-/Shellordnernamen mit deren Ordnerpfaden als Array ("Ordnername=Pfad;..;").

SpecialFolders
Ermittelt die Pfade aller speziellen Systemodner als Array ("Ordnername=Pfad;.."). Für Shellordner s. 'SpecialFolderPaths'.

StartSettings()
Zeigt den Dialog 'Startmenü-/Taskleiste Eingenschaften' an.

Switch3D()
Ordnet alle offenen Fenster in einem 3D-Stapel zur Durchwahl (mit Pfeiltasten, Auswahl mit Eingabe Taste, Abbruch Esc).
(rundll32.exe DwmApi #105)


TileAllHoriz()
Ordnet alle offenen Fenster waagrecht unterteilt am Desktop an (Zurücksetzen mit RestoreWindows).

TileAllVert()
Ordnet alle offenen Fenster senkrecht unterteilt am Desktop an (Zurücksetzen mit RestoreWindows).

ToggleDesktop()
Schaltet die Anzeige des (fensterlosen) Desktop um (Ein/Aus, s. ShowDesktop/RestoreWindows, Tasten: Win+D).

Version
Ermittelt die aktuelle Dateiversion dieser Extension (sonst 0.0.0.0).

LDSort
Sortieren von SB Arrays (numerische oder Stringarrays).
Strings sind mit/ohne Beachtung von GROß-/kleinschr. sortierbar, s. 'CaseSensitive'.

example other-samples\ListBox.sb

ByIndex ByValue ByValueWithIndex
CaseSensitive

ByIndex(array)
Sortiert einen Array beliebiger Dimension nach aufsteigenden Indizes.
Der Eingabearray bleibt unverändert.

array Der zu sortierende Array.
returns Der sortierte Array.

ByValue(array)
Sortiert einen 1D Array nach aufsteigenden Arraywerten (Alle Indizes werden neu durchnummeriert ab 1, s. 'LDStatistics.SetArray').
Der Eingabearray bleibt unverändert.

array Der zu sortierende 1D Array (Indizes egal).
returns Der sortierte Array (ab 1).

ByValueWithIndex(array)
Sortiert einen 1D Array nach Arraywerten (Indizes bleiben unverändert aber sortiert).
array Der zu sortierende 1D Array.
returns Der sortierte Array.

CaseSensitive
Ermittelt oder setzt die Beachtung von GROß-/kleinschr. bei Stringvergleich. "True" (Standard) oder "False".

LDSound
Soundaufnahme von einem erforderlichen (ev. internen) Mikrofon in eine angegebene wav Datei. Diese wird mit LDSound.Stop gespeichert.
SystemSounds können ebenfalls abgespielt werden, wenn diese passend gesetzt sind (s.a. SB Sound Objekt, mmsys.cpl,2, %WinDir%\Media).

example other-samples\LDSound.sb

Asterisk Beep Exclamation
Hand MusicPlayTime Pause
Question Resume Start
Stop Tone Volume

Asterisk()
Spielt den 'Asterisk (Sternchen)' Systemsound ab.

Beep()
Spielt den 'Beep (Standardton Warnsignal)' Systemsound ab.

Exclamation()
Spielt den 'Exclamation (Hinweis)' Systemsound ab.

Hand()
Spielt den 'Hand (Kritischer Abbruch)' Systemsound ab.

MusicPlayTime(fileName)
Ermittelt die Länge (Gesamtabspieldauer [sec]) einer Audiodatei (mp3, wav, wma bzw. flac, m4a, ogg). Ev. Videodatei (avi, mp4).
fileName Der volle Pfad der Audiodatei zB. "C:\Users\Public\Music\song.mp3".
returns Die Länge der Audiodatei [sec] bei Erfolg, sonst 0 (und Fehlermeldung).
example s = LDSound.MusicPlayTime(audio) '[sec]
mmss = Math.Floor(s/60) +":"+ Math.Remainder(s,60) '[mm:ss]


Pause()
Pausiert die aktuelle Soundaufnahme.

Question()
Spielt den 'Question (Frage)' Systemsound ab.

Resume()
Setzt die Aufnahme einer pausierten Soundaufnahme fort.

Start()
Startet die Soundaufnahme.

Stop(wavFile)
Stoppt und speichert die aktuelle Soundaufnahme in eine angegebene wav Datei.
wavFile Voller Pfad der wav Datei zum Speichern der Audioaufnahme.
Dateierweiterung wird zu .wav gesetzt, falls anders angegeben.

returns "SUCCESS" bei erfolgreichem Speichern, sonst "FAILED".

Tone(frequency,duration)
Spielt einen BeepSound mit angegebener Frequenz und Dauer über den internen Lautsprecher ab.
Verwendet den Motherboard Lautsprecher (DOS, nicht Soundkarte) und mag von geringer Qualität oder gar nicht verfügbar sein.

frequency Die Tonfrequenz des Beeps (37 bis 32767 [Hz]).
duration Die Tondauer [ms].
example Kammerton 'a4' hat 440 Hz. Halbtonschritt Fakt. = 2^(1/12) = 1.059463, Ganztonschritt Fakt. = 2^(1/6) = 1.1222462, Oktave Fakt. = 2.
http://de.wikipedia.org/wiki/Frequenzen_der_gleichstufigen_Stimmung
http://www.sengpielaudio.com/Rechner-notennamen.htm


Volume(command)
Setzt den Lautstärkepegel für Sounds im aktuellen GraphicsWindow.
command Die Option zum Ändern der Lautstärke:
"Up" - Lautstärke
"Down" + Lautstärke
"Mute" Stumm <-> Laut


LDSpeech
Ermöglicht Sprachausgabe von Text (TTS) oder das Erkennen von Sprache (Sprachbefehlen).
example other-samples\SpeechRecognition.sb

LastSpoken LastSpokenConfidence Listen
Speak Speed Vocabulary
Voice Voices Volume

LastSpoken
Ermittelt den Text der zuletzt gesprochen und vom System erkannt wurde.

LastSpokenConfidence
Ermittelt das Vertrauen in die Korrektheit der zuletzt erkannten Spracheingabe (0 bis 1).

Listen
Ereignisaufruf wenn Text gesprochen und vom Computer erkannt wird.
Ein gutes Mikrofon, einige Übung und ein prägnantes Vokabular werden für brauchbare Ergebnisse benötigt.


Speak(text)
Spricht den angegebenen Text mit der gewählten Stimme (sonst Standardstimme [1]).
text Der auszusprechende Text.

Speed
Ermittelt oder setzt die Geschwindigkeit der Sprachausgabe (-10 bis 10).

Vocabulary(dictionary)
Erstellt ein Vokabular an Wörtern und Sätzen zur Verwendung für die Spracherkennung.
Falls dieses nicht erstellt wurde, wird eine sehr große Sprachbibliothek verwendet und die daraus resultierenden Ergebnisse sind nicht optimal (unbrauchbar!).
Deutlich gesprochene Sätze werden besser erkannt als einzelne Worte.

dictionary Ein Array von Wörtern oder Sätzen die erkannt werden sollen.
Ist dieser leer, wird das voreingestellte (englische) Sprachvokabular benutzt.

example other-samples\SpeechRecognition.sb

Voice
Ermittelt oder setzt die aktuell verwendete Sprechstimme.
example voc = LDSpeech.Voices()
'Standardstimme voc[1] bzw.
TextWindow.WriteLine(LDSpeech.Voice)
LDSpeech.Voice = voc[2] 'andere Stimme
LDSpeech.Speak("text")


Voices()
Ermittelt die Namen der verfügbaren installierten Sprechstimmen als Array (nur 64bit Stimmen auf 64bit Win).
returns Ein Array mit den Namen aller verfügbaren Stimmen (alphabetisch sortiert, ab 1).

Volume
Ermittelt oder setzt die Lautstärke der Sprachausgabe (0 bis 100 [%]).

LDStatistics
Ermittelt statistische Werte für einen numerischen 1D Array (wird zuerst sortiert).
Zuerst mit 'SetArray' einen numerischen 1D Array definieren.

example graph_samples\graph-statistics.sb

Count Differentiate DistBinomial
DistNormal DistTriangular DistUniform
Frequency GeometricMean HarmonicMean
Integrate InterpolateX InterpolateY
Max Mean Median
Min Mode PDev
SDev SetArray Sum
Sum2

Count
Ermittelt die Anzahl der Punkte (Arrayelemente).

Differentiate(array)
Ermittelt die numerischen Differentialwerte (Tangententrapezregel) für einen 1D Array.
Die Elementanzahl im Ausgabearray ist um 1 verringert (Intervall Mittelpunkte).

array Der abzuleitende Array (arr[x]=y).
returns Die einzelnen Intervallsteigungen des Eingabearrays als 1D Array.
example http://de.wikipedia.org/wiki/Numerische_Differentiation

DistBinomial(n,p)
Ermittelt die binomische Verteilung als Array (Indizes von 0 bis n).
Etwa die Wahrscheinlichkeit k-mal Kopf in 20 (n) Münzwürfen zu erhalten, mit einer Wahrscheinlichkeit von 0.5 (p) für jeden Wurf, Kopf zu erhalten.

n Die Anzahl der Versuche.
p Die Erfolgswahrscheinlichkeit für jeden Versuch.
returns Ein 1D Array mit Binomialverteilung, Wahrscheinlichkeit von k Erfolgen (arr[k]=y).

DistNormal(distMean,distSTD,size)
Ermittelt die Normal- oder Gauß-Verteilung als Array.
distMean Die mittlere Verteilung.
distSTD Die Standardabweichung der Verteilung.
size Die Anzahl der Punkte.
returns Ein 1D Array mit Normalverteilung (arr[x]=y).

DistTriangular(rangeMin,rangeMax,size)
Ermittelt die (trianguläre) Dreiecksverteilung als Array.
rangeMin Der untere Grenzwert.
rangeMax Der obere Grenzwert.
size Die Anzahl der Punkte.
returns Ein 1D Array mit (triangulärer) Dreiecksverteilung (arr[x]=y).

DistUniform(rangeMin,rangeMax,size)
Ermittelt die einheitliche (stetige) Gleichverteilung als Array.
rangeMin Der untere Grenzwert.
rangeMax Der obere Grenzwert.
size Die Anzahl der Punkte.
returns Ein 1D Array mit stetiger Gleichverteilung (arr[x]=y).

Frequency(array,bins,normalised)
Ermittelt die Häufigkeitsverteilung in den Daten eines Arrays.
array Der Array dessen Häufigkeitsverteilung zu berechnen ist.
bins Die Anzahl der Werte die die Daten umfassen.
normalised Normierte Häufigkeitsverteilung mit einer Gesamtsumme 1? "True" oder "False".
returns Die Häufigkeitsverteilung als Array (arr[bin]=Häufigkeit).

GeometricMean
Ermittelt das geometrische Mittel aller Punkte (wenn alle Werte >0, sonst 0).
example http://de.wikipedia.org/wiki/Mittelwert

HarmonicMean
Ermittelt das harmonische Mittel aller Punkte (wenn alle Werte >0, sonst 0).
example http://de.wikipedia.org/wiki/Mittelwert

Integrate(array)
Ermittelt die numerische Integration (Sehnentrapezregel) über einen 1D Array.
array Der aufzusummierende Array (arr[x]=y).
returns Die aufsummierten Einzelintegrale über den Eingabearray (ab unterem Grenzwert) als 1D Array.
example http://de.wikipedia.org/wiki/Numerische_Integration

InterpolateX(array,y)
Interpoliert einen 1D Array um den Wert von x(y) zu finden.
Die y-Werte sollten monoton mit x ansteigen.

array Der zu interpolierende Array (arr[x]=y).
y Der y-Wert (oder Array mit y-Werten).
returns Der interpolierte x-Wert (oder Array von x-Werten).

InterpolateY(array,x)
Interpoliert einen 1D Array um den Wert von y(x) zu finden.
Die x-Werte sollten monoton ansteigen.

array Der zu interpolierende Array (arr[x]=y).
x Der x-Wert (oder Array mit x-Werten).
returns Der interpolierte y-Wert (oder Array von y-Werten).

Max
Ermittelt den Maximalwert aller Punkte (Arraywerte).

Mean
Ermittelt das arithmetische Mittel aller Punkte (Sum / Count).
example http://de.wikipedia.org/wiki/Mittelwert

Median
Ermittelt den mittenliegenden Zentralwert aller Punkte (Arraywerte).

Min
Ermittelt den Minimalwert aller Punkte (Arraywerte).

Mode
Ermittelt den Modalwert (häufigster Wert der Stichprobenergebnisse) aller Punkte.

PDev
Ermittelt die Abweichung von der Grundgesamtheit (Population) aller Punkte (Arraywerte).
PDev = SDev/SquareRoot(Count) 'PDev < SDev


SDev
Ermittelt die Standardabweichung (des Mittelwerts) aller Punkte.
example 'Varianz
varianz = SDev * SDev


SetArray(array)
Setzt einen numerischen 1D Array als LDStatistics-Objekt (Sortiert zuvor nach aufsteigenden Arraywerten, Indizes egal, s. 'LDSort.ByValue').
Diese Methode muß vor allen anderen aus dieser Klasse aufgerufen werden.

array Der zu setzende und sortierende Array.
returns Ein 1D Array mit sortierten Daten (aufsteigende Arraywerte, fortlaufende Indizes ab 1).

Sum
Ermittelt die Summe aller Punktewerte (Arraywerte).

Sum2
Ermittelt die Summe der Quadrate aller Punktewerte (Arraywerte).

LDStopwatch
Genaue System Stoppuhren (Intern: Stopwatch#).

Add DelayUpTo ElapsedMilliseconds
ElapsedTicks Frequency Reset
Restart Start Stop

Add()
Erstellt eine neue Stoppuhr (Intern: Stopwatch#+1).
returns Der Name der Stoppuhr.

DelayUpTo(delay)
Verzögerung bis zu einem maximalen Intervall seit dem letzten Aufruf.
Sinnvoll in einer Hauptschleife um eine gleichmäßige Abspielgeschwindigkeit beizubehalten (frameRate, fps).

delay Die maximale Verzögerung [ms].

ElapsedMilliseconds(stopwatch)
Ermittelt die abgelaufene Gesamtzeit [ms] für die angegebene Stoppuhr.
stopwatch Der Name der Stoppuhr.
returns Die Anzahl abgelaufener Millisekunden bei Erfolg, sonst -1.

ElapsedTicks(stopwatch)
Ermittelt die abgelaufene Zeit [TimerTicks] für sehr kurze Intervalle.
stopwatch Der Name der Stoppuhr.
returns Die Anzahl abgelaufener Ticks bei Erfolg, sonst -1.

Frequency
Ermittelt die Frequenz des Stoppuhr Zeitgebers [Ticks/sec].
Dies repräsentiert die genaueste Zeitauflösung, welche die Hardware mit ElapsedTicks messen kann.

example hz = LDStopwatch.Frequency
TextWindow.WriteLine(hz +" Hz ("+ hz/"1e6" +" MHz)")
TextWindow.WriteLine("1e9"/hz +" ns/Tick")


Reset(stopwatch)
Stoppt die angegebene Stoppuhr und setzt die abgelaufene Zeit auf 0 zurück.
stopwatch Der Name der Stoppuhr.

Restart(stopwatch)
Stoppt die angegebene Stoppuhr, setzt die abgelaufene Zeit auf 0 zurück und startet diese Stoppuhr erneut.
stopwatch Der Name der Stoppuhr.

Start(stopwatch)
Startet oder setzt eine pausierte Stoppuhr wieder fort.
stopwatch Der Name der Stoppuhr.

Stop(stopwatch)
Stoppt oder pausiert die angegebene Stoppuhr.
stopwatch Der Name der Stoppuhr.

LDText
Methoden zur String-/Textmanipulation.
example other-samples\LDxml.sb

Compare FastStringAppend FastStringClear
FastStringGet FastStringNew FindAll
GetHeight GetWidth Replace
Split Trim

Compare(text1,text2)
Lexikalischer Vergleich zweier Textstrings (rel. Position in deren Sortierreihenfolge) oder SB Arrays. Der Vergleich ist unabhängig von GROß-/kleinschr. und Kultur.
text1 Der erste Vergleichsstring.
text2 Der zweite Vergleichsstring.
returns Eine Ganzzahl, wobei:
<0 text1 ist kleiner als text2
=0 beide Strings sind gleichwertig
>0 text1 ist größer als text2

example LDText.Compare("ABCD", "abd") '-1
LDText.Compare("ABCD", " abd") '1
LDText.Compare("Aß", "ass") '0
LDText.Compare(arr1, arr2)


FastStringAppend(fastString,text)
Fügt einen Textstring an ein FastString Objekt an.
fastString Der Name des FastString Objekts.
text Der anzufügende Textstring.

FastStringClear(fastString)
Bereinigt ein FastString Objekt, Zurücksetzen auf "".
fastString Der Name des FastString Objekts.

FastStringGet(fastString)
Ermittelt den aktuellen Textinhalt in einem FastString Objekt.
fastString Der Name des FastString Objekts.
returns Der aktuelle FastString Text oder "".

FastStringNew()
Erstellt ein neues FastString Objekt zum schnellen Anfügen von Textstrings (Intern: FastString#, StringBuilder).
returns Der Name für das neue FastString Objekt.

FindAll(text,find)
Ermittelt alle Vorkommen eines Untertextes im Basistext.
text Der zu durchsuchende Basistext.
find Der zu suchende Teiltext (buchstabengetreu).
returns Ein Array mit den Startpositionen für jeden gefundenen Subtext (0 bei keinem Treffer).

GetHeight(text)
Ermittelt die Höhe [Pxl] in der ein Text im GraphicsWindow bei aktuell gesetzter Schrift angezeigt wird. Gesamthöhe aller Zeilen bei mehrzeiligem Text (incl. endendem CrLf).
Das GraphicsWindow muß für diese Methode geöffnet sein.

text Der Text dessen Höhe zu ermitteln ist.
returns Die Texthöhe [Pxl].

GetWidth(text)
Ermittelt die Breite [Pxl] in der ein Text im GraphicsWindow bei aktuell gesetzter Schrift angezeigt wird. Breite der längsten Zeile bei mehrzeiligem Text.
Das GraphicsWindow muß für diese Methode geöffnet sein.

text Der Text dessen Breite zu ermitteln ist.
returns Die Textbreite [Pxl].

Replace(text,find,replace)
Sucht und ersetzt alle Vorkommen einer Zeichenfolge in einem Text durch einen Ersatzstring.
text Der zu durchsuchende Text (bleibt unverändert).
find Die zu suchende und ersetzende Zeichenfolge (buchstabengetreu).
replace Der Ersatzstring, wodurch alle Vorkommen der Zeichenfolge ersetzt werden oder "".
returns Die geänderte Kopie des Textes.
example 'Zeilenumbruch entfernen
crlf = Text.GetCharacter(13) + Text.GetCharacter(10)
out = LDText.Replace(in, crlf,"")


Split(text,separator)
Zerteilt einen Text an einem/mehreren angegebenen Trennzeichen zu Teilstrings als Array.
Mehrere aufeinanderfolgende Trennzeichen im Text werden als einzelnes behandelt (zB. " " entspricht " ").

text Der aufzuteilende String.
separator Das Trennzeichen als String (zB. " " oder ";") oder mehrere Trennzeichen als Array ("" für Gesamttext als Arrayindex 1).
GROß/klein Unterscheidung.

returns Die einzelnen aufgetrennten Textteile als Array (ab 1).
example A. Split an ":
'qu = Text.GetCharacter(34)
Split(text, """") 'oder qu
B. Split zu Zeilen:
Split(text, crlf)
C. Array splitten:
arr = "name=wert;..;"
Split(arr, ";")
D. Split an (mehreren) " ":
Split("a b c", " ")


Trim(text)
Ermittelt einen String in dem alle führenden und endenden 'White Space' (Leerzeichen) entfernt sind.
text Die zu beschneidende Zeichenfolge (bleibt unverändert).
returns Eine beschnittene Kopie des Eingabestrings.

LDTextWindow
Funktionen für das TextWindow.
Enthält untergeordnete Tastatur Ereignisse. S. LDGraphicsWindow.ExitButtonMode für Status des 'Schließen' Feldes ('X').

example client-server\LDServer(Auto).sb

Capture Encoding Hide
KeyDown KeyUp LastKey
Print Read ReadNumber
SendKey SetColour SetColours
Show

Capture(fileName,border)
Speichert den Inhalt des TextWindow als Bilddatei (bmp, gif, jp(e)g, png, tiff oder ico) oder in ImageList (Intern: ImageList#+1).
Das Fenster muß sichtbar sein. Kurzes Abwarten zB. Program.Delay kann vor Aufruf der Methode nötig sein.

fileName Der volle Pfad für die zu speichernde Bilddatei (bmp, gif, jp(e)g, png, tiff oder ico) oder
"" zum Speichern des Bildes in ImageList (Intern: ImageList#+1).

border Fensterrahmen auch Bestandteil des Bildes? "True" oder "False" (Standard).
returns Der ImageList Name (wenn fileName ""), sonst "" (bei Ausgabe in Bilddatei).

Encoding
Ermittelt oder setzt eine erweiterte Zeichencodierung (Zeichensatz) für das TextWindow. Gültige Werte:
"" Standard:
Westeuropäisch (Win)
"ASCII" US-ASCII
"Unicode" Unicode UTF-16
"UTF7" Unicode UTF-7
"UTF8" Unicode UTF-8

example 'Westeuropäisch (Windows)
TextWindow.WriteLine(LDTextWindow.Encoding)
http://msdn.microsoft.com/library/system.text.encoding.aspx


Hide()
Blendet das TextWindow aus, wobei ein Textinhalt erhalten bleibt (SB 1.0 Fix).
Ersatz für die SB Standardmethode, die fehlschlagen kann (Beide Methoden nicht vermischen).


KeyDown
Ereignisaufruf (LowLevel) bei Drücken einer Taste.
Ist UNabhängig vom Fensterfokus, dh. global und nicht nur innerhalb des TW/GW.
Funktioniert für TW und/oder GW ohne daß das Fenster aktiviert ist oder der Mauszeiger im Fenster steht.
Für weitere Mausereignisse s. LDEvents.


KeyUp
Ereignisaufruf (LowLevel) bei Loslassen einer Taste.
Ist UNabhängig vom Fensterfokus, dh. global und nicht nur innerhalb des TW/GW.
Funktioniert für TW und/oder GW ohne daß das Fenster aktiviert ist oder der Mauszeiger im Fenster steht.
Für weitere Mausereignisse s. LDEvents.


LastKey
Ermittelt die Bezeichnung für die zuletzt gedrückte/losgelassene Taste (Standard: None, global).
s. GraphicsWindow.LastKey


Print(border)
Druckt den Inhalt des TextWindow aus.
Das TW-Fenster muß sichtbar sein. Kurzes Abwarten zB. Program.Delay kann kann vor Aufruf dieser Methode nötig sein.

border Fensterrahmen auch Bestandteil des Bildes? "True" oder "False".

Read(delay)
Liest eine Eingabe vom TextWindow nach wählbarer max. Verzögerung.
Sendet nach Ablauf der Verzögerung ein Return (ENTER) an das TextWindow.
Nach Drücken der Eingabetaste vor Ablauf der Verzögerung, wird keine weitere Aktion durchgeführt.

delay Die max. Wartezeit [ms] vor Abbruch des Read Befehls.
returns Der vom TextWindow eingelesene Text.

ReadNumber(delay)
Liest eine Zahleingabe vom TextWindow nach wählbarer max. Verzögerung.
Sendet nach Ablauf der Verzögerung ein Return (ENTER) an das TextWindow.
Nach Drücken der Eingabetaste vor Ablauf der Verzögerung, wird keine weitere Aktion durchgeführt.

delay Die max. Wartezeit [ms] vor Abbruch des ReadNumber Befehls.
returns Die vom TextWindow eingelesene Zahl.

SendKey(window,key)
Sendet einen einzelnen Tastendruck an ein GW oder TW Fenster. Ist gleichbedeutend mit einem Tastendruck im Fenster.
Im GW kann damit ein Tastendruck/Zeichen an das fokusierte Steuerelement gesendet werden (zB. Button, TextBox).

window Der Fenstertitel zB. TextWindow.Title oder GraphicsWindow.Title.
key Der einzelne zu sendende Tastencode zB. "Return" (s. Rückgabestring von GraphicsWindow.LastKey).
GROß-/kleinschr. egal. Buchstabentasten ("A" bis "Z") werden als Kleinbuchstaben gesendet.

example http://msdn.microsoft.com/library/system.windows.input.key.aspx (Key Enumeration)

SetColour(index,colour)
Ersetzt eine Standardfarbe für das TextWindow.
16 verfügbare Farben mit Standardindex 0 bis 15:
0=Black 8=DarkGray
1=DarkBlue 9=Blue
2=DarkGreen 10=Green
3=DarkCyan 11=Cyan
4=DarkRed 12=Red
5=DarkMagenta 13=Magenta
6=DarkYellow 14=Yellow
7=Gray 15=White.

Weiterhin können auch TextWindow.BackgroundColor und -.ForegroundColor für neue Farben verwendet werden (mit Originalfarbname).
Alternativ können diese Farben mit LDTextWindow.SetColours als Indizes gesetzt werden.
Die Farben müssen vor ihrer Anwendung mit einer der Methoden gesetzt werden.

index Der Standard Farbindex der zu ersetzenden Farbe (0 bis 15).
colour Eine beliebige Farbe zum Ersetzen der Standardfarbe als #(AA)RRGGBB oder (LDColours.)Farbname.

SetColours(fgIndex,bgIndex)
Setzt den aktuellen Index für Vorder- und Hintergrundfarbe im TextWindow.
fgIndex Der Index für die Vordergrundfarbe (0 bis 15).
bgIndex Der Index für die Hintergrundfarbe (0 bis 15).
example LDTextWindow.SetColour(0, "Pink") 'Black zu Pink
LDTextWindow.SetColours(0, 9) 'Pink auf Blue


Show()
Zeigt das TextWindow und setzt es als aktives Fenster mit Fokus, wobei ein Textinhalt erhalten bleibt (SB 1.0 Fix).
Ersatz für die SB Standardmethode, die fehlschlagen kann (Beide Methoden nicht vermischen).


LDTimer
Zusätzliche Timer (Intern: Timer#).

Add AddTick Interval
LastTimer Pause Resume
Tick

Add()
Erstellt einen neuen Timer (Intern: Timer#+1). Alle hiermit erstellten Timer rufen die Ereignis Sub auf, die mittels 'Tick' definiert wurde.
returns Der Name des neuen Timer.

AddTick(tick)
Erstellt einen neuen Timer (Intern: Timer#+1). Dieser Timer löst nur seine eigene Ereignis Sub aus.
tick Die aufzurufende Ereignis Sub für diesen Timer.
returns Der Name des neuen Timer.

Interval(timer,interval)
Setzt das Intervall und startet oder setzt einen pausierten Timer fort.
timer Der Name des Timer.
interval Das Intervall [ms] für den Takt, in dessen Abständen der Timer das Tick-Ereignis auslöst (10 bis 100000000 = 10^8).

LastTimer
Ermittelt den letzten Timer (erstellt mit 'Add'), der ein Tick-Ereigis ausgelöst hat.

Pause(timer)
Pausiert einen Timer. Tick-Ereignisse werden nicht mehr ausgelöst.
timer Der Name des Timer.

Resume(timer)
Setzt einen pausierten Timer wieder fort. Tick-Ereignisse werden wieder ausgelöst.
timer Der Name des Timer.

Tick
Ereignisaufruf wenn ein Timer (erstellt mit 'Add') abgelaufen ist.

LDTranslate
Methoden für Sprachen und Übersetzungen (Online mit 'Google Translator', http://translate.google.com).

Languages Translate

Languages()
Ermittelt alle Sprachcodes der verfügbaren Sprachen als Array (gesamt 90).
Die Arrayindizes zeigen den erforderlichen Sprachcode für die 'Translate' Methode.

returns Ein 1D Array mit den verfügbaren Sprachkürzel und -namen (als "Code=Sprache;..").

Translate(input,languageFrom,languageTo)
Übersetzt einen angegebenen Text von einer Sprache in eine andere (Online).
input Der zu übersetzende Text.
languageFrom Das Kürzel für die Ausgangssprache (zB. "en" für Englisch).
languageTo Das Kürzel für die Zielsprache (zB. "de" für Deutsch).
returns Der übersetzte Text bei Erfolg, sonst Fehlermeldung oder "".

LDUnits
Allgemeines, editierbares System zur Einheitenumrechnung.
Alle Einheiten und Dimensionen unterscheiden zwischen GROß-/kleinschr.
Eine Basiseinheit besteht aus unabhängiger Einzeldimension und Name.
Eine abgeleitete Einheit besteht aus Beschreibung, Name und Einheitsdefinition (aus Basis- oder abgeleiteten Einheiten), sowie optionalem Additionsterm (Standard: 0).
Eine Einheit wird geparst durch trennende . / + - und *, dann rekursive Auflösung abgeleiteter Einheitenumrechnungen, () Klammerterme zuerst.
Werte (spez. mit Dezimalpunkt '.' oder Minus '-') sollten in () eingeschlossen werden.
Einer Einheit kann eine Vorsilbe/Präfix oder Zahlenwert vorangestellt sein (zB. m für milli 0.001, k für kilo 1000 usw.).
Jeder Einheit kann eine Potenz nachgestellt sein.
Eine typische Einheit wäre "mile/hr", "m/s2", "kg.m/s2", "MJ/day" usw. jede Kombination von Basis-/abgeleiteten Einheiten. Jedes Einheitenpaar mit gleicher Dimension kann konvertiert werden.
Ein Additionswert wird nur für nicht-zusammengesetzte Einheitsumrechnung verwendet (zB. C zu F).
Zur Konflikvermeidung durch unklare Einheitsvorsilben, vollen Vorsilbename verwenden (zB. min kann 60 sec oder 0.001 inch bedeuten, letzeres sollte milliin sein).
Währungsumrechnungen werden täglich aktualisiert.

example other-samples\LDUnits.sb
http://de.wikipedia.org/wiki/Internationales_Einheitensystem


AddBaseUnit AddConstant AddDerivedUnit
Convert Export GetBaseUnits
GetConstants GetDerivedUnits GetDimensions
GetErrors GetPrefixes Import

AddBaseUnit(dimension,name)
Fügt eine Basiseinheit zum Einheitensystem hinzu.
dimension Die Dimension der Basiseinheit (zB. TEMPERATUR).
name Der Einheitenname/Formelzeichen (Achtung vor Konflikt mit existierenden Einheitennamen).

AddConstant(description,name,value)
Fügt eine dimensionslose Konstante zum Einheitensystem hinzu.
description Optionaler Langname oder Beschreibung der Konstanten.
name Der Konstantenname (Achtung vor Konflikt mit existierenden Konstantennamen).
value Der Wert der Konstante.
example http://de.wikipedia.org/wiki/Mathematische_Konstante
http://de.wikipedia.org/wiki/Physikalische_Konstante
http://en.wikipedia.org/wiki/Astronomical_constant


AddDerivedUnit(description,name,units,add)
Fügt eine abgeleitete Einheit zum Einheitensystem hinzu.
description Optionaler Langname oder Beschreibung der abgeleiteten Einheit.
name Der Einheitenname/Formelzeichen (Achtung vor Konflikt mit existierenden Einheitennamen).
units Die Definition der abgeleiteten Einheit.
add Ein optionaler Additionsterm (Standard: 0).

Convert(value,fromUnit,toUnit)
Konvertiert einen Wert von einer Einheit zu einer anderen.
value Der zu konvertierende Wert.
fromUnit Die zu konvertierende Ausgangseinheit (Formelzeichen).
toUnit Die Zieleinheit nach Konvertierung (Formelzeichen).
returns Der konvertierte Wert bei Erfolg, sonst "FAILED" (zB. nicht-existente Einheit oder unvereinbare Dimensionen).

Export()
Speichert das aktuelle Einheitensystem in eine UTF8 Textdatei ('units.txt' in Program.Directory).

GetBaseUnits()
Ermittelt alle aktuellen Basiseinheiten als Array "DIM=Basiseinheit;..;".
returns Ein Array verfügbarer Basiseinheiten, indexiert durch die Dimension der Einheit.
Arraywert ist der Name der Basiseinheit (Formelzeichen).


GetConstants()
Ermittelt alle aktuellen Konstanten als Array "pi=3.14..;e=2.718..;".
returns Ein Array verfügbarer Konstanten, mit dem Konstantenname (und Beschreibung) als Index und deren Wert als Arraywert.

GetDerivedUnits()
Ermittelt alle aktuellen abgeleiteten Einheiten als Array "Einheit=(Konst)Umrechnung (Beschreibung);..;".
returns Ein Array verfügbarer abgeleiteter Einheiten mit dem Name der Einheit als Index.
Arraywert ist die Basis-/abgeleitete Einheit (Formelzeichen), die zur Umrechnung verwendet wird (mit Beschreibung).


GetDimensions(unit)
Ermittelt für eine Einheit alle enthaltenen Dimensionen und deren Potenzen als Array.
unit Die Einheit deren Dimensionen zu ermitteln sind (GROß-/kleinschr. beachten).
returns Ein Array mit der Dimension als Index und deren Potenz als Arraywert oder "".
example 'Dimensionen für 1 N (Newton = kg*m/sec2):
GetDimensions("N") ' "TIME=-2;LENGTH=1;MASS=1;"


GetErrors()
Ermittelt Fehlermeldungen bei 'Convert' Mißerfolg oder Konflikt mit hinzugefügten Einheiten oder Konstanten als Array.
returns Ein Array mit Fehlermeldungen oder "".

GetPrefixes()
Ermittelt alle aktuellen Präfixe (Vorsilben) als Array "..;centi=0.01;milli=0.001;..;".
returns Ein Array verfügbarer Präfixe mit der Vorsilbe als Index und deren Potenzwert als Arraywert.
example http://de.wikipedia.org/wiki/Vorsätze_für_Maßeinheiten

Import()
Lädt ein gespeichertes Einheitensystem von einer Datei ('units.txt' in Program.Directory).

LDUtilities
Allgemeine Methoden und Funktionen.

AvailableCultures CleanTemp ColourList
Command CSVDeliminator CurrentCulture
DPIX DPIY FixFlickr
FontList ForceInvoke GetCultureInvariantNumber
GetCurrentCultureNumber GetNextMapIndex IsNumber
KeyDown NetworkURL Priority
SendClick ShowErrors ShowFileErrors
ShowNoShapeErrors ShowPrintPreview UseDispatcher
UseExpression Version

AvailableCultures()
Ermittelt die Namen aller verfügbaren Sprachkulturen als Array (s. CurrentCulture).
returns Ein Array, indexiert durch 354 Kulturname-Kürzel. Arraywert ist die engl. Beschreibung (Land), zB. "..;de-DE=German (Germany);..".

CleanTemp()
Löscht alle SB bezogenen Dateien aus dem %TEMP% Ordner des Benutzers.
Dies betrifft alle dortigen Dateien mit Erweiterungen tmp, pdb und dll!
Möglicherweise verwenden weitere Anwendungen diese ebenfalls. Also bestenfalls nur anwenden, während diese Anwendungen geschlossen sind.

returns Die Anzahl gelöschter Dateien.

ColourList()
Ermittelt alle 141 verfügbaren SB Farbnamen als Array (alphabetisch, ab 1=Transparent bzw. #00FFFFFF).
returns Ein Array mit Namen der 141 verfügbaren CSS3 Farben (wobei Aqua = Cyan, Fuchsia = Magenta).

Command
Setzt einen internen Befehlsstring zum Testen von Standardwerten (Ausgeblendet in IntelliSense).
example Command = "LDGraphicsWindow PauseUpdates [new]"
Command = "LD3DView SwapDirection[SwapAngle] vx[ang] vy vz"


CSVDeliminator
Ermittelt oder setzt das EINZELNE Trennzeichen zum Lesen und Schreiben von CSV Dateien (Standard: "," Komma, s. LDFile).

CurrentCulture
Ermittelt oder setzt (für aktuellen Thread) die aktuelle Sprachkultur (zB. "de-DE", "en-US", "en-GB"), s. AvailableCulture.
(Standard: Systemeinstellung, bzw. 'de-DE').
http://msdn.microsoft.com/library/ee825488.aspx (Kulturnamen, Codes, ISO Werte)

example 'en-US Datum-/Zeitformat
LDUtilities.CurrentCulture = "en-US"
TextWindow.WriteLine(Clock.WeekDay +", "+ Clock.Date +" "+ Clock.Time)
mod = LDFile.ModifiedTime(pfad)
TextWindow.WriteLine(mod)


DPIX
Ermittelt die x-Auflösung des Anzeigegerätes [X DPI] (Punkte/Zoll bzw. Pkte/2.54cm, zB. 96, 120).

DPIY
Ermittelt die y-Auflösung des Anzeigegerätes [Y DPI] (Punkte/Zoll bzw. Pkte/2.54cm, zB. 96, 120).

FixFlickr()
Korrigiert Download-Fehler im Flickr Objekt. Einmaliger Aufruf im Programm vor Verwendung des Flickr Objekts.
returns Die Urls für das akt. Flickr-Bild als 2-element. Array "_urlTemplate=url1;_picUrlTemplate=url2;".
example 'LDUtilities.FixFlickr() 'optional
url = Flickr.GetPictureOfMoment()

pfad = File.GetTemporaryFilePath()
LDNetwork.DownloadFile(pfad, url) 'WICHTIG

'img = ImageList.LoadImage(pfad)
GraphicsWindow.DrawImage(pfad, 0,0) '(img, 0,0)


FontList()
Ermittelt alle verfügbaren (installierten) Schriftartnamen als Array.
returns Ein Array mit den Namen der verfügbaren Schriftarten in alphabetischer Reihenfolge.

ForceInvoke
Ermittelt oder setzt eine experimentelle Option zum Beschleunigen einiger Interaktionen mit SmallBasicLibrary Objekten:
0 keine Erzwingung (Standard)
1 erzwingt Invoke (seriell)
2 erzwingt BeginInvoke (asynchron)


GetCultureInvariantNumber(input)
Ermittelt eine Zahl, ausgedrückt in kulturUNabhängiger Form.
Eine Zahl muß kulturUNabhängig sein, um für Berechnungen als Zahl behandelt zu werden.
Eine aktuell kulturabhängige Zahl ist die Form, in der sie ein- oder ausgegeben wird.
zB. "3.14" ist kulturUNabhängig, während "3,14" der deutschen Kultur entspricht.

input Eine Zahl, ausgedrückt entsprechend der aktuellen Kultur.
returns Die Zahl, ausgedrückt in kulturUNabhängiger Form bei Erfolg, sonst die Eingabe.

GetCurrentCultureNumber(input)
Ermittelt eine Zahl, ausgedrückt entsprechend der aktuellen Kultur.
Eine Zahl muß kulturUNabhängig sein, um für Berechnungen als Zahl behandelt zu werden.
Eine aktuell kulturabhängige Zahl ist die Form, in der sie ein- oder ausgegeben wird.
zB. "3.14" ist kulturUNabhängig, während "3,14" der deutschen Kultur entspricht.

input Eine kulturUNabhängige Zahl.
returns Die Zahl, ausgedrückt gemäß der aktuellen Kultur bei Erfolg, sonst die Eingabe.

GetNextMapIndex(listName)
Ermittelt die Index# für das nächste im GW erstellte Objekt vom Typ listName (-> listName#).
#-1 gibt die Anzahl bereits erstellter Objekte dieses Typs (müssen nicht mehr alle existieren).
zB. Buttons werden nummeriert "Button1", "Button2" usw. Gibt 3, wenn der nächste "Button3" ist.

listName Der SB-interne Listenname. Gültige Objekttypen (buchstabengetreu):
"Button" (Controls)
"Control" (LDControls,LDChart)
"Cursor" (LDCursors)
"Ellipse" (Shapes)
"Figure" (LDFigures)
"Graph" (LDGraph)
"Image" (Shapes, LDShapes.AddAnim.., LDWebCam)
"ImageList"
"Line" (Shapes)
"Polygon" (LDShapes)
"Rectangle" (Shapes)
"Text" (Shapes)
"TextBox" (Controls)
"Triangle" (Shapes)
"View3D" (LD3DView)
"_turtleLine" (Turtle)
("ListView" (LDDataBase), "Brush", "Geometry", "Light", "Matrix" NICHT)

returns Die nächst folgende Index# bei Hinzufügen eines Objekts desselben Typs. 0 bei Fehler ("_turtle" immer 1).
example 'Anzahl akt. erstellter Buttons:
nBtn = LDUtilities.GetNextMapIndex("Button") - 1


IsNumber(input)
Testet ob die Eingabe von SB als eine Zahl behandelt wird. Berücksichtigt auch führendes '-' (Minus). Dezimalpunkt '.' anstatt ',' (Komma).
Dies ist eine kulturUNabhängige Zahl, zB. "3.14", jedoch nicht "3,14" oder "24x".

input Die zu überprüfende Eingabe.
returns "True" oder "False".
example LDUtilities.IsNumber("") 'False
LDUtilities.IsNumber(-3.14) 'True
LDUtilities.IsNumber(1/LDMath.E) 'True


KeyDown(key)
Ermittelt ob eine Taste gedrückt wird.
Nützlich für einfache Tastatur-Steuerung zB. in einem Spiel.

key Taste deren Status abgefragt wird zB. "Space".
returns "True" sobald die Taste gedrückt wird, sonst "False".

NetworkURL
Ermittelt oder setzt die Webadresse zur Verwendung mit LDNetwork, wenn die Methoden .GameData und .HighScore über einen anderen Server (als LitDev Homepage) verarbeitet werden sollen.

Priority
Ermittelt oder setzt eine experimentelle Option zum Beschleunigen einiger Dispatcher (Verteiler) Interaktionen mit SmallBasicLibrary Objekten:
1 bis 10 (Standard: 7, gleiche Priorität wie Rendering)

example http://msdn.microsoft.com/library/system.windows.threading.dispatcherpriority.aspx

SendClick(x,y,button)
Sendet einen Mausklick an der angegebenen Bildschirmposition. Dies sind Mouse.MouseX/Y (nicht GraphicsWindow.MouseX/Y) Koordinaten.
Mauszeiger wird nach Klick an Ausgangsposition zurückgesetzt.

x Die x-Bildschirmposition zum Klick (-1 aktuelle x-Mausposition).
y