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

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

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).