FreeBASIC Screenunlock
目次→描画ライブラリー参考→描画画面関連→SCREENUNLOCK←オリジナル・サイト
作業ページのフレームバッファをロック解除します。
構文:
用法:
Screenunlock [ start_line ] [, end_line ]
パラメタ:
startline
任意の引数で、更新するための最初の画面の線を指定します。
省略すると、画面の先頭の線が既定になります。
endline
任意の引数で、更新するための最後の画面の線を指定します。
省略すると、画面の下部の線が、既定になります。
記述:
Screenunlock は、以前に
Screenlock を呼んでロックされた、現在の作業ページを、ロック解除します。そして、システムを、定期的に画面を更新するように再開させます。
start_line と
end_line を指定して呼ぶと、それらの線の間の画面領域だけが変更の対象となって、更新されます。
画面ロックの状態を覚えている内部のカウンタが、存在しています。従って、 Screenunlock は、ロックされている画面だけに影響を与えます。
Screenunlock でロックされていない画面のロックを解除することはできません。しかし、Screenunlock は、特定の領域か全画面の更新を強要します。
Screenunlock の呼び出しは、対応する
Screenlock の呼び出しと、対にしなければなりません。
最初の
Screenlock の呼び出しだけが、実際にロック作業を実行します。
その後の
Screenlock の呼び出しは、カウンタを増加させるだけです。
逆に、
Screenunlock は、ロック・カウンタがゼロに達するまでは、カウンタを減少させるだけです。ロック・カウンタがゼロに達すると、実際のロック解除が実行されます。
Screen (描画) や
Screenres を使うと、画面モードを変更する前に、すべてのロックが解除されて、ロック・カウンタはゼロに戻されます。
すべての描画命令文は、自動的に関数呼び出しの前に画面をロックします。その後、画面のロックを解除するので、明示的に
Screenlock と
Screenunlock を使う必要はありません。
明示的に画面をロックする必要があるのは、
Screenptr を使って、直接、画面(framebuffer)にアクセスしたいときか、あるいは、描画命令文の影響が同時に画面に現れるように、いくつかの描画命令文を集めたいときだけです。こうして、画面更新の間、画面のちらつきの可能性を回避します。
警告(
Win32、Linux):
画面は、OS のイベントを処理するスレッドを止めることによって、また、ロックされます。
これは、画面が、画面を描き直すために必要な短い時間の間に限って、ロックすべきことを、意味します。画面がロックされている間は、ユーザー入力は受け取られません。
誘導されたロック時間があまりに長くなるときは、ダブル・バファリング(
Screencopy で)の方法を使うことを推奨します。
例:
方言差:
-
-lang qb 方言では、別名__Screenunlock と共に参照をつけない場合、利用できません。
QBからの違い:
参照:
ページ歴史:2023-07-09 01:02:09
日本語翻訳:WATANABE Makoto、原文著作者:SysOp