startline
Необязательный аргумент, указывающий первую линию
обновления экрана. Если этот параметр опущен, предполагается линия верхней
части экрана.
endline
Необязательный аргумент, указывающий последнюю линию
обновления экрана. Если этот параметр опущен, предполагается линия нижней
части экрана.
ScreenUnlock разблокирует текущую рабочую страницу, предполагая
, что она ранее была заблокирована вызовом
ScreenLock
и позволяет регулярно перезагружать систему обновления экрана. При вызове с
start_line
и
end_line , предполагается изменение и обновление области экрана
только между этими линиями.
Существует внутренний счетчик, который помнит состояние блокировки экрана,
таким образом,
ScreenUnlock влияет только на экран, который
заперт. Экран, который не был заблокирован с
ScreenLock не
может получить разблокировку, однако
ScreenUnlock будет
по-прежнему принудительно обновлять данную область или полноэкранный режим.
Вызовы
ScreenUnlock должны работать в паре с соответствующим
вызовом
ScreenLock.
Только первый вызов
ScreenLock
фактически выполняет операцию блокировки. Последующие вызовы
ScreenLock
только увеличивают счетчик блокировки. И наоборот,
ScreenUnlock
только уменьшает счетчик блокировки, пока он не достигнет нуля, в это
время будет выполняться фактическая процедура разблокировки. Использование
Screen
или
ScreenRes обнуляет все
блокировки и устанавливает счетчик блокировки на ноль перед изменением
режимов экрана.
Все графические операторы автоматически блокируют экран до вызова функции, и
делают разблокировку экрана после этого, так что вам не нужно делать это
явно с помощью
ScreenLock
и
ScreenUnlock. Вам нужно заблокировать экран тогда, когда
вы хотите получить доступ к экрану (фрейм-буферу) непосредственно с помощью
ScreenPtr
или когда вы хотите объединить несколько графических операторов вместе,
из-за того, что их эффекты проявляются одновременно на экране, и это
позволяет избежать потенциального мерцания экрана во время обновления
экрана.
Внимание (Win32, Linux) : Экран блокируется, останавливая поток, который
обрабатывает также события ОС . Это означает, что экран должен быть
заблокирован только в течение короткого времени, необходимого, чтобы
перерисовать его, и события пользователя не будут получены в то время пока
экран заблокирован. Если время блокировки становится слишком длинным, лучше
используйте метод двойной буферизации (с
ScreenCopy).
См. также