Referenz - SCREENUNLOCK
Syntax: SCREENUNLOCK [Startzeile][, Endzeile]
Typ: Anweisung
Kategorie: Grafik
SCREENUNLOCK hebt eine Sperrung durch SCREENLOCK auf.
- 'Startzeile' ist ein optionaler Parameter, der die erste Bildschirmzeile (Y-Koordinate) angibt, ab welcher der Bildschirm aktualisiert werden soll. Wenn Sie diesen Parameter auslassen, wird die oberste Bildschirmzeile angenommen.
- 'Endzeile' ist ein optionaler Parameter, der die letzte Bildschirmzeile angibt, die aktualisiert werden soll. Wenn Sie 'Endzeile' auslassen, wird die unterste Bildschirmzeile angenommen.
- Werden beide Parameter ausgelassen, entsperrt FreeBASIC den gesamten Bildschirm.
Diese Anweisung lässt das System den Bildschirm wieder aktualisieren und aktualisiert ihn bereits beim Aufruf selbst. Diese erste Aktualisierung kann auf einen Bildschirmausschnitt begrenzt werden, indem eine Start- und Endzeile angegeben wird. Z. B. kann angegeben werden, dass nur der Bereich aktualisiert werden soll, der tatsächlich verändert wurde.
Sobald eine Sperre aufgelöst wurde, können Sie wieder die Drawing Primitives (einfachste Grafikfunktionen, wie PSET, LINE, CIRCLE etc.) einsetzen; der direkte Zugriff via SCREENPTR ist jedoch nicht mehr möglich.
SCREENLOCK und SCREENUNLOCK müssen immer paarweise verwendet werden. Bei jeder Verwendung von SCREENLOCK wird ein interner Zähler hochgezählt und bei SCREENUNLOCK wieder reduziert. Wenn dieser Zähler auf 0 steht, dann ist die Bildschirmseite entsperrt.
ACHTUNG: Während der Bildschirm gesperrt ist, sollten nur Zeichenbefehle aufgerufen werden. Input/Output und Wartebefehle müssen vermieden werden. Unter Win32 und Linux wird der Bildschirm gesperrt, indem der Thread gestoppt wird, der auch für die Events des Betriebssystems zuständig ist. Wenn der Bildschirm für längere Zeit gesperrt bleibt, kann das System instabil werden.
Beispiel:
' SCREENLOCK/-UNLOCK macht nur mit Grafikscreens Sinn
ScreenRes 300, 100, 32
' ohne SCREENLOCK/-UNLOCK
Do
Cls
Locate 2, 2 : Print "Ausgabe"
Locate 4, 2 : Print "Ein Text"
Locate 6, 2 : Print "Dieser Text flackert"
Sleep 1 'Auslastung senken
Loop Until InKey = Chr(32) ' auf Druck der Leertaste warten
'mit SCREENLOCK/-UNLOCK
Do
ScreenLock
Cls
Locate 2, 2 : Print "Ausgabe"
Locate 4, 2 : Print "Ein Text"
Locate 6, 2 : Print "Dieser Text flackert nicht"
ScreenUnLock
Sleep 1
Loop Until InKey = Chr(32) ' auf Druck der Leertaste warten
Unterschiede zu QB: neu in FreeBASIC
Plattformbedingte Unterschiede:
In DOS reagiert der Mauszeiger nicht auf Mausbewegungen, solange der Bildschirm gesperrt ist.
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht SCREENUNLOCK nicht zur Verfügung und kann nur über __SCREENUNLOCK aufgerufen werden.
Siehe auch:
SCREENRES, SCREENLOCK, SCREENPTR, Grafik
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|