以前「cnt」という繰り返しをカウントする「システム変数」を説明しました。
システム変数にはこのほかにもいろいろあります。
すべては説明できません。よく使うシステム変数のみ紹介していきます。
この他は「プログラミング・マニュアル・言語仕様ガイド」内に載ってますのでご覧ください。
「stat」は命令を実行したあとに、いろいろなステータス(値)がはいります。
命令が正常に終了したか否か、ダイアログボックスのどのボタン(はい、いいえ等)が押されたかなど。
例として配置したボタンのうちどれが押されたか判定するプログラムを書いてみます。
button "0",*click
button "1",*click
button "2",*click
button "3",*click
button "4",*click
stop
*click
mes "ボタン「" + stat + "」が押されました。"
stop
「stat」は命令を実行させればそのつど変化していくので、
どれが押されたかと言う情報を残しておきたい場合実行直後別の変数に代入しましょう。
「dispx」は今アナタが使用しているパソコンの画面の横幅(x方向の解像度)が入ります。
同じように「dispy」はパソコンの画面の高さ(y方向の解像度)が入ります。
この二つがわかれば作成したウィンドウが他のパソコンで画面外にはみ出ることはなくなりますね。
例として縦横のサイズが共に画面の半分になるようにウィンドウサイズを変更してみます。
width dispx/2,dispy/2 ; 仮に800*600ドットならサイズは400*300ドットになる
mes "ディスプレイサイズは" + dispx + "×" + dispy + "です"
stop
次は「mousex」「mousey」です。マウスカーソルの座標がそれぞれに入ります。
リアルタイムでカーソルの座標を取得するには繰り返し処理をしましょう。
ただココで言うマウスカーソルの座標は画面(スクリーン)の左上からではなく、
現在実行中のHSPのウィンドウの左上を0,0とした座標になります。
ウィンドウ外に出ても座標はマイナス値やウィンドウサイズ以上になることはありません。
repeat
title "x = " + mousex + " y = " + mousey
wait 1
loop
以前も説明したように繰り返し処理内には必ずウエイトを入れましょう。
正常に取得できないほかにタスクを占有してしまい終了すら出来なくなります。
HSPウィンドウ内の描画基点(左上)座標の設定はpos命令で出来ますが、取得する命令がありません。
コレは取得できないということを意味しているのではなく、システム変数「csrx」「csry」に入ってます。
pos 100, 50
mes "現在のカレントポジションは(" + csrx + ", " + csry + ")"
stop
次は「winx」「winy」です。現在描画先のウィンドウのサイズがそれぞれ入ります。
今は一つしかウィンドウを扱っていないので「描画先のウィンドウ」は考える必要はありません。
例として消えゆくウィンドウのスクリプトを書きます。
size = winy ; 初期yサイズは480ドットです
repeat
width , winy - 10 ; xサイズは初期の640ドット,yは(現在のyサイズ-10)ドット
if winy = 0 : break
wait 1
loop
次に「windir」を説明します。
この変数にはWindowsがインストールされているパス(フォルダ名)が入ります。
イジっていなければ「c:\windows」になると思います。
「curdir」は作成中のスクリプトのあるパス・作成し実行中のEXEのパスが入ります。
今まで画像や音楽を指定する時、ファイルの名前のみ指定して来ました。
普通ファイル名を指定するときはドライブ・フォルダ名を含むフルパス(絶対パス)指定しないとダメですが、
このcurdirとソレより下の層にあるファイルの指定はcurdirからの相対パスでもOKです。
もし、HSPを「c:\hsp」にインストールしたなら、
下記スクリプトは「c:\hsp\sample\demo\hsp2ttl.jpg」と書いたのと同じことになります。
picload "sample\\demo\\hsp2ttl.jpg"
stop
「exerdir」は作成中のスクリプトの時にはhsed2.exeのあるパスが入り、
EXE化して実行すると、そのEXEのパスになりますので注意してくださいね。
mes "windir = " + windir
mes "curdir = " + curdir
mes "exedir = " + exedir
stop
サイズに関する「strsize」、名前に関する「refstr」、エラーに関する「err」、
色に関する「rval」と「gval」と「bval」は次章の「ファイル操作」で順次説明します。
わかりにくいところがあれば掲示板に書いてください。