SmallBasic 1.2 API DE Extension API

Array Clock Controls Desktop Dictionary
File Flickr GraphicsWindow ImageList Math
Mouse Network Program Shapes Sound
Stack Text TextWindow Timer Turtle

Array
Ein Array ermöglicht das Speichern mehrerer Werte unter einem angegebenen Name. Auf die Werte kann dann mit zusätzlichem Index zugegriffen werden.
Werte können (SMP)Strings, Zahlen, Arrays, Images (von ImageList.LoadImage) oder Controls/Shapes sein.
Indizes können -/0/+ (rationale) Zahlen, "Strings" oder Variablen sein, auch gemischt.
Indizes unterscheiden nicht zwischen Groß-/Kleinschreibung, Werte schon.
Direktdefinition als String, zB.
arr = "id1=wert1;id2=wert2;..;" nur mit Konstanten oder Strings (keine Variablennamen, \ für Escape zB. arr="1=\;;2=\=;3=\\;").
Merkliche Geschwindigkeitsverluste bei großen Arrays (ab 100 Elemente).
Arrays können mit File.WriteContents/-Line gespeichert und mit File.ReadContents/-Line eingelesen werden.
Für Arraysortierung s. 'LDSort'.

example 'Stringdefinition "1=3;2=4;3=5;"
arr = "1=3;2="+ Math.Abs(-4) +";3="+ Text.GetLength("hallo") ' +";"

'Array arr kopieren
arr2 = arr

'Index i abschneiden/löschen
arr[i] = ""
TextWindow.WriteLine(arr[i]) ' "", kein Fehler

'Dimension dim von arr
While Array.IsArray(arr)
dim = dim+1
ids = Array.GetAllIndices(arr)
arr = arr[ids[1]]
EndWhile
TextWindow.WriteLine(dim)


ContainsIndex ContainsValue GetAllIndices
GetItemCount GetValue IsArray
RemoveValue SetValue

ContainsIndex(array,index)
Ermittelt ob ein Array den angegebenen Index enthält. Dies ist nützlich, um herausfinden, ob dieser Index bereits mit einem Wert belegt wurde.
SB Arrays können keine leeren Indizes (Index mit Leerwert "") enthalten.
(Nicht für Arrays die mittels Array.SetValue erstellt wurden.)

array Der Name des Arrays.
index Der zu suchende Index (Groß-/Kleinschreibung egal, exakte Länge).
returns "True" oder "False", je nachdem ob der Index im angegebenen Array gefunden wurde.

ContainsValue(array,value)
Ermittelt ob ein Array den angegebenen Wert buchstabengetreu enthält. Dies ist nützlich, um herauszufinden, ob der Wert im Array bereits unter einem Index gespeichert wurde.
(Nicht für Arrays die mittels Array.SetValue erstellt wurden.)

array Der Name des Arrays.
value Der zu suchende Wert (buchstabengetreu und exakte Länge) oder direkte Unterarray für 2D Array.
returns "True" oder "False", je nachdem ob der Wert buchstabengetreu im angegebenen Array gefunden wurde.

GetAllIndices(array)
Ermittelt alle Indizes für den angegebenen Array als neuen Array. (Nicht für Arrays die mittels Array.SetValue erstellt wurden.)
array Der Name des Arrays.
returns Ein Array (ab 1) mit allen Indizes des angegebenen Arrays (selbe Elementreihenfolge).

GetItemCount(array)
Ermittelt die Anzahl der im Array enthaltenen Indizes/Elemente bzw. Unterarrays für 2D Array. (Nicht für Arrays die mittels Array.SetValue erstellt wurden.)
array Der Name des Arrays (bzw. Variable).
returns Die Anzahl der Werte im angegebenen Array, 0 bei ungültigem Array (Zahl, "Text", "").
example arr = ""
Array.GetItemCount(arr) ' 0
Array.IsArray(arr) ' "False"

arr = "1=1;2=2;"
Array.GetItemCount(arr) ' >0 (2)
Array.IsArray(arr) ' "True"


GetValue(arrayName,index)
Ermittelt den Arraywert am angegebenen Index. Nur für Arrays/Werten die mittels Array.SetValue erstellt wurden (Ausgeblendet in IntelliSense).
Diese Methode ist bedeutend schneller als die herkömmliche Methode val = arr[i].

arrayName Der Name des Arrays (in "" oder zuvor definieren). Exakte Schreibweise einhalten.
index Der Index des abzurufenden Wertes (zB. ab 0).
returns Der Arraywert im angegebenen Index.

IsArray(array)
Ermittelt ob eine Variable ein Array (mit mind. 1 Element) ist. (Nicht für Arrays die mittels Array.SetValue erstellt wurden.)
array Der Name des Arrays (bzw. Variable).
returns "True", wenn die angegebene Variable ein Array ist, sonst "False" (zB. "", "1=;", Zahl, String).
example arr = ""
Array.IsArray(arr) ' "False"
Array.GetItemCount(arr) ' 0

arr = "1=1;2=2;"
Array.IsArray(arr) ' "True"
Array.GetItemCount(arr) ' >0 (2)


RemoveValue(arrayName,index)
Entfernt den Arraywert am angegebenen Index. Nur für Arrays/Werten die mittels Array.SetValue erstellt wurden (Ausgeblendet in IntelliSense).
arrayName Der Name des Arrays (in "" oder zuvor definieren). Exakte Schreibweise einhalten.
index Der Index des zu entfernenden Arraywertes (zB. ab 0).

SetValue(arrayName,index,value)
Setzt den Arraywert im angegebenen Index. Hiermit gesetzte Werte müssen mittels Array.GetValue ermittelt bzw. mit Array.RemoveValue entfernt werden (Ausgeblendet in IntelliSense).
Diese Methode ist bedeutend schneller als die herkömmliche Methode arr[i] = val.

arrayName Der Name des Arrays (in "" oder zuvor definieren). Exakte Schreibweise einhalten.
index Der Index des zu setzenden Wertes (zB. ab 0).
value Der zu setzende Arraywert (auch Leerwerte "" möglich).

Clock
Bietet Zugriff auf die Systemuhr und Ermittlung von Datums- und Zeitangaben.

Date Day ElapsedMilliseconds
Hour Millisecond Minute
Month Second Time
WeekDay Year

Date
Ermittelt das kurze aktuelle Systemdatum als TT.MM.JJ (zB. 27.08.14). Führende '0' vor Werten von 0-9.

Day
Ermittelt die Nummer des aktuellen Tages im Monat (zB. 27, einstellig für 1-9).

ElapsedMilliseconds
Ermittelt die Anzahl vergangener Millisekunden seit 1900 (mit 2 Dezimalen).

Hour
Ermittelt die aktuelle Stunde des Tages (24h Format, zB. 15, einstellig für 0-9).

Millisecond
Ermittelt die aktuelle Millisekunde (3-stellig).

Minute
Ermittelt die aktuelle Minute der Stunde (einstellig für 0-9).

Month
Ermittelt die aktuelle Monatsnummer (zB. 8, einstellig für 1-9).

Second
Ermittelt die aktuelle Sekunde der Minute (einstellig für 0-9).

Time
Ermittelt die lange aktuelle Systemzeit als HH:mm:ss (24h Format, zB. 01:04:07). Führende '0' vor Werten von 0-9.

WeekDay
Ermittelt den Name des aktuellen Wochentags (deutsch, zB. Montag).

Year
Ermittelt die aktuelle Jahreszahl (zB. 2014).

Controls
Ermöglicht das Hinzufügen, Bewegen und Interaktion mit Steuerelementen. Funktioniert zT. auch für Shapes (Interne Namensverarbeitung).

AddButton AddMultiLineTextBox AddTextBox
ButtonClicked GetButtonCaption GetTextBoxText
HideControl LastClickedButton LastTypedTextBox
Move Remove SetButtonCaption
SetSize SetTextBoxText ShowControl
TextTyped

AddButton(caption,left,top)
Fügt eine Schaltfläche an der angegebenen Position im GraphicsWindow hinzu (Mindestbreite: 12, Standardhöhe: 26/25/24/23 (bei FontSize 12/11/10/9); Intern: Button#).
Texteigenschaften bestimmbar durch vorangehendes BrushColor, FontName,-Size,-Bold,-Italic.
Erlaubt Tasten Space und Return/Enter.

caption Der auf der Schaltfläche anzuzeigende Text. Für senkrechten Text, zwischen den Buchstaben lf bzw. Text.GetCharacter(10) einfügen.
left Die x-Koordinate des Button.
top Die y-Koordinate des Button.
returns Der Name des Button.

AddMultiLineTextBox(left,top)
Fügt ein mehrzeiliges Texteingabefeld an der angegebenen Position im GraphicsWindow hinzu (Standardbreite: 200, -höhe: 80; Intern: TextBox#).
Texteigenschaften bestimmbar durch vorangehendes BrushColor, FontName,-Size,-Bold,-Italic.
Bei Bedarf rechte/untere Scrollleiste (Breite: 30).

left Die x-Koordinate der MultiLineTextBox (Standard: 0).
top Die y-Koordinate der MultiLineTextBox (Standard: 0).
returns Der Name der MultiLineTextBox.

AddTextBox(left,top)
Fügt ein Texteingabefeld an der angegebenen Position im GraphicsWindow hinzu (Standardbreite: 160, -höhe: 22/21/20/19 (bei FontSize 12/11/10/9); Intern: TextBox#).
Texteigenschaften bestimmbar durch vorangehendes BrushColor, FontName,-Size,-Bold,-Italic.

left Die x-Koordinate der TextBox (Standard: 0).
top Die y-Koordinate der TextBox (Standard: 0).
returns Der Name der TextBox.

ButtonClicked
Ereignisaufruf wenn ein Button geklickt oder "Space"/"Return"-Taste (Buttonwahl mit Tab,Up,Down,Left,Right) gedrückt wurde (erst beim Loslassen, MouseDown/-Up Ereignis wird dabei nicht ausgelöst).

GetButtonCaption(buttonName)
Ermittelt den Text auf einem angegebenen Button.
buttonName Der Name des Button.
returns Der angezeigte Buttontext.

GetTextBoxText(textBoxName)
Ermittelt den Text in einer angegebenen (MultiLine)TextBox (Standard ANSI, sonst UTF8).
textBoxName Der Name der (MultiLine)TextBox.
returns Der Text in der (MultiLine)TextBox oder "".

HideControl(controlName)
Blendet ein bereits hinzugefügtes Steuerelement aus (s. Shapes.HideShape, Elementposition bleibt unverändert, andere Methoden funktionieren weiterhin).
controlName Der Name des Steuerelements.

LastClickedButton
Ermittelt den Name des Button, der zuletzt gedrückt wurde.

LastTypedTextBox
Ermittelt den Name der (MultiLine)TextBox, in die zuletzt Text geschrieben/eingefügt wurde.

Move(control,x,y)
Verschiebt ein angegebenes Steuerelement (bzw. Shape) an eine neue Position.
control Der Name des Steuerelements/Shapes.
x Die x-Koordinate der neuen Position.
y Die y-Koordinate der neuen Position.

Remove(controlName)
Entfernt ein Steuerelement aus dem GraphicsWindow (Interne # bleibt unverändert).
controlName Der Name des zu entfernenden Steuerelements.

SetButtonCaption(buttonName,caption)
Setzt den Text auf einem angegebenen Button.
buttonName Der Name des Button.
caption Der neue Buttontext.

SetSize(control,width,height)
Setzt die Größe eines Steuerelements bzw. Shapes (zB. Bildshape von Shapes.AddImage). S.a. LDShapes.SetSize bzw. ReSize, Schriftgröße in Textshapes nicht, Ankerpunkt bleibt unverändert.
control Der Name des Steuerelements/Shapes, dessen Größe zu ändern ist.
width Die neue Breite des Steuerelements/Shapes (>=0).
height Die neue Höhe des Steuerelements/Shapes (>=0).

SetTextBoxText(textBoxName,text)
Setzt den Text in einer angegebenen (MultiLine)TextBox (Standard UTF8, ev. Anzeigeproblem von ANSI). Bei Inhaltsänderung wird auch 'TextTyped' Event ausgelöst.
textBoxName Der Name der (MultiLine)TextBox.
text Der neue Text für die (MultiLine)TextBox oder "".

ShowControl(controlName)
Zeigt ein zuvor ausgeblendetes Steuerelement an der zuletzt definierten Position wieder an (s. Shapes.ShowShape).
controlName Der Name des Steuerelements.

TextTyped
Ereignisaufruf wenn Text in eine (MultiLine)TextBox eingegeben wurde.
Nicht bei Mausklick, Cursortasten, Pos1/Ende usw. Jedoch bei 'Back'(Space), Ausschneiden/Einfügen.


Desktop
Funktionen zur Interaktion mit der Desktop Anzeige.
PxlPos x/y: 0 bis Desktop.Width-1 bzw. Desktop.Height-1.


Height SetWallPaper Width

Height
Ermittelt die Bildschirmhöhe des primären Desktops.
(zB. Standard: 768)


SetWallPaper(fileOrUrl)
Setzt das angegebene Bild als Hintergrundbild für den Desktop. Dies kann eine lokale, Netzwerkdatei oder Web-URL sein.
fileOrUrl Der Dateiname oder die URL des Bildes.

Width
Ermittelt die Bildschirmbreite des primären Desktops.
(zB. Standard: 1366)


Dictionary
Ermöglicht den Zugriff auf einen Online Lexikon-Dienst zur Wortdefinition und Übersetzung.
(Bei Fehler s. LDDictionary)

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

GetDefinition GetDefinitionEnglishToEnglish GetDefinitionEnglishToFrench
GetDefinitionEnglishToGerman GetDefinitionEnglishToItalian GetDefinitionEnglishToJapanese
GetDefinitionEnglishToKorean GetDefinitionEnglishToSimplifiedChinese GetDefinitionEnglishToSpanish
GetDefinitionEnglishToTraditionalChinese GetDefinitionFrenchToEnglish GetDefinitionGermanToEnglish
GetDefinitionItalianToEnglish GetDefinitionJapaneseToEnglish GetDefinitionKoreanToEnglish
GetDefinitionSimplifiedChineseToEnglish GetDefinitionSpanishToEnglish GetDefinitionTraditionalChineseToEnglish

GetDefinition(word)
Ermittelt die Definition(en) zu einem Wort in Englisch (wie GetDefinitionEnglishToEnglish).
Bei Fehler s. LDDictionary.GetDefinition)

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

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

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

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

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

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

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

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

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

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

GetDefinitionFrenchToEnglish(word)
Übersetzt ein Wort von Französisch zu Englisch.
word Das zu definierende Wort in Französisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionGermanToEnglish(word)
Übersetzt ein Wort von Deutsch zu Englisch.
word Das zu definierende Wort in Deutsch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionItalianToEnglish(word)
Übersetzt ein Wort von Italienisch zu Englisch.
word Das zu definierende Wort in Italienisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionJapaneseToEnglish(word)
Übersetzt ein Wort von Japanisch zu Englisch.
word Das zu definierende Wort in Japanisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionKoreanToEnglish(word)
Übersetzt ein Wort von Koreanisch zu Englisch.
word Das zu definierende Wort in Koreanisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionSimplifiedChineseToEnglish(word)
Übersetzt ein Wort von vereinfachtem Chinesisch zu Englisch.
word Das zu definierende Wort in einfachem Chinesisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionSpanishToEnglish(word)
Übersetzt ein Wort von Spanisch zu Englisch.
word Das zu definierende Wort in Spanisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

GetDefinitionTraditionalChineseToEnglish(word)
Übersetzt ein Wort von traditionellem Chinesisch zu Englisch.
word Das zu definierende Wort in traditionellem Chinesisch.
returns Die Übersetzung für den angegebenen Begriff in Englisch bei Erfolg, sonst "".

File
Methoden zum Lese- und Schreibzugriff für eine Datei auf einem Datenträger. Dieses Objekt ermöglicht, Einstellungen über mehrere Programmsitzungen hinweg zu speichern.
SB unterstützt auch "." (CurrDir), ".." (ParentDir), relative Pfade und %PFADE%.


AppendContents CopyFile CreateDirectory
DeleteDirectory DeleteFile GetDirectories
GetFiles GetSettingsFilePath GetTemporaryFilePath
InsertLine LastError ReadContents
ReadLine WriteContents WriteLine

AppendContents(filePath,contents)
Öffnet die angegebene Datei und hängt Textinhalt am Ende der Datei an (Standard ANSI, sonst UTF8).
filePath Der volle Dateipfad (zB. "C:\Temp\settings.data"). Eine nicht existierende Datei wird erstellt.
contents Der an das Dateiende anzuhängende Text, Array oder "" für eine Leerzeile.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

CopyFile(sourceFilePath,destinationFilePath)
Kopiert die angegebene Quelldatei in den Zieldateipfad. Falls der Zielpfad nicht existiert, wird versucht diesen automatisch zu erstellen.
Eine bereits existierende Zieldatei wird ohne Nachfrage überschrieben. Es empfiehlt sich, die Existenz einer Zieldatei zu überprüfen, um ein Überschreiben zu vermeiden.

sourceFilePath Der volle Pfad der zu kopierenden Datei (zB. "C:\Temp\settings.data").
destinationFilePath Der Zielordner oder Zieldateipfad (ev. gleichzeitige Umbenennung des Dateiname).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

CreateDirectory(directoryPath)
Erstellt ein angegebenes Verzeichnis bzw. Ordnerstruktur (incl. fehlender übergeordneter Elternordner).
directoryPath Der volle Pfad des zu erstellenden Verzeichnisses (mit oder ohne abschließendem '\').
returns "SUCCESS" bei Erfolg (auch wenn der Ordner bereits besteht), sonst "FAILED".

DeleteDirectory(directoryPath)
Löscht das angegebene Verzeichnis (incl. gesamtem Inhalt) ohne Rückfrage von der Festplatte.
directoryPath Der volle Pfad des zu löschenden Verzeichnisses (mit oder ohne abschließendem '\', nicht für Junction 'L' Attr.).
returns "SUCCESS" bei Erfolg, sonst "FAILED".

DeleteFile(filePath)
Löscht eine angegebene Datei ohne Rückfrage von der Festplatte.
filePath Der volle Pfad der zu löschenden Datei (zB. "C:\Temp\settings.data").
returns "SUCCESS" bei Erfolg, sonst "FAILED".

GetDirectories(directoryPath)
Ermittelt die vollen Pfade aller direkten Unterordner im angegebenen Ordnerpfad.
directoryPath Das Verzeichnis in dem Unterordner zu ermitteln sind (mit oder ohne abschließendem '\', nicht für Junction 'L' Attr.).
returns Die vollen Ordnerpfade als Array (alphabetisch sortiert) oder "" bei Erfolg, sonst "FAILED".
Bei relativem Eingabepfad werden auch relative Pfade zurückgegeben.


GetFiles(directoryPath)
Ermittelt die Pfade aller direkten Dateien im angegebenen Ordnerpfad.
directoryPath Das Verzeichnis in dem Dateien zu ermitteln sind (mit oder ohne abschließendem '\', nicht für Junction 'L' Attr.).
returns Die vollen Dateipfade als Array (alphabetisch sortiert) oder "" bei Erfolg, sonst "FAILED".
Bei relativem Eingabepfad werden auch relative Pfade zurückgegeben.


GetSettingsFilePath()
Ermittelt den vollen Pfad der Einstellungsdatei für das aktuelle Programm. Der Name der Einstellungsdatei basiert auf dem aktuellen Programmname mit Erweiterung .settings und befindet sich im selben Verzeichnis wie das Programm (ANSI Textdatei).
Die Einstellungsdatei selbst wird dabei nicht erstellt.

returns Der volle Pfad der Einstellungsdatei für dieses Programm.

GetTemporaryFilePath()
Erstellt eine neue temporäre Datei im Benutzer TEMP-Ordner (%TEMP%\tmp????.tmp) und gibt deren vollen Dateipfad zurück.
returns Der volle Pfad der temporären Datei (zB. C:\Users\NAME\AppData\Local\Temp\tmp3B80.tmp).

InsertLine(filePath,lineNumber,contents)
Öffnet die angegebene Datei und fügt Textinhalt in/ab der Zeile mit der angegebenen Zeilennummer ein (Standard ANSI, sonst UTF8).
Diese Methode überschreibt keinen bestehenden Inhalt in der angegebenen Datei. Höhere Zeilennummern als im bestehenden Text vorhanden, werden am Textende angefügt (ev. dazwischenliegende Leerzeilen werden ignoriert).

filePath Der volle Dateipfad (zB. "C:\Temp\settings.data"). Eine nicht existierende Datei wird erstellt.
lineNumber Die Zeilennummer für den einzufügenden Text ab 1 (0 ergibt keine Änderung).
contents Der in angegebene Zeile einzufügende Text, Array oder "" für eine Leerzeile.
returns "SUCCESS" bei Erfolg, sonst "FAILED".

LastError
Ermittelt oder setzt die letzte, auf einem Dateivorgang basierende Fehlermeldung. Diese Eigenschaft hilft herauszufinden, wenn eine File Methode nicht ausgeführt werden konnte.
(Standard: ""). Für AppendContents, CopyFile, CreateDirectory, DeleteDirectory, DeleteFile, GetDirectories, GetFiles, InsertLine, WriteContents.


ReadContents(filePath)
Öffnet eine lokale Datei und liest den gesamten Textinhalt/Einzelarray (Standard UTF8, ev. Anzeigeproblem bei ANSI, s. dazu LDFile.ReadANSI).
Diese Methode ist schnell bei Dateien unter 1MB, wird aber deutlich langsamer bei größeren Dateien, besonders über 10MB.

filePath Der volle Dateipfad (zB. "C:\Temp\settings.data").
returns Der gesamte Textinhalt der Datei bzw. "" wenn Datei fehlt oder leer ist.
example 'Einzelnen Array laden
arr = File.ReadContents(File.GetSettingsFilePath())


ReadLine(filePath,lineNumber)
Öffnet die angegebene Datei und liest Textinhalt/Array der angegebenen Zeilennummer (Standard UTF8, ev. Anzeigeproblem bei ANSI, s. dazu LDFile.ReadANSI).
filePath Der volle Dateipfad (zB. "C:\Temp\settings.data").
lineNumber Die Zeilennummer für den einzulesenden Text ab 1 (0 liest die erste Zeile).
returns Der Textinhalt der angegebenen Zeile. "" für Leerzeile oder wenn Datei oder Zeilennummer (zB. Leerdatei) nicht existiert.
example 'Array aus Zeile 1 einlesen
arr = File.ReadLine(File.GetSettingsFilePath(), 1)


WriteContents(filePath,contents)
Öffnet eine Datei und schreibt angegebenen Textinhalt/Einzelarray hinein (Standard ANSI, sonst UTF8). Bestehende Inhalte werden durch den neuen Inhalt ersetzt.
filePath Der volle Dateipfad (zB. "C:\Temp\settings.data"). Eine nicht existierende Datei wird erstellt.
contents Der in die angegebene Datei zu schreibende Text oder Array. "" löscht einen bereits bestehenden Inhalt oder erstellt eine Leerdatei.
returns "SUCCESS" bei Erfolg, sonst "FAILED".
example 'Einzelnen Array speichern
File.WriteContents(File.GetSettingsFilePath(), arr)


WriteLine(filePath,lineNumber,contents)
Öffnet die angegebene Datei und schreibt Textinhalt/Array in die Zeile mit der angegebenen Zeilennummer (incl. Zeilenvorschub, Standard ANSI, sonst UTF8).
Diese Methode überschreibt den bestehenden Inhalt in der angegebenen Zeile. Höhere Zeilennmmern als im bestehenden Text vorhanden werden am Textende angefügt (ev. dazwischenliegende Leerzeilen werden ignoriert).

filePath Der volle Dateipfad (zB. "C:\Temp\settings.data"). Eine nicht existierende Datei wird erstellt.
lineNumber Die Zeilennummer für den zu schreibenden Text ab 1 (0 schreibt in die erste Zeile).
contents Der in angegebene Zeile zu schreibende Text, Array oder "" für Leerzeile.
returns "SUCCESS" bei Erfolg, sonst "FAILED".
example 'Array in Zeile 1 speichern
File.WriteLine(File.GetSettingsFilePath(), 1,arr)


Flickr
Bietet Zugang zum Flickr Fotodienst.
(Bei Fehler als Fix zuvor einmalig s. LDUtilities.FixFlickr() aufrufen)


GetPictureOfMoment GetRandomPicture

GetPictureOfMoment()
Ermittelt die URL für ein aktuelles Flickr Bild. (Bei Fehler zuvor einmalig s. LDUtilities.FixFlickr() aufrufen)
returns Die Datei-URL für ein Flickr Bild.

GetRandomPicture(tag)
Ermittelt die URL für ein zufällig gewähltes Bild zum angegebenen Thema. (Bei Fehler zuvor einmalig s. LDUtilities.FixFlickr() aufrufen)
tag Das Thema für das gewünschte Zufallsbild.
returns Die Datei-URL für ein Flickr Bild (Zufallsauswahl).

GraphicsWindow
Stellt eine graphische Benutzeroberfläche (GUI) mit Ein- und Ausgabefunktionen zur Verfügung. zB. können Kreise und Rechtecke gezeichnet und ausgefüllt werden.
PxlPos x/y: 0 bis GW.Width-1 bzw. GW.Height-1.
Die meisten der folgenden Methoden initialisieren das GW auch ohne vorheriges GraphicsWindow.Show (GetColorFromRGB, GetRandomColor, Font.. nicht).


BackgroundColor BrushColor CanResize
Clear DrawBoundText DrawEllipse
DrawImage DrawLine DrawRectangle
DrawResizedImage DrawText DrawTriangle
FillEllipse FillRectangle FillTriangle
FontBold FontItalic FontName
FontSize GetColorFromRGB GetPixel
GetRandomColor Height Hide
KeyDown KeyUp LastKey
LastText Left MouseDown
MouseMove MouseUp MouseX
MouseY PenColor PenWidth
SetPixel Show ShowMessage
TextInput Title Top
Width

BackgroundColor
Ermittelt oder setzt die Hintergrundfarbe des GraphicsWindow (bzw. Anpassen der Transparenz für s. LDUtilities.TransparentGW).
Standard: #FFFFFF dh. 'White'. Fehler oder "" ergibt #000000 dh. 'Black'. "#00FFFFFF" ist 'Transparent'.

example http://msdn.microsoft.com/library/System.Windows.Media.Colors.aspx
http://i.msdn.microsoft.com/dynimg/IC24340.png


BrushColor
Ermittelt oder setzt die Pinselfarbe, mit welcher Formen ausgefüllt bzw. Text in GraphicsWindow, Controls und Textshapes angezeigt wird.
(Standard: #6A5ACD dh. 'SlateBlue'; Fehler oder "" ergibt #000000 dh. 'Black').
#AARRGGBB mit AA<>00 setzt Transparenz für Shapes und Zeichnungen (FF deckend, 00 transparent).

example http://msdn.microsoft.com/library/System.Windows.Media.Colors.aspx
http://i.msdn.microsoft.com/dynimg/IC24340.png


CanResize
Ermittelt oder setzt ob die Größe des GraphicsWindow mittels Mauszeiger angepasst werden kann. Setzen VOR GW.Width/-Height.
Änderung der Fenstergröße ist weiterhin möglich mittels GW.Width und GW.Height.
(Standard: "True", sonstiges wie "False", "", 0, 1, -1 usw. fixiert Fenstergröße und erhöht Standardwerte für GW.Width/-Height um 10 auf 634/452)
Min. GW.Width/Height: 126/10
"True" Min+Max Felder (LDGraphicsWindow.Resize 1)
"False" nur 'X' Feld (LDGraphicsWindow.Resize 2)


Clear()
Löscht alle Inhalte im GraphicsWindow wie: Bilder, Zeichnungen, Text, Controls und Shapes (außer Turtle).
Bestehende Shape# werden geleert (""). ImageList#, Schrift- und Farbeinstellungen (BackgroundColor) bleiben erhalten.
Alternativ GW (-Bereich) mit FillRectangle (in BrushColor) überzeichnen (nur für GW.Draw../Fill.., außer für Turtle/-Linie, Shapes, Controls).


DrawBoundText(x,y,width,text)
Schreibt eine Textzeile an der angegebenen Stelle (mit BrushColor, Font..).
x Die x-Koordinate für den Ankerpunkt (l.o.) des Textes.
y Die y-Koordinate für den Ankerpunkt (l.o.) des Textes (je nach FontSize sind Standardbuchstaben runter versetzt).
width Die maximal verfügbare Textbreite [Pxl] (0 volle Textlänge ohne Umbruch, s. DrawText). Bestimmt wo der Textumbruch (an Leerzeichen) stattfindet.
text Der anzuzeigende Text. Bei kleineren Werten für Textbreite nur oder endende '...' in Ausgabezeile.

DrawEllipse(x,y,width,height)
Zeichnet eine Ellipse mit dem gewählten Stift (PenColor/-Width). Koordinaten beziehen sich auf die Mitte der PenWidth Linienbreite.
x Die x-Koordinate der Ellipse.
y Die y-Koordinate der Ellipse.
width Die Breite der Ellipse (-/0/+ Werte, <0 kippt um y-Achse nach links).
height Die Höhe der Ellipse (-/0/+ Werte, <0 kippt um x-Achse nach oben).

DrawImage(imageName,x,y)
Zeigt ein (ImageList) Bild in Originalgröße im GraphicsWindow (in gleicher Ebene wie gefüllte Formen). Keine Anzeige wenn "ImageList#" leer "" ist. Keine Gif-Animation.
imageName Der ImageList-Name oder voller (Web)Dateipfad des anzuzeigenden Bildes (BMP, gif, ico, jp(e)g, PNG, tiff).
x Die x-Koordinate des Bildes im GraphicsWindow.
y Die y-Koordinate des Bildes im GraphicsWindow.
example GraphicsWindow.DrawImage("http://microsoft.com/favicon.ico", 0,0)

DrawLine(x1,y1,x2,y2)
Zeichnet eine Linie zwischen 2 Punkten mit dem gewählten Stift (PenColor/-Width). Koordinaten beziehen sich auf die Mitte der PenWidth Linienbreite.
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.
example 'Gerade von x1,y1 nach y2 im Winkel deg
rad = Math.GetRadians(180-deg)
x2 = x1 + (y2-y1)/Math.Tan(rad)
GraphicsWindow.DrawLine(x1,y1, x2,y2)


DrawRectangle(x,y,width,height)
Zeichnet ein Rechteck mit dem gewählten Stift (PenColor/-Width). Koordinaten beziehen sich auf die Mitte der PenWidth Linienbreite.
x Die x-Koordinate des Rechtecks.
y Die y-Koordinate des Rechtecks.
width Die Breite des Rechtecks (0/+ Werte).
height Die Höhe des Rechtecks (0/+ Werte).

DrawResizedImage(imageName,x,y,width,height)
Zeigt ein (ImageList) Bild in den angegebenen Abmessungen im GraphicsWindow (Ansicht wird ev. gestaucht, in gleicher Ebene wie gefüllte Formen). Keine Anzeige wenn "ImageList#" leer "" ist. Keine Gif-Animation.
imageName Der ImageList-Name oder voller (Web)Dateipfad des anzuzeigenden Bildes (BMP, gif, ico, jp(e)g, PNG, tiff).
x Die x-Koordinate des Bildes im GraphicsWindow.
y Die y-Koordinate des Bildes im GraphicsWindow.
width Die Anzeigebreite des Bildes (0/+ Werte, 0 gibt keine Anzeige).
height Die Anzeigehöhe des Bildes (0/+ Werte, 0 gibt keine Anzeige).

DrawText(x,y,text)
Schreibt eine Textzeile an der angegebenen Stelle (mit BrushColor, Font..).
x Die x-Koordinate für den Ankerpunkt (l.o.) des Textes.
y Die y-Koordinate für den Ankerpunkt (l.o.) des Textes (je nach FontSize sind Standardbuchstaben runter versetzt).
text Der anzuzeigende Text.

DrawTriangle(x1,y1,x2,y2,x3,y3)
Zeichnet ein Dreieck mit dem gewählten Stift (PenColor/-Width). Koordinaten beziehen sich auf die Mitte der PenWidth Linienbreite.
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.
x3 Die x-Koordinate von Punkt 3.
y3 Die y-Koordinate von Punkt 3.

FillEllipse(x,y,width,height)
Zeichnet eine gefüllte Ellipse (mit BrushColor).
x Die x-Koordinate der Ellipse.
y Die y-Koordinate der Ellipse.
width Die Breite der Ellipse (-/0/+ Werte, 0 gibt keine Anzeige, <0 kippt um y-Achse nach links).
height Die Höhe der Ellipse (-/0/+ Werte, 0 gibt keine Anzeige, <0 kippt um x-Achse nach oben).

FillRectangle(x,y,width,height)
Zeichnet ein gefülltes Rechteck (mit BrushColor).
x Die x-Koordinate des Rechtecks.
y Die y-Koordinate des Rechtecks.
width Die Breite des Rechtecks (0/+ Werte, 0 gibt keine Anzeige).
height Die Höhe des Rechtecks (0/+ Werte, 0 gibt keine Anzeige).

FillTriangle(x1,y1,x2,y2,x3,y3)
Zeichnet ein gefülltes Dreieck (mit BrushColor).
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.
x3 Die x-Koordinate von Punkt 3.
y3 Die y-Koordinate von Punkt 3.

FontBold
Ermittelt oder setzt Text als Fettdruck im GraphicsWindow, Controls und Textshapes.
(Standard: "True")


FontItalic
Ermittelt oder setzt Text als Kursivdruck im GraphicsWindow, Controls und Textshapes.
(Standard: "False")


FontName
Ermittelt oder setzt den Name der Schriftart für Text im GraphicsWindow, Controls und Textshapes. Leerzeichen in der Eingabe werden ignoriert.
(Standard: Tahoma, Systemstandard: SegoeUI, 9)


FontSize
Ermittelt oder setzt die Schriftgröße von Text im GraphicsWindow, Controls und Textshapes (bei FixedWidthFont: Breite = 0.6*Höhe).
(Standard: 12)


GetColorFromRGB(red,green,blue)
Ermittelt den Hex-Farbwert (#RRGGBB) aus den angegebenen Rot-, Grün- und Blauwerten einer Farbe.
red Der Rotanteil der Farbe (0-255).
green Der Grünanteil der Farbe (0-255).
blue Der Blauanteil der Farbe (0-255).
returns Der Hex-Farbwert als #RRGGBB. Dieser kann zum Setzen der Pinsel- oder Stiftfarbe verwendet werden (zB. #808080).
example 'Pinselfarbe als R,G,B setzen
GraphicsWindows.BrushColor = GraphicsWindow.GetColorFromRGB(R,G,B)


GetPixel(x,y)
Ermittelt die Farbe eines Pixels an den gegebenen Koordinaten im GW (als #RRGGBB, für Draw.. Zeichnungen, Text, Images. NICHT für BackgroundColor oder Shapes).
(Standard: #000000)

x Die x-Koordinate des Pixels (>=0,
y Die y-Koordinate des Pixels (>=0,
returns Die Farbe des Pixels als #RRGGBB.

GetRandomColor()
Ermittelt einen gültigen Zufalls-Farbwert (GW wird nicht initialisiert).
returns Ein gültiger zufälliger Farbwert als #RRGGBB.

Height
Ermittelt oder setzt die Höhe des GraphicsWindow.
(Standard: 442 (452 bei CanResize=False), Fensterhöhe = gh +2*7 (Rand) +22 (Titelleiste); 2zeilige Taskbarhöhe 60. Kein Rand bei CanResize=False)
Nicht ermittelbar nach GW.Hide am Beginn. Minimalwert: -38

example tbh = 60 'Taskbarhöhe
ghMax = Desktop.Height -tbh-38


Hide()
Blendet das GraphicsWindow aus (auch wenn zuvor noch nicht initialisiert, dann bleibt jedoch 'Maximieren' Feld deaktivert).

KeyDown
Ereignisaufruf bei Drücken einer beliebigen Taste (wenn Mauszeiger im GraphicsWindow).
Für weitere Tastaturereignisse s. LDTextWindow.KeyDown und .KeyUp (mit .LastKey, LowLevel für GW u/o TW dh. auch OHNE Fensterfokus).
Für Zeichentasten wird auch 'GW.TextInput' ausgelöst.


KeyUp
Ereignisaufruf bei Loslassen einer Taste (Mauszeiger im GraphicsWindow).
Für weitere Tastaturereignisse s. LDTextWindow.KeyDown und .KeyUp (mit .LastKey, LowLevel für GW u/o TW dh. auch OHNE Fensterfokus).


LastKey
Ermittelt die letzte gedrückte oder losgelassene Taste im GW (Tastencode für Buchstaben in Großbuchstaben zB. "A").
(Standard: None)


LastText
Ermittelt den Text, der zuletzt im GraphicsWindow eingegeben wurde. Unterscheidet zwischen Groß-/Kleinbuchstaben.

Left
Ermittelt oder setzt die linke Position des GraphicsWindow (linker Fensterrand) am Desktop.
(Standard: 29 bis 145)

example 'GW Klientbereich links oben
GraphicsWindow.Left = -7
GraphicsWindow.Top = -29

'GW Klientbereich zentriert
GraphicsWindow.Left = (DT.Width-GW.Width)/2 -7
GraphicsWindow.Top = (DT.Height-GW.Height)/2 -29


MouseDown
Ereignisaufruf bei Drücken einer Maustaste (Links, Mitte/Rad oder Rechts) im GraphicsWindow (bzw. Shape). Linke Maustaste nicht für Controls und rechte auch nicht für (MultiLine)TextBox.
Ereignisaufruf für mittlere Maustaste/-rad ergibt sich aus 'Links NOr Rechts'.


MouseMove
Ereignisaufruf bei Bewegung des Mauszeigers (manuell oder programmgesteuert) im GraphicsWindow.

MouseUp
Ereignisaufruf bei Loslassen einer Maustaste (Links, Mitte/Rad oder Rechts) im GraphicsWindow (bzw. Shape). Linke Maustaste nicht für Controls.

MouseX
Ermittelt die x-Position des Mauszeigers im GraphicsWindow (0 bis GW.Width-1). Keine Aktualisierung außerhalb des GW (gibt 0 oder letzte bekannte Pos).

MouseY
Ermittelt die y-Position des Mauszeigers im GraphicsWindow (0 bis GW.Height-1). Keine Aktualisierung außerhalb des GW (gibt 0 oder letzte bekannte Pos).

PenColor
Ermittelt oder setzt die Stiftfarbe, die verwendet wird für Linienzeichnungen im GW, Shapes-Umrandungen und Turtle-Spur (Intern: "_turtleLine#").
(Standard: #000000 dh. 'Black' od. "")

example http://msdn.microsoft.com/library/System.Windows.Media.Colors.aspx
http://i.msdn.microsoft.com/dynimg/IC24340.png


PenWidth
Ermittelt oder setzt die Stiftbreite (Linienzeichnungen im GW, Shapes-Umrandungen und Turtle-Linie). Für Shapes ohne Umrandung (in PenColor) auf 0 setzen. (Standard: 2)
<2 hellere Doppellinie
<=0.18 Einzellinie >=0.07
<0.07 keine Linie


SetPixel(x,y,color)
Zeichnet ein Pixel an den angegebenen Koordinaten des GW in der gewählten Farbe (unabhängig von Pen-/BrushColor).
x Die x-Koordinate des Pixels (>=0).
y Die y-Koordinate des Pixels (>=0).
color Die Farbe des Pixels (zB. "Red" oder "#(AA)RRGGBB" bzw. #(A)RGB, "" für "#000000" bzw. "Black").

Show()
Zeigt das interaktionsbereite GraphicsWindow (wieder) an.

ShowMessage(text,title)
Zeigt ein (dem GW untergeordnetes) Meldungsfenster (zentriert am Desktop) und hält die Programmausführung an, bis 'OK' Button, "Space", "Escape" oder Eingabetaste gedrückt wurde. Max. Breite 480 Pxl bzw. ca. 39-61 Zeichen.
Schrifteigenschaften unveränderlich.

text Der im Meldungsfenster anzuzeigende Text.
title Der Titel des Meldungsfensters.

TextInput
Ereignisaufruf bei Eingabe von Textzeichen im GraphicsWindow. Nicht für Steuerungs-/Funktionstasten. Gemeinsam mit 'GW.KeyDown' Event.

Title
Ermittelt oder setzt den Titel des GraphicsWindow (Tab funktioniert nicht, Systemstandard für Schrifteigenschaften, keine Symbole).
(Standard: Small Basic Graphics Window)


Top
Ermittelt oder setzt die obere Position des GraphicsWindow (Fenster, Oberkante Titelleiste) am Desktop.
(Standard: 29 bis 145)

example 'GW Klientbereich links oben
GraphicsWindow.Left = -7
GraphicsWindow.Top = -29

'GW Klientbereich zentriert
GraphicsWindow.Left = (DT.Width-GW.Width)/2 -7
GraphicsWindow.Top = (DT.Height-GW.Height)/2 -2


Width
Ermittelt oder setzt die Breite des GraphicsWindow. Min. Anzeigebreite: 116 (bei GW.Hide/CanResize: 132/126) für 0, "" oder ungültiger Angabe.
(Standard: 624 (634 bei CanResize=False), Fensterbreite = gw +2*7 Rand. Kein Rand bei CanResize=False)
Nicht ermittelbar nach GW.Hide am Beginn.

example gwMax = Desktop.Width -2*7

ImageList
Ermöglicht das Laden von Bilddateien in den Arbeitspeicher. Benötigt kein GW.
Transparenz in ImageList ist #D3D3D3 bzw. 'LightGray'.
pxlPos x/y: 0 bis GetWidthOfImage-1 bzw. 0 bis GetHeightOfImage-1.
Kopieren mittels img2 = img1 (behält gleiche ImageList#).


ClipImage GetHeightOfImage GetWidthOfImage
LoadImage

ClipImage(imageName,left,top,width,height)
Erstellt einen Ausschnitt eines angegebenen Bildes und liefert ein neues Bild mit diesem Ausschnitt (Entfernt in Code und IntelliSense, s. LDImage.Crop).
imageName Das Originalbild von dem der Ausschnitt erstellt wird.
left Die x-Koordinate des Ausschnittsrechtecks.
top Die y-Koordinate des Ausschnittsrechtecks.
width Die Breite des Ausschnittsrechtecks.
height Die Höhe des Ausschnittsrechtecks.
returns Der rechteckige Bildausschnitt.

GetHeightOfImage(imageName)
Ermittelt die Höhe eines angegebenen Bildes (ImageList oder Datei).
imageName Der Name des Bildes in ImageList, ImageList# oder voller Dateipfad.
returns Die Höhe des Bildes [Pxl] oder 0.

GetWidthOfImage(imageName)
Ermittelt die Breite eines angegebenen Bildes (ImageList oder Datei).
imageName Der Name des Bildes in ImageList, ImageList# oder voller Dateipfad.
returns Die Breite des Bildes [Pxl] oder 0.

LoadImage(fileNameOrUrl)
Lädt eine lokale oder Netzwerk Bilddatei in den Arbeitsspeicher (Intern: ImageList#+1).
ImageListName = "" entfernt das Bild aus ImageList, nicht jedoch die ImageList#.
Bei ICO Dateien mit mehreren Symbolen wird das größte Bild daraus geladen. Nicht für CUR Dateien. Keine Gif-Animation.

fileNameOrUrl Der volle Dateipfad des Bildes als lokale oder Netzwerkdatei (BMP, (anim)gif, ico, jp(e)g, PNG, tiff).
returns Der Name des neu geladenen ImageList Bildes, sonst "" (wenn fileNameOrUrl "").
example ImageList.LoadImage("") erstellt KEINE neue/leere ImageList#.
ImageList.LoadImage(" ") oder nichtexistenter Bildpfad erstellt neue/leere ImageList#+1, aber kein verwendbares Bild.


Math
Hilfreiche mathematische Methoden.
Wissenschaftliche Notation in der Form "-num.dezE-exp", zB:
555 - "1E3" '-445
"-.5E02" * 3 '-150
1 / "500E-2" '0.2

example Dezimalausgabe zwar mit Komma ',' aber intern wird Dezimalpunkt '.' verwendet.
s. http://social.technet.microsoft.com/wiki/contents/articles/19330.small-basic-parameter-or-return-value-range-for-math-function.aspx


Abs ArcCos ArcSin
ArcTan Ceiling Cos
Floor GetDegrees GetRadians
GetRandomNumber Log Max
Min NaturalLog Pi
Power Remainder Round
Sin SquareRoot Tan

Abs(number)
Ermittelt den absoluten Wert einer Zahl. zB. gibt -32.233 den Wert 32.233 zurück.
Entfernt auch endende Nullen von Dezimalzahlen (zB. Math.Abs(-0.12300) gibt 0.123 zurück, s. Math.Power).

number Die Zahl deren Absolutwert zu ermitteln ist.
returns Der absolute Wert der Zahl.
example 'Vorzeichen Funktion sgn(n)
If n = 0 Then
sgn = 0
Else
sgn = n/Math.Abs(n)
EndIf

'FlipFlop 0<->1
n = Math.Abs(n - 1)


ArcCos(cosValue)
Ermittelt den Bogenmaßwinkel aus dem Cosinuswert ([Grad] = [rad] * 180/pi).
cosValue Der Cosinuswert dessen Winkel zu ermitteln ist.
returns Der Bogenmaßwinkel [rad] für den angegebenen Cosinuswert (0 bis pi).

ArcSin(sinValue)
Ermittelt den Bogenmaßwinkel aus dem Sinuswert ([Grad] = [rad] * 180/pi).
sinValue Der Sinuswert dessen Winkel zu ermitteln ist.
returns Der Bogenmaßwinkel [rad] für den angegebenen Sinuswert (-pi/2 bis pi/2).

ArcTan(tanValue)
Ermittelt den Bogenmaßwinkel aus dem Tangenswert ([Grad] = [rad] * 180/pi).
tanValue Der Tangenswert dessen Winkel zu ermitteln ist.
returns Der Bogenmaßwinkel [rad] für den angegebenen Tangenswert (-pi/2 bis pi/2).
example Atan2(y,x) = ArcTan(y/x) 'x>0
ArcCot(x) = ArcTan(1/x)
ArcCot(x) = ArcTan(x) + 2*ArcTan(1)


Ceiling(number)
Ermittelt eine Ganzzahl, mit dem gleichen Wert wie die angegebene Dezimalzahl oder größer als diese. zB. gibt 32.233 den Wert 33 zurück (-32.233 gibt -32).
Aufrunden zur nächst höheren Ganzzahl (Gegenstück zu Math.Floor).

number Die Zahl deren größter Wert zu ermitteln ist.
returns Der größte Wert der angegebenen Zahl.

Cos(angle)
Ermittelt den Cosinus (Ak/Hy) des angegebenen Winkels im Bogenmaß ([rad] = [Grad] * pi/180).
angle Der Winkel [rad] dessen Cosinuswert zu ermitteln ist.
returns Der Cosinus des angegebenen Winkels [-1,1] (x im Einheitskreis).
example Cos(w) = -Cos(w+pi)

Floor(number)
Ermittelt eine Ganzzahl, mit dem gleichen Wert wie die angegebene Dezimalzahl oder kleiner als diese. zB. gibt 32.233 den Wert 32 zurück (-32.233 gibt -33).
Abrunden zur nächst niedrigeren Ganzzahl (Gegenstück zu Math.Ceiling).

number Die Zahl deren kleinster Wert zu ermitteln ist.
returns Der kleinste Wert der angegebenen Zahl.
example 'n oder nächste gerade Zahl
2 * Math.Floor((n+1)/2)
'n oder vorige gerade Zahl
2 * Math.Ceiling((n-1)/2)


GetDegrees(angle)
Umrechnung eines Winkels vom Bogenmaß zum Gradmaß ([Grad] = [rad] * 180/pi).
angle Der Winkel im Bogenmaß [rad].
returns Der umgewandelte Winkel [Grad].

GetRadians(angle)
Umrechnung eines Winkels vom Gradmaß zum Bogenmaß ([rad] = [Grad] * pi/180).
angle Der Winkel [Grad].
returns Der umgewandelte Winkel im Bogenmaß [rad].

GetRandomNumber(maxNumber)
Ermittelt eine Zufallszahl zwischen 1 und der gegebenen Zahl (inkl.), 1<=Rand<=Max.
zB. Math.GetRandomNumber(999)/1000 liefert Zufallszahl zw. 0.001 und 0.999.

maxNumber Die Obergrenze für die angeforderte Zufallszahl (>1, 0 und 1 geben immer 1 zurück).
returns Eine Zufallszahl >=1, die kleiner oder gleich der angegebenen Zahl ist.
example 'Ausgabe +1 oder -1
2*Math.GetRandomNumber(2) - 3


Log(number)
Ermittelt den Logarithmus zur Basis 10 der angegebenen Zahl.
number Die Zahl deren Logarithmus zu ermitteln ist.
returns Der dekadische Logarithmus der angegebenen Zahl.
example 'lg(n) zur Basis B
lgB(n) = log(n)/log(B)


Max(number1,number2)
Vergleicht zwei Zahlen und gibt die größere der beiden zurück.
number1 Die erste der beiden Vergleichszahlen.
number2 Die zweite der beiden Vergleichszahlen.
returns Die größere der beiden Zahlen.

Min(number1,number2)
Vergleicht zwei Zahlen und gibt die kleinere der beiden zurück.
number1 Die erste der beiden Vergleichszahlen.
number2 Die zweite der beiden Vergleichszahlen.
returns Die kleinere der beiden Zahlen.

NaturalLog(number)
Ermittelt den natürlichen Logarithmus (zur Basis e) der angegebenen Zahl.
number Die Zahl deren natürlicher Logarithmus zu ermitteln ist.
returns Der natürliche Logarithmus der angegebenen Zahl.
example 'lg(n) zur Basis B
lgB(n) = ln(n)/ln(B)


Pi
Ermittelt den Wert der Zahl Pi mit 14 Dezimalstellen (3.14159265358979).

Power(baseNumber,exponent)
Ermittelt die angegebene Potenz der Zahl baseNumber.
Math.Power(dezZahl,1) entfernt auch endende Nullen von Dezimalzahlen (zB. Math.Power(-0.12300,1) gibt -0.123 zurück, s. Math.Abs).

baseNumber Die Zahl deren Potenz zu ermitteln ist.
exponent Der Exponent zu dem die Basis potenziert wird.
returns Die angebenene Potenz der Zahl baseNumber.

Remainder(dividend,divisor)
Teilt die erste Zahl Z durch die zweite Zahl N und gibt den +/- Rest R zurück:
R = Sgn(Z) * (Abs(Z) - Abs(N) * Floor(Abs(Z)/Abs(N)))

dividend Die zu teilende Zahl (Zähler Z).
divisor Die Zahl durch die geteilt wird (Nenner, N<>0).
returns Der +/- Divisionsrest (Modulus Z % N) mit dem Vorzeichen des Zählers Z (- divisor-1 .. 0 .. + divisor-1).
example Math.Remainder(9,10) '9
Math.Remainder(10,10) '0
Math.Remainder(11,10) '1

'Zyklus durch Intervall
i = Math.Remainder(i, n)+1 '[1,n]
i = Math.Remainder(i+1, n) '[1..n,0]
i = Math.Remainder(1-i, n) '[1,0,1,0,..]

'Bidirekt. Zyklus durch Intervall [a,z]
n = a 'bis z
d = 1 '-/+ delta
n = Remainder(z+ Remainder(n+d -z-a, z-a+1), z-a+1)+a

'0,1,..,9 zu 10,1,..,9
n = Math.Max(Math.Remainder(n+10,11),n)


Round(number)
Rundet eine gegebene Zahl auf die nächstliegende Ganzzahl. 32.23 wird zB. auf 32 abgerundet,
während 32.56 auf 33 aufgerundet wird (-32.23 wird auf -32 aufgerundet und -32.56 zu -33 abgerundet).
'Banker Rundung' in Richtung Geradzahl dh.: 32.5 zu 32 aber 33.5 zu 34 (-32.5 zu -32, -33.5 zu -34).

number Die Zahl deren Näherungswert zu ermitteln ist.
returns Der gerundete Wert der angegebenen Zahl.
example 'rundet Dezimalwert n auf 2 Dezimalen
Round(100*n)/100
'rundet n IMMER auf 2 Dezimalen (zB. Ganzzahl)
Round(100*n)*0.01


Sin(angle)
Ermittelt den Sinus (Gk/Hy) des angegebenen Winkels im Bogenmaß ([rad] = [Grad] * pi/180).
angle Der Winkel [rad] dessen Sinuswert zu ermitteln ist.
returns Der Sinus des angegebenen Winkels [-1,1] (y im Einheitskreis).
example Sin(w) = -Sin(w+pi)

SquareRoot(number)
Ermittelt die Quadratwurzel einer angegebenen positiven Zahl.
number Die positive Zahl deren Quadratwurzel zu ermitteln ist.
returns Die Quadratwurzel der gegebenen Zahl bei Erfolg, sonst 0 (zB. -4, "").

Tan(angle)
Ermittelt den Tangens (Gk/Ak, Sin/Cos) des angegebenen Winkels im Bogenmaß ([rad] = [Grad] * pi/180).
angle Der Winkel [rad] dessen Tangenswert zu ermitteln ist.
returns Der Tangens des angegebenen Winkels (Steigung y/x im Einheitskreis).
example Tan(w) = Tan(w+pi)
Cot(w) = 1/Tan(w)


Mouse
Ermöglicht den Zugriff auf Mauseigenschaften wie Zeigerkoordinaten, Zeigersymbol usw. Je nach Funktion für gesamten Desktop oder nur GW.
GW.MouseDown Ereignis für mittlere Maustaste/-rad ergibt sich aus 'Links NOr Rechts'.


HideCursor IsLeftButtonDown IsRightButtonDown
MouseX MouseY ShowCursor

HideCursor()
Blendet den Mauszeiger aus (nur GW).

IsLeftButtonDown
Ermittelt ob die linke Maustaste gedrückt wurde (gesamter Desktop, Standard: "False").
Ereignisaufruf für mittlere Maustaste/-rad ergibt sich aus 'Links NOr Rechts'.


IsRightButtonDown
Ermittelt ob die rechte Maustaste gedrückt wurde (gesamter Desktop, Standard: "False").
Ereignisaufruf für mittlere Maustaste/-rad ergibt sich aus 'Links NOr Rechts'.


MouseX
Ermittelt oder setzt die x-Position des Mauszeigers (gesamter Desktop, 0 bis Desktop.Width-1).
Bei Positionsänderung im GW wird auch 'GW.MouseMove' Event ausgelöst.


MouseY
Ermittelt oder setzt die y-Position des Mauszeigers (gesamter Desktop, 0 bis Desktop.Height-1).
Bei Positionsänderung im GW wird auch 'GW.MouseMove' Event ausgelöst.


ShowCursor()
Macht den Mauszeiger sichtbar (nur GW).

Network
Bietet Zugriff auf Netzwerkmethoden.

DownloadFile GetWebPageContents

DownloadFile(url)
Download einer Netzwerkdatei in eine lokale temporäre Datei (%TEMP%\tmp????.tmp).
url Die URL der Netzwerkdatei (http://..). Ein bestehender lokaler Dateipfad wird nach temp. Pfad kopiert.
returns Der lokale Dateipfad unter dem die Netzwerkdatei gespeichert wurde bei Erfolg, sonst "".
Das Datum der gespeicherten Downloaddatei wird auf aktuelles Datum gesetzt.


GetWebPageContents(url)
Ermittelt den Textinhalt einer angegebenen Webseite (auch für Binärdateien, jedoch nur sinnvoll für textbasierte Dateien) oder lokalen Textdatei.
url Die URL der Webseite (http://)www... oder lokaler Dateipfad (zB. lokale Heimnetzwerk IPAdresse 192.168.1.99, http://familiePC).
returns Der Textinhalt (Quelltext) der angegebenen Webseite oder lokalen Textdatei.

Program
Funktionen zur Kontrolle der Programmausführung.
SB unterstützt auch "." (CurrDir), ".." (ParentDir), relative Pfade und %PFADE%.


ArgumentCount Delay Directory
End GetArgument

ArgumentCount
Ermittelt die Anzahl der Befehlszeilenargumente, die an das Programm übergeben wurden. (Standard: 0)

Delay(milliSeconds)
Verzögert die Programmausführung um die angegebene Anzahl Millisekunden. Möglichst nicht innerhalb von Event-Subs oder daraus aufgerufenen Subs, sondern in Hauptschleife.
milliSeconds Die Dauer der Verzögerung [ms].

Directory
Ermittelt den Ordnerpfad für die aktuell ausgeführte Programmdatei.
SB unterstützt auch "." (CurrDir), ".." (ParentDir), relative Pfade und %PFADE%.

example Program.Directory +"\Datei.ext" ' ".\Datei.ext"

End()
Beendet das aktuelle Programm.

GetArgument(index)
Ermittelt das angegebene Argument, das an dieses Programm übergeben wurde (max. Gesamtlänge 8191 Zeichen).
index Der Index des Arguments (1 bis 'ArgumentCount').
returns Das Befehlszeilenargument am angegebenen Index oder "" wenn dieses nicht existiert.

Shapes
Ermöglicht das Hinzufügen, Bewegen und Rotieren von Formen (Geometrie-, Bild- oder TextShapes) im GraphicsWindow. Funktioniert zT. auch für Controls (Interne Namensverarbeitung).
Gegen Flackern, die Shape(s) bei verstecktem GW hinzufügen oder als transparente Geometrie-/Bildshape bzw. leere TextShape ("") oder leeres Rectangle/Ellipse (0) oder Triangle/Line außerhalb des GW (<0, >gw).


AddEllipse AddImage AddLine
AddRectangle AddText AddTriangle
Animate GetLeft GetOpacity
GetTop HideShape Move
Remove Rotate SetOpacity
SetText ShowShape Zoom

AddEllipse(width,height)
Fügt eine gefüllte Ellipse der angegebenen Breite und Höhe hinzu (Intern: Ellipse#).
width Die Breite der Ellipse (0/+ Werte, 0 gibt keine Anzeige, LeerEllipse).
height Die Höhe der Ellipse (0/+ Werte, 0 gibt keine Anzeige, LeerEllipse).
returns Der Shapename der Ellipse.

AddImage(imageName)
Fügt ein Bild als Bildshape hinzu, das bewegt, rotiert oder als Animation ausgeführt werden kann (Intern: Image#).
Die Abmessungen der Bildshape entsprechen der Bildgröße (s. ImageList.Get..OfImage) und können mit Controls.SetSize geändert werden.
ImageList Bild kann danach aus ImageList entfernt werden (LDImage.Remove).
Bild kann nach LDControls.AllowDrop per Drag&Drop geändert werden.

imageName Der Bildname in ImageList oder (Web)Dateipfad des anzuzeigenden Bildes (BMP, gif, ico, jp(e)g, PNG, tiff).
returns Der Name der Bildshape.
example Leershape erstellbar mit transparentem png Bild.
Shapes.AddImage("") 'erstellt neue leere Image# aber keine verwendbare Bildshape.


AddLine(x1,y1,x2,y2)
Fügt eine Gerade zwischen den angegebenen Punkten in PenColor hinzu (Intern: Line#).
x1 Die x-Koordinate von Punkt 1 (-/0/+).
y1 Die y-Koordinate von Punkt 1 (-/0/+).
x2 Die x-Koordinate von Punkt 2 (-/0/+).
y2 Die y-Koordinate von Punkt 2 (-/0/+).
returns Der Shapename der Linie. Ankerpunkt der Shape ist (0;0).
example dx = Math.Abs(x2 - x1)
dy = Math.Abs(y2 - y1)
l = Math.SquareRoot(dx*dx + dy*dy)
w = Math.ArcTan((y2-y1)/(x2-x1)) '-pi/2 bis pi/2


AddRectangle(width,height)
Fügt ein gefülltes Rechteck der angegebenen Breite und Höhe hinzu (Intern: Rectangle#).
width Die Breite des Rechtecks (0/+ Werte, 0 gibt keine Anzeige, LeerRechteck).
height Die Höhe des Rechtecks (0/+ Werte, 0 gibt keine Anzeige, LeerRechteck).
returns Der Shapename des Rechtecks.
example 'Rotes Rechteck mit blauem Rahmen
GraphicsWindow.BrushColor = "Red"
GraphicsWindow.PenColor = "Blue"
GraphicsWindow.PenWidth = 20
Shapes.AddRectangle(200,100)


AddText(text)
Fügt Text als Textshape hinzu, die bewegt, rotiert oder als Animation ausgeführt werden kann. Der Text kann mit SetText aktualisiert werden.
Texteigenschaften bestimmbar durch vorangehendes BrushColor sowie Font-Eigenschaften, Größe durch Controls-/LDShapes.SetSize und Hintergrundfarbe durch LDShapes.BrushColour.
Shapehöhe: 14.5 , Shapebreite/Buchst: 7 (bei FontSize 12).
Auch im Hintergrund (Intern: Text#).

text Der Text (linksbündig), der in der Shape angezeigt wird.
returns Der Name der Textshape.
example 'Neue leere Text# erstellen
Shapes.AddText("")


AddTriangle(x1,y1,x2,y2,x3,y3)
Fügt ein gefülltes Dreieck anhand der angegebenen Punkte hinzu (Intern: Triangle#).
x1 Die x-Koordinate von Punkt 1 (-/0/+).
y1 Die y-Koordinate von Punkt 1 (-/0/+).
x2 Die x-Koordinate von Punkt 2 (-/0/+).
y2 Die y-Koordinate von Punkt 2 (-/0/+).
x3 Die x-Koordinate von Punkt 3 (-/0/+).
y3 Die y-Koordinate von Punkt 3 (-/0/+).
returns Der Shapename des Dreiecks.

Animate(shapeName,x,y,duration)
Bewegt eine angegebene Shape animiert an eine neue Position. Als asynchroner Thread wartet die Programmausführung nicht auf dessen Beendigung. Daher ev. Program.Delay(duration) anschließen. (s. Shapes.Move)
shapeName Der Name der zu animierenden Shape.
x Die x-Koordinate der neuen Position.
y Die y-Koordinate der neuen Position.
duration Die Dauer der Animation [ms] (duration >= 0). 0 verschiebt unmittelbar.
example 'Animation über 1/2 Breite, dann Sprung
ell = Shapes.AddEllipse(10,10)
Shapes.Animate(ell, GraphicsWindow.Width,0, 5000)
Program.Delay(2500)
Shapes.Animate(ell, GraphicsWindow.Width,0, 0)


GetLeft(shapeName)
Ermittelt die linke Koordinate des Ankerpunktes einer angegebenen Shape. Unbeeinflußt von Shapes.Zoom oder -Rotate. Nicht für Controls, dazu erst ein Shape-Kommando zB. Shapes.Move für Control anwenden.
shapeName Der Name der Shape.
returns Die linke x-Koordinate [Pxl] der Shape im GW (0 bei Erstellung).

GetOpacity(shapeName)
Ermittelt die Deckkraft [%] einer Shape.
shapeName Der Name der Shape.
returns Die Deckkraft der Shape von 0 bis 100 [%]. 0 ist völlig transparent, 100 ist deckend.
example Alternativ für Zeichnungen und (Text)Shapes aus deren BrushColor #AARRGGBB, für AA = 00 (transparent) bis FF (deckend).

GetTop(shapeName)
Ermittelt die obere Koordinate des Ankerpunktes einer angegebenen Shape. Unbeeinflußt von Shapes.Zoom oder -Rotate. Nicht für Controls, dazu erst ein Shape-Kommando zB. Shapes.Move für Control anwenden.
shapeName Der Name der Shape.
returns Die obere y-Koordinate [Pxl] der Shape im GW (0 bei Erstellung).

HideShape(shapeName)
Blendet eine bereits hinzugefügte Shape aus (s. Controls.HideControl, Shapeposition bleibt unverändert. Animate, GetLeft/-Top, Move, SetText, Rotate, Zoom funktionieren weiterhin).
shapeName Der Name der Shape.

Move(shapeName,x,y)
Verschiebt die angegebene Shape an ihrem Ankerpunkt unmittelbar an eine neue Position (s. Shapes.Animate, Controls.Move). Auch bei versteckter Shape bzw. verstecktem GW, wenn dieses VOR GW.Hide bereits initialisiert wurde.
shapeName Der Name der zu verschiebenden Shape.
x Die x-Koordinate der neuen Position (l.o. Ecke des umgebenden Originalrechtecks).
y Die y-Koordinate der neuen Position (l.o. Ecke des umgebenden Originalrechtecks).

Remove(shapeName)
Entfernt eine Shape aus dem GraphicsWindow (Interne # bleibt unverändert).
shapeName Der Name der zu entfernenden Shape.

Rotate(shapeName,angle)
Dreht die angegebene Shape optisch um den angegebenen Winkel ab Originalposition (um Mittel-/Schwerpunkt).
shapeName Der Name der zu rotierenden Shape (bzw. Control).
angle Der Winkel [Grad] um den die Shape/Control ab Originalposition gedreht wird (+/- für im/gegen Uhrzeigersinn).
example Shapes.Rotate(shp, -380) '20° Linksdrehung ab OrigPos.

SetOpacity(shapeName,level)
Setzt die Deckkraft [%] einer Shape/Control.
shapeName Der Name der Shape.
level Die Deckkraft von 0 bis 100 [%]. 0 ist völlig transparent, 100 ist deckend.
example Alternativ für Zeichnungen und (Text)Shapes über deren BrushColor als #AARRGGBB, für AA = 00 (transparent) bis FF (deckend).

SetText(shapeName,text)
Setzt oder ändert den Text in einer Textshape.
shapeName Der Name der Textshape.
text Der zu setzende Text.

ShowShape(shapeName)
Zeigt eine ausgeblendete Shape an der zuletzt definierten Position wieder an (s. Controls.ShowControl).
shapeName Der Name der Shape.

Zoom(shapeName,scaleX,scaleY)
Vergrößert oder verkleinert eine Shape optisch mittels der angegebenen Zoomwerte von 0.1 bis 20 (s.a. Contols.SetSize, LDShapes.Re-/SetSize).
Die Größenänderung erfolgt im Mittelpunkt der Shape nur optisch, dh. dieser, der Ankerpunkt und die tatsächlichen Abmessungen der Basisshape bleiben erhalten.

shapeName Der Name der zu verkleinernden oder vergrößernden Shape.
scaleX Der Zoomfaktor in x-Richtung (0.1 bis 20, <1 verkleinert, >1 vergrößert, neg. Wert -> 0.1).
scaleY Der Zoomfaktor in y-Richtung (0.1 bis 20, <1 verkleinert, >1 vergrößert, neg. Wert -> 0.1).

Sound
Methoden zur Soundwiedergabe. Auch einige Beispiel Sounds sind enthalten.
Für SystemBeep (im TW) s. Text.GetCharacter(7).


Pause Play PlayAndWait
PlayBellRing PlayBellRingAndWait PlayChime
PlayChimeAndWait PlayChimes PlayChimesAndWait
PlayClick PlayClickAndWait PlayMusic
Stop

Pause(filePath)
Pausiert das Abspielen einer Audiodatei. Wird die Datei nicht gerade abgespielt, führt diese Operation nichts aus.
filePath Der volle Pfad der Audiodatei. zB. C:\Musik\track1.mp3 für einen lokalen oder "http://contoso.com/track01.wma" für einen Netzwerkpfad.

Play(filePath)
Spielt eine Audiodatei ab (zB. im Hintergrund). Es kann sich hierbei um eine mp3, wav, wma (bzw. flac, m4a, ogg) Datei handeln. Andere Formate hängen von den am Computer installierten Codecs ab.
Wenn das Abspielen der Datei bereits angehalten wurde, startet diese Operation das Abspielen erneut. Zum Abspielen für eine bestimmte Zeit ev. weitere Programmausführung anhalten (asynchron).

filePath Der volle Pfad der Audiodatei. zB. "C:\Musik\track1.mp3" für einen lokalen oder "http://contoso.com/track01.wma" für einen Netzwerkpfad.

PlayAndWait(filePath)
Spielt eine Audiodatei ab und wartet, bis der Vorgang abgeschlossen ist. Es kann sich hierbei um eine mp3, wav, wma (bzw. flac, m4a, ogg) Datei handeln. Andere Formate hängen von den am Computer installierten Codecs ab.
Wenn das Abspielen der Datei bereits angehalten wurde, startet diese Operation das Abspielen erneut.

filePath Der volle Pfad der Audiodatei. zB. "C:\Musik\track1.mp3" für einen lokalen oder "http://contoso.com/track01.wma" für einen Netzwerkpfad.

PlayBellRing()
Spielt den Glockenzeichen Sound ab (asynchron).

PlayBellRingAndWait()
Spielt den Glockenzeichen Sound ab und wartet bis Abspielvorgang abgeschlossen ist.

PlayChime()
Spielt den Glockenton Sound ab (asynchron).

PlayChimeAndWait()
Spielt den Glockenton Sound ab und wartet bis Abspielvorgang abgeschlossen ist.

PlayChimes()
Spielt den Glockenläuten Sound ab (asynchron).

PlayChimesAndWait()
Spielt den Glockenläuten Sound ab und wartet bis Abspielvorgang abgeschlossen ist.

PlayClick()
Spielt den Mausklick Sound ab (asynchron).

PlayClickAndWait()
Spielt den Mausklick Sound ab und wartet bis Abspielvorgang abgeschlossen ist.

PlayMusic(notes)
Spielt Musiknoten synchron von einer Zeichenkette ab (nicht für Hintergrund, Programmausführung solange angehalten).
Standardinstrument: 1 - Acoustic_Grand_Piano

Music Markup Language (MML) Specification
http://xml.coverpages.org/mml-spec19990610.html

notes Ein String abzuspielender Musiknoten. Format ist Teil der in QBasic unterstützten Music Markup Language (MML).
Oktave: O1-O8 (<|> 1 Oktave ab|auf; Std: O4)
Note: C,D,E,F,G,A,B (-|+,# Halbton ab|auf; . 1.5x Dauer)
Länge: L1-L64 (Ln, Std: L4) oder Note+n
Pause: R od. P (Länge wie Noten)
Leerzeichen werden ignoriert

example Sound.PlayMusic("O5 C8 C8 G8 G8 A8 A8 G4 F8 F8 E8 E8 D8 D8 C4")

Stop(filePath)
Beendet die Wiedergabe einer Audiodatei. Wird die Datei nicht gerade abgespielt, führt diese Operation nichts aus.
filePath Der volle Pfad der Audiodatei. zB. "C:\Musik\track1.mp3" für einen lokalen oder "http://contoso.com/track01.wma" für einen Netzwerkpfad.

Stack
Ermöglicht das Zwischenspeichern von Werten (Zahl, String, Var) in einem Stapel. Ein Wert kann ganz oben auf den Stapel abgelegt und von dort wieder heruntergenommen werden.
Es muß ein Wert nach dem anderen wieder vom Stapel abgenommen werden, beginnend mit dem Wert, der zuletzt am Stapel abgelegt wurde (Umgekehrte Reihenfolge, zuletzt rein-zuerst raus).
Stackname vordefiniert zB. Stapel = "" oder in "".


GetCount PopValue PushValue

GetCount(stackName)
Ermittelt die Anzahl der Elemente im angegebenen Stapel.
stackName Der Name des Stapels (in "" oder vordefiniert).
returns Die Anzahl der Elemente im angegebenen Stapel oder 0.

PopValue(stackName)
Ermittelt (und entfernt) den obersten Wert im angegebenen Stapel (Fehlerabbruch, wenn Stapel leer ist).
stackName Der Name des Stapels (in "" oder vordefiniert).
returns Entladener, oberster Wert des Stapels.

PushValue(stackName,value)
Befördert einen Wert 'oben' auf den angegebenen Stapel.
stackName Der Name des Stapels (in "" oder vordefiniert).
value Der reinzuladende Wert.

Text
Stringfunktionen zur Textverarbeitung. Diese unterscheiden zw. Groß-/Kleinschreibung (zB. A<>a). zT. auch für Arrays anwendbar (zB. IsSubText).
Ein Einzelstring darf auch ein/mehrere "" enthalten, jedoch nicht am Stringbeginn oder -ende.

example http://msdn.microsoft.com/library/windows/desktop/dd374081.aspx (Unicode Zeichen)

Append ConvertToLowerCase ConvertToUpperCase
EndsWith GetCharacter GetCharacterCode
GetIndexOf GetLength GetSubText
GetSubTextToEnd IsSubText StartsWith

Append(text1,text2)
Verbindet zwei Zeichenfolgen (Texte, Arrays, Variableninhalte) und gibt den Gesamtstring zurück. Nützlich bei Verarbeitung von unbekanntem Text in Variablen, der irrtümlich als Zahl behandelt und addiert werden könnte, anstatt zusammengefügt (Alternativ: '+').
text1 Der erste Teilstring.
text2 Der zweite Teilstring.
returns Der zusammengefügte String aus beiden Teilen.

ConvertToLowerCase(text)
Konvertiert den angegebenen Text (bzw. gesamten Arrayinhalt) zu Kleinbuchstaben.
text Der Text oder Array, der in Kleinbuchstaben umzuwandeln ist.
returns Der angegebene Text bzw. Array in Kleinbuchstaben.

ConvertToUpperCase(text)
Konvertiert den angegebenen Text (bzw. gesamten Arrayinhalt) zu Großbuchstaben.
text Der Text oder Array, der in Großbuchstaben umzuwandeln ist.
returns Der angegebene Text bzw. Array in Großbuchstaben.

EndsWith(text,subText)
Ermittelt ob ein Text mit dem angegebenen String (buchstabengetreu) endet.
text Der zu durchsuchende Text.
subText Die gesuchte Zeichenfolge am Textende.
returns "True" wenn die Zeichenfolge am Textende gefunden wurde, sonst "False".

GetCharacter(characterCode)
Ermittelt das entsprechende Zeichen zu einem angegebenen Unicode Zahlencode. Dieses kann dann als normaler Textstring verwendet werden.
characterCode Der dekadische Unicode Zahlencode (UTF-16) für ein bestimmtes Zeichen. Hex Unicode Codes (#xxxx) erst konvertieren (W7 bis max. 65535 = #FFFF).
returns Das Unicode Zeichen, das dem Zahlencode entspricht ("", "0" oder 0 ergibt ' ' bzw. chr(0)).
example 'Umlaute
arrUml="196=Ä;214=Ö;220=Ü;223=ß;228=ä;246=ö;252=ü;"
arrSmiley="9785=☹;9786=☺;9787=☻;"

7 SystemBeep (im TW)
8 bs (BackSpace)
9 tab (8 stellig)
10 lf
13 cr
32 space
34 qu (")


GetCharacterCode(character)
Ermittelt den entsprechenden Unicode Zahlencode (UTF-16) für ein angegebenes Zeichen. Für mehrere Zeichen oder Zahl, den Unicode Zahlencode des ersten Zeichens/Ziffer.
character Das Zeichen, dessen Unicode Zahlencode zu ermitteln ist.
returns Der dekadische Unicode Zahlencode, der dem angegebenen (ersten) Zeichen entspricht ("" ergibt 0, bis max. 65535 = #FFFF).
Für characterCode >= 65536 (#10000) wird Math.Remainder(characterCode, 65536) zurückgegeben.
Für SMP Zeichen >= U+10000, der dekadische Unicode Zahlencode für das erste/höhere Surrogat.

example 'Zeichen -> Code
0..9 '48-57
A..Z '65-90
a..z '97-122

'Whitespace Zeichen (tab,lf,cr,space)
arrWS="1=9;2=10;3=13;4=32;"
WS: 9-13,32,133,160,5760,8192-8203,8232,8233,12288,65279


GetIndexOf(text,subText)
Ermittelt die erste Position einer Zeichenfolge (buchstabengetreu) in einem angegebenen Text.
text Der zu durchsuchende Text.
subText Die zu suchende Zeichenfolge, Zeichen oder Zahl.
returns Die erste Position (ab 1) an der die Zeichenfolge im angegebenen Text gefunden wurde, sonst 0.

GetLength(text)
Ermittelt die Anzahl der Zeichen in einem angegebenen Text/String oder Zahl.
text Der Text dessen Länge zu ermitteln ist.
returns Die Zeichenanzahl im angegebenen Text bzw. 0 für "".
example Text.GetLength("False") '5
Text.GetLength("-""-") '4
Text.GetLength(-123) '4
Text.GetLength(-.123) '7 (für -0.123)
Text.GetLength(chr) '2 (für SMP, chr >= U+10000)


GetSubText(text,start,length)
Ermittelt eine Zeichenfolge innerhalb eines Textes, ab der angegebenen Position (incl.) und der Länge 'length'.
text Der zu durchsuchende Text.
start Die Startposition innerhalb des Textes (ab 1). Bei einem Startwert <1 oder >Textlänge wird "" zurückgegeben.
length Die Länge der Sub-Zeichenfolge (>= 0, ab 'start').
returns Der ermittelte Teilstring oder "".
example Text.GetSubText("12345678", 5,6) ' "5678"

GetSubTextToEnd(text,start)
Ermittelt eine Zeichenfolge am Ende eines Textes, ab der angegebenen Position (incl.) bis zum Textende.
text Der zu durchsuchende Text.
start Die Startposition innerhalb des Textes (ab 1). Bei einem Startwert <1 oder >Textlänge wird "" zurückgegeben.
returns Der ermittelte Teilstring am Textende oder "".
example Text.GetSubTextToEnd("12345678", 4) ' "45678"

IsSubText(text,subText)
Ermittelt ob ein Teiltext (buchstabengetreu) in in einem angegebenen Text enthalten ist. Auch Suche nach subText in einem Array.
text Der zu durchsuchende Text. (Für Array erscheinen hier '\' als '\\'.)
subText Die gesuchte Zeichenfolge im Text.
returns "True" wenn die Zeichenfolge im angegebenen Text gefunden wurde, sonst "False".

StartsWith(text,subText)
Ermittelt ob ein Text mit dem angegebenen Teiltext (buchstabengetreu) beginnt.
text Der zu durchsuchende Text.
subText Die gesuchte Zeichenfolge am Textanfang.
returns "True" wenn die Zeichenfolge am Textbeginn gefunden wurde, sonst "False".

TextWindow
Funktionen für das TextWindow. zB. können Texte oder Zahlen in das TextWindow geschrieben oder vom TextWindow eingelesen werden.
(Standard Fensterbreite/-höhe: 667/402 Pxl)


BackgroundColor Clear CursorLeft
CursorTop ForegroundColor Hide
Left Pause PauseIfVisible
PauseWithoutMessage Read ReadKey
ReadNumber Show Title
Top Write WriteLine

BackgroundColor
Ermittelt (als Farbname) oder setzt die Hintergrundfarbe der weiteren Textanzeige (Farbname oder -nummer 0-15, s. Color /? in CMD).
Anschließendes TextWindow.Clear() dehnt die Hintergrundfarbe auf gesamtes TextWindow aus.
(Standard: Black bzw. 0, nicht als #RRGGBB)

example 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


Clear()
Löscht alle Inhalte im TextWindow.
example 'Farbe im gesamten TW setzen
TextWindow.BackgroundColor = "Farbe"
TextWindow.Clear


CursorLeft
Ermittelt oder setzt die Ausgabespalte Cursorposition im TextWindow.
(0 bis 89 bzw. s. SBConsole.Width-1, Standard: 0)


CursorTop
Ermittelt oder setzt die Ausgabezeile Cursorposition im TextWindow.
(0 bis 29 ohne Scrollen bzw. s. SBConsole.Height-1, Standard: 0)


ForegroundColor
Ermittelt (als Farbname) oder setzt die Vordergrundfarbe der weiteren Textanzeige (Farbname oder -nummer 0-15, s. Color /? in CMD).
(Standard: Green bzw. 10, nicht als #RRGGBB)

example 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


Hide()
Blendet das TextWindow aus.
Ein angezeigter Textinhalt bleibt erhalten und wird beim nächsten TextWindow Aufruf (Show, WriteLine) wieder angezeigt.


Left
Ermittelt oder setzt die linke Position des TextWindow (linker Fensterrand) am Desktop.
(Standard: s. CMD Eigenschaften - Layout - Fensterpos.)


Pause()
Wartet auf Benutzereingabe und hält das TextWindow geöffnet (mit "Press any key to continue...").

PauseIfVisible()
Wartet nur dann auf Benutzereingabe, wenn das TextWindow sichtbar ist (mit "Press any key to continue..."), sonst gleich Weiterausführung.

PauseWithoutMessage()
Wartet auf Benutzereingabe (ohne "Press any key to continue..."). Sinnvoll wenn gleichzeitig GW aktiv ist.

Read()
Liest eine Textzeile aus dem TextWindow. Keine Rückgabe, bis die Eingabetaste gedrückt wurde.
Akzeptiert Zahlen, Buchstaben und Sonderzeichen. (s. TextWindow.ReadKey)

returns Der im TextWindow eingegebene Text.

ReadKey()
Liest ein einzelnes Tastenzeichen aus dem TextWindow. Sofort und ohne vorherige Eingabetaste.
(Ausgeblendet in IntelliSense, s. TextWindow.Read und -ReadNumber)

returns Das Tastenzeichen, das aus dem TextWindow gelesen wurde (Groß-/Kleinbuchstabe, Zahl, Sonderzeichen). Funktions- und Steuertasten geben nichts zurück (bzw. CharCode 0).

ReadNumber()
Liest eine Zahl aus dem TextWindow. Keine Rückgabe, bis die Eingabetaste gedrückt wurde.
Akzeptiert Ziffern 0 bis 9, ein Komma "." und "-" am Anfang. (s. TextWindow.ReadKey)

returns Die im TextWindow eingegebene Zahl oder 0 bei "".

Show()
Blendet das TextWindow (wieder) ein.
Ein vor TextWindow.Hide angezeigter Textinhalt bleibt erhalten und wird wieder angezeigt.


Title
Ermittelt oder setzt den Titel für das TextWindow (Tab funktioniert nicht, Schrifteigenschaften nach Systemstandard, keine Symbole).
Das Fenster wird dabei (wieder) angezeigt.
(Standard: Voller Dateipfad der aktuellen .exe mit Argumenten)


Top
Ermittelt oder setzt die obere Position des TextWindow (Fenster, Oberkante Titelleiste) am Desktop.
(Standard: s. CMD Eigenschaften - Layout - Fensterpos.)


Write(data)
Schreibt Text oder eine Zahl in das TextWindow. Im Gegensatz zu WriteLine wird kein Zeilenvorschub angefügt. Die nächste Ausgabe wird daher am Ende derselben Zeile angefügt, fortlaufend mit Umbruch am Zeilenende.
data Der auszugebende Text oder Zahl.
example Write(lf bzw. crlf) '1 Leerzeile bzw. Zeilenvorschub

WriteLine(data)
Schreibt Text oder eine Zahl in das TextWindow. Ein Zeilenvorschub (cr+lf bzw. chr13+chr10) wird automatisch angefügt, sodaß die nächste Ausgabe in neuer Zeile beginnt.
data Der auszugebende Text oder Zahl.
example WriteLine("") '1 Leerzeile
WriteLine(lf od. crlf) '2 Leerzeilen


Timer
Dient dazu einen Vorgang auszuführen, der sich in regelmäßigen Abständen wiederholt. Weiters zum Erstellen asynchroner Parallelthreads.

Interval Pause Resume
Tick

Interval
Ermittelt oder setzt das Intervall [ms] für den Timer. Dieses bestimmt die Zeitabstände in denen der Timer (Zeitgeber) das Tick Ereignis auslöst. Werte von 10 bis 100000000.
(Standard: 100000000)


Pause()
Hält den Timer (Zeitgeber) an. Tick Ereignisse werden nicht ausgelöst.

Resume()
Setzt den Timer (Zeitgeber) nach einer Pause wieder fort. Tick Ereignisse werden wieder ausgelöst.

Tick
Ereignisaufruf wenn der Timer (Zeitgeber) ein neues Zeitintervall beginnt.
Funktioniert als einziges Ereignis auch im TextWindow und dient zum Erstellen asynchroner Parallelthreads.


Turtle
Mit der Schildkröte kann man Logo ähnliche Funktionalität erzielen und Formen zeichnen, indem man die Eigenschaften des Stifts und der Zeichnungsvariablen ändert.
Das Turtle Bild ist eine Bildshape (Intern: "_turtle"), die Spur eine Linienshape (Intern: "_turtleLine#") und beide liegen eine Ebene über GW, Linienzeichnungen, gefüllte Formen, Controls und Shapes.
Turtle Bildshape anpassbar mit zB. Shapes.SetOpacity("_turtle",Wert) oder Shapes.Zoom("_turtle", faktorX,faktorY).
Turtlelinie anpassbar mit PenColor/-Width.
s. LDShapes.SetTurtleImage zum Ändern des Turtle Bildes.


Angle Hide Move
MoveTo PenDown PenUp
Show Speed Turn
TurnLeft TurnRight X
Y

Angle
Ermittelt oder setzt den Winkel [Grad] für die aktuelle Blickrichtung der Schildkröte. Das Festlegen ändert deren Blickrichtung unmittelbar (blendet Turtle nicht ein).
(Standard: 0 für 12h, +/- für im/gegen Uhrzeigersinn)


Hide()
Blendet die Schildkröte aus (nur Bildshape, Linie nicht) und deaktiviert die Funktion für Turn(Left/Right), Angle und Move(To) weiter moglich.
s. LDShapes.ResetTurtle(), Shapes.HideShape("_turtle") bzw. -ShowShape("_turtle").


Move(distance)
Bewegt die Schildkröte um die angegebene Entfernung (initialisiert Turtle, Programmfortführung wird solange angehalten). Ist der Stift unten, wird mit dieser Bewegung eine Linie gezeichnet (Intern: Shapes.Move("_turtle", x,y)).
distance Die -/+ Entfernung die die Schildkröte in Blickrichtung zurücklegt.

MoveTo(x,y)
Dreht und bewegt die Schildkröte zur angegebenen Position (initialisiert Turtle, Programmfortführung wird solange angehalten). Ist der Stift aufgesetzt, wird dabei eine Linie gezeichnet (Intern: Shapes.Move("_turtle", x,y)).
Die Blickrichtung bleibt danach erhalten.

x Die x-Koordinate des Zielpunktes.
y Die y-Koordinate des Zielpunktes.

PenDown()
Setzt den Stift auf, sodaß die Schildkröte bei Bewegung zeichnet (in PenColor/-Width).
(Standardmäßig aktiviert)


PenUp()
Hebt den Stift ab, sodaß die Schildkröte bei Bewegung nicht zeichnet.

Show()
Zeigt die Schildkröte (Bildshape wieder) an, für weitere Interaktion.
s. LDShapes.ResetTurtle(), Shapes.HideShape("_turtle") bzw. Shapes.ShowShape("_turtle").


Speed
Ermittelt oder setzt die Bewegungsgeschwindigkeit der Schildkröte (blendet diese nicht ein). Gültige Werte sind Zahlen von 1 (min) bis 10 (max). Ein Wert von 10 bewegt und dreht die Schildkröte sofort.
(Standard: 5)

example animZeit [ms] = Math.Abs(distance [Pxl] * 320/(Turtle.Speed*Turtle.Speed))
'zB. 1280 ms für 100 Pxl bei Speed 5 usw.


Turn(angle)
Dreht die Schildkröte um den angegebenen Winkel (initialisiert Turtle, auch wenn ausgeblendet). Der Winkel [Grad] kann positiv oder negativ sein. Startwinkel (0 Grad) entspricht Richtung 12h.
Ein pos. Winkel dreht die Schildkröte nach rechts (im Uhrzeigersinn).
Ein neg. Winkel dreht die Schildkröte nach links (gegen Uhrzeigersinn).
(Intern: Shapes.Rotate("_turtle",[Grad]))

angle Der -/+ Winkel [Grad] um den die Schildkröte gedreht wird (Standard: 0).

TurnLeft()
Dreht die Schildkröte um 90 Grad gegen den Uhrzeigersinn (blendet diese ein, Intern: Shapes.Rotate("_turtle",-90)).

TurnRight()
Dreht die Schildkröte um 90 Grad im Uhrzeigersinn (blendet diese ein, Intern: Shapes.Rotate("_turtle",90)).

X
Ermittelt oder setzt die aktuelle x-Koordinate der Schildkröte. Das Festlegen ändert deren Position unmittelbar (ohne Linie, blendet Turtle nicht ein).
(Standard: 320)


Y
Ermittelt oder setzt die aktuelle y-Koordinate der Schildkröte. Das Festlegen ändert deren Position unmittelbar (ohne Linie, blendet Turtle nicht ein).
(Standard: 240)