ウィンドウを表示する

	stop

stopプログラムの流れを止めるものです。 HSPでは無条件に640×480サイズのウィンドウが作成されます。 なお、stopで止めなければプログラムは終了してしまいます。


	screen 0,200,200
	stop

screen命令でウィンドウを初期化することができます。 これで、任意の大きさのウィンドウを作成できます(正確には違うが・・・)。 今回の作成した大きさは200×200です。 プログラムの途中で何度でも初期化できます。


	screen 0,200,200
	screen 2,200,200
	stop

ウィンドウIDについて説明します。 screen命令の後にかかれる数字で、0、2というのがウインドウを複数作った時に ウィンドウを区別するための番号(ウィンドウID)です。ここで、何故0の次が1ではなく 2を使っているのか不思議だとは思いませんか?これはHSPの決まりで、ウィンドウidは 0と2〜31を自由に使ってよい…つまり、ウィンドウID1は使ってはいけない ことになっています。実際に使っても普通にウィンドウは表示されますが、後々トラブルの 原因になるので、ウィンドウID1は使わないようにしましょう。

作成された二つのウィンドウを見比べると、少し雰囲気が違うのがわかると思います。 ID0のウィンドウにはアイコン、および、右上に三つのボタンがあるということです。 見た目ではわかりませんが、ID2(以降)のウィンドウは、マウスを使って ウィンドウサイズを小さくすることができます(大きくはできません)。そのときには スクロールバーが現れてスクロール表示することができます。

ウィンドウID0だけが特殊なウィンドウと考えるといいかもしれません。


	screen 0,200,200,0,0,0
	screen 2,200,200,1,200,0
	screen 3,200,200,2,400,0
	screen 4,200,200,4,0,200
	screen 5,200,200,8,200,200
	screen 6,200,200,16,400,200
	stop

いろいろなウィンドウを作って並べてみました。 これらは4つ目の数字(以降命令の数字を第?パラメータと呼びます)によっていろいろ変えられます。

0:フルカラーモード
1:パレットモード
2:非表示
4:サイズ固定(マウスで小さくできない)
8:ウィンドウ上部が狭い、タスクバーに表示されない
16:深い縁

0,1については専門用語解説を参照のこと
2の非表示は何に使うのか?アイデア次第です(^^;
8のタスクバーに表示されないというのは、ソフトを起動すると画面の下の方に、起動した ソフトがわかるようになっている部分に表示されないということです。
これらは、組み合わせて使うことも可能です。例えば24(=8+16)と指定すると、8と16が 組合わさったウィンドウが作成されます。 ただし、ID0は特殊なので、8と16のパラメータを指定しても意味がありません。

第5,6パラメータはウィンドウの表示位置を指定します。
実行結果をみて気がついたかもしれませんが、ウィンドウの位置が微妙に重なっています。 プログラムではウィンドウのサイズを200×200で指定し、表示位置を200や400にしているのですが・・・ これは、第2,3パラメータのウィンドウサイズが白い部分のサイズを指定していて、外側の灰色や青の部分の サイズまで考えられていないからです。普段は気にならない誤差だと思います。


	screen 0,200,200,0,0,0
	screen 2,640,480,0,200,0,200,200
	stop

なにやらパラメータが増えてきましたが… 第7,8パラメータでは、実際の表示部分の大きさを指定します。

第2,3パラメータ:表示可能な最大のサイズの指定
第7,8パラメータ:実際の表示サイズ

実行結果を見てもらったほうがわかりやすいと思います。ID2のウィンドはマウスで大きくも 小さくもできるはずです(最大640×480まで)。なお、第4パラメータに サイズ固定を指定してしまうと意味が無いかも…ID0には第7,8パラメータは意味がありません。 滅多に第7,8パラメータは使用しないと思います。つまり、第2,3パラメータでウィンドウサイズ を決めると思っていても問題は無いと思います。


	screen 0,200,200,0,0,0
	bgscr 2,200,200,0,200,0
	stop

さて、新しい命令bgscrです。枠のないウィンドウを作成します。第4パラメータ には0,1(フルカラーか、パレットか)しか指定できない(とhelpには書いてあるが普通に16とか指定できます) 以外はscreen命令と同じです。 ただし、(やはりというべきか?)ID0にこの命令を使っても意味がありません。 ウィンドウID2以降に対して使いましょう。 しかし、この命令を使用するのはスクリーンセーバーとフルスクリーンのゲーム くらいでしょう…


	screen 0,200,200,0,0,0
	buffer 2,200,200,0
	stop

実行してみてください。ID0のウィンドウしか表示されませんね。 buffer命令は、目に見えないウィンドウを作成します。 これはscreen命令の第4パラメータに2を指定したのと同じような感じですが、目的が 違います。詳しいことは別な部分で説明しようと思います。なお、一度bufferで 初期化すると、そのウィンドウIDを再び、screenやbgscrで初期化することはできません。 また、パラメータも4つしかありません。よってbuffer命令はちょっと特殊です。


■ 目次へ戻る ■

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!