Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - SCREENLOCK

Referenz-Navigation

 

Syntax: SCREENLOCK
Typ: Anweisung
Kategorie: Grafik

SCREENLOCK sperrt den Zugriff auf eine Bildschirmseite.

Die Anweisung SCREENLOCK sperrt den direkten Zugriff auf die aktive Bildschirmseite. Sobald eine Bildschirmseite gesperrt wurde, werden die Daten vom Video-RAM nicht mehr automatisch auf den Bildschirm übertragen, und die Änderungen durch jegliche Grafikbefehle (z.B. Drawing Primitives wie BefehlsreferenzeintragPSET, BefehlsreferenzeintragLINE, BefehlsreferenzeintragCIRCLE, etc.) sind nicht mehr sichtbar, solange die Seite nicht mit BefehlsreferenzeintragSCREENUNLOCK entsperrt wurde.
Während die aktive Seite gesperrt ist, können Sie ihren Speicherbereich frei lesen und beschreiben; Sie müssen die Seite mit SCREENUNLOCK entsperren, um die Änderungen zu aktualisieren.
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. Aus diesem Grund sollten Sie eine Seite so kurz wie möglich gesperrt halten.


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 Befehlsreferenzeintrag-lang qb steht SCREENLOCK nicht zur Verfügung und kann nur über __SCREENLOCK aufgerufen werden.

Siehe auch:
BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragSCREENUNLOCK, BefehlsreferenzeintragSCREENPTR, BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 31.07.2007 von RedakteurJojo angelegt.
  • Die aktuellste Version wurde am 21.12.2012 von Redakteurnemored gespeichert.
  Versionen Versionen