' Tests für separater Bildschirm #include "fbgfx.bi" Const ZEI_BREITE = 8 Const ZEI_HOEHE = 16 Const TEXT_PIX_GROE = 20 ' Primitiver Ansatz: Wir lassen das Fenster gemaess ' der Windows-Philosophie vom erweiterten Desktop ' einfach ueberlappen! Const BEDIENPANEL_BREITE As Integer = 256 Dim t As String, i As Integer Dim xOffs As Integer, yOffs As Integer Dim te As String Dim x As Integer, y As Integer Dim px As Integer, py As Integer Dim bs2breite As Integer, bs2hoehe As Integer Dim tmp As String ' Daten Bildschirm 1 ScreenControl(FB.GET_DESKTOP_SIZE, xOffs, yOffs) Print "Lokaler Desktop Breite: "; xOffs; " Hoehe: "; yOffs ' GET_DESKTOP_SIZE liefert nur vom aktuellen, d.h. ' Bildschirm 1 die Groesse, koennen wir aber gut ' als Positionsoffset gebrauchen ' Daten Bildschirm 2: Ab Kommandozeile uebergeben tmp = Command(1) i = InStr(LCase(tmp), "x") If i = 0 Then Print "Aufrufformat: " + Command(0) + " " End 1 EndIf bs2breite = Val(Left(tmp, i - 1)) bs2hoehe = Val(Mid(tmp, i + 1)) ScreenRes bs2breite + BEDIENPANEL_BREITE, bs2hoehe, 4, ,FB.GFX_NO_FRAME Width (bs2breite + BEDIENPANEL_BREITE) \ ZEI_BREITE, bs2hoehe \ ZEI_HOEHE ScreenControl FB.SET_WINDOW_POS, xOffs - BEDIENPANEL_BREITE, 0 ' Ein paar Rechtecke als Zuschauer-Beamer-Inhalt For i=1 To bs2hoehe \ 10 - 2 Line (BEDIENPANEL_BREITE + 2 + 5 * i, 2 + 5 * i)-(BEDIENPANEL_BREITE + bs2breite - 3 - 5 * i, bs2hoehe - 3 - 5 * i), 1 + i Mod 15, bf Next Locate 5, 1 Print "* Bedienpanel *" Print "Menü" Print "t = Text einblenden" Print "Esc = Ende" Do Do Sleep t = InKey Loop While t = "" Select Case t Case "t", "T" Locate 8, 1 Line Input "Text:"; te ' Vorteil von dieser "Primitiv"-Loesung: Wir koennen den Panel- ' Bereich auch als "Sudelflaeche" fuer PRINT und POINT-Auslesen ' verwenden Locate 11, 1 Print te px = BEDIENPANEL_BREITE + bs2breite \ 2 - Len(te) * TEXT_PIX_GROE * ZEI_BREITE \ 2 py = bs2hoehe \ 2 - TEXT_PIX_GROE * ZEI_HOEHE \ 2 For y = 0 To 15 For x = 0 To 8 * Len(te) - 1 Line (px + x * TEXT_PIX_GROE, py + y * TEXT_PIX_GROE)-Step(TEXT_PIX_GROE - 1, TEXT_PIX_GROE - 1), Point(x, y + 10 * ZEI_HOEHE), bf Next x Next y End Select Loop Until t = Chr(27) Print "Beendet"