LitDev 1.2.16.0 DE 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 LDGraph LDGraphicsWindow
LDHID 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

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
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 gedreht wird [Grad].
duration Die Dauer der Animation [ms].

BackgroundBrush(brush)
Setzt einen Farbgradient als Hintergrund für das GraphicsWindow (dynamische Anpassung an Fenstergröße).
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 Anwendung dieses Ereignisses auf "False" gesetzt sein.
Ist CancelClose auf "True" gesetzt, wird die Schließung abgebrochen.


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.

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.

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 eine angegebene Bilddatei (zB. ico, png, kein %ENVVAR% Pfad) als Symbol für das GraphicsWindow. Dieses 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 die Konstante bei Umskalierung zwischen GraphicsWindow- und Desktop x-Koordinaten gemäß:
Mouse.X = MouseXOffset + MouseXScale * GraphicsWindow.MouseX.


MouseXScale
Ermittelt den Umskalierungsfaktor zwischen GraphicsWindow- und Desktop x-Koordinaten gemäß:
Mouse.X = MouseXOffset + MouseXScale * GraphicsWindow.MouseX.


MouseY
Ermittelt oder setzt die y-Koordinate für den Mauszeiger im GraphicsWindow.

MouseYOffset
Ermittelt die Konstante bei Umskalierung zwischen GraphicsWindow- und Desktop y-Koordinaten gemäß:
Mouse.Y = MouseYOffset + MouseYScale * GraphicsWindow.MouseY.


MouseYScale
Ermittelt den Umskalierungsfaktor zwischen GraphicsWindow- und Desktop y-Koordinaten gemäß:
Mouse.Y = MouseYOffset + MouseYScale * GraphicsWindow.MouseY.


PauseUpdates()
Pausiert automatische Aktualisierung (Neuzeichnen) im initialisierten GraphicsWindow (s. ResumeUpdates).

Print(border)
Druckt den Inhalt des GraphicsWindow.
Das 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 gedreht wird [Grad].

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-elementiger Array der transformierten Koordinaten mit Indizes 1 und 2 (für neue x, y).

Resize
Ermittelt oder setzt den Resize Modus für das GraphicsWindow:
0 CanMinimize, "" (Min; wie GW.CanResize="")
1 CanResize (Min+Max, Standard; wie GW.CanResize="True")
2 CanResizeWithGrip (Min+Max+Maus; 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 mit Fokus.

SetFontFromFile(fontFile)
Setzt die Schriftart im GraphicsWindow mittels einer lokalen .ttf Schriftartdatei.
fontFile Der volle Pfad für die zu setzende .ttf Schriftartdatei.
returns Die Bezeichnung der Schriftart (als file:///Ordnerpfad/#Schriftname) bei Erfolg, sonst "FAILED".

ShowInTaskbar
Ermittelt oder setzt die Anzeige einer Schaltfläche (Symbol) für das GraphicsWindow in der Taskleiste ("True" 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 das 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 das 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.
"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 kann geringere Transparenz als 100% (BackgroundColor #AA >00) erforderlich sein (zB. Erkennen von Mausereignissen 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).