| button font if input objsize pos screen sdim 演算 |
button button "name",*label [ボタン表示] "name" : ボタンの名前 *label : 押した時にジャンプするラベル名 説明 カレントポジションにオブジェクトとして押しボタンを配置します。 ボタンには、"name"で指定された文字列が書かれ、マウスでボタンをクリックすると、 *labelで指定した場所にプログラムの制御が移ります。 オブジェクトの大きさはobjsize命令で指定することができます。 ボタンを配置すると、カレントポジションは次の行に自動的に移動します。
font
font "fontname",p1,p2 [フォント設定]
p1=1〜99(12) : フォントの大きさ
p2=0〜(0) : フォントのスタイル
説明
mesおよびprint命令などで表示するテキスト書体の設定をします。
"fontname"でフォントの名前を指定します。
フォント名は、"MS 明朝"、"MS ゴシック" などのフォント名を直接指定してください。
フォントの大きさはドット数に比例した論理サイズで指定します。
数が大きいほど、文字も大きくなります。
フォントのスタイルは、
スタイル 1 太文字
スタイル 2 イタリック体
スタイル 4 下線
スタイル 8 打ち消し線
スタイル16 アンチエイリアス
となります。
数値を合計することで複数のスタイルを同時に指定することも可能です。
p2を省略すると、0(通常のスタイル)になります。
スタイル16を指定すると、文字の縁にあるギザギザが消えて滑らかな表示になります。
ただし、画面モードがフルカラーで初期化されている必要があるほか、
ビデオカードのドライバや環境によってサポートされないこともあるので、
必ずしも反映はされないという点にご注意下さい。
(画面のプロパティ「効果」で「スクリーンフォントの縁を滑らかにする」がチェックされていると、
動作する場合などもあります)
初期設定やシステム指定のフォントに戻すには、sysfont命令を使用してください。
また、オブジェクトのフォントを変更する場合には、objmode命令でモードの指定を行なう必要があります。
if
if p1 [条件を満たしていればその行の命令を実行]
p1 : 条件式
説明
p1の条件式が満たされていれば、それ以降の命令を実行する。
満たされていない場合は、次の行に移ります。
BASICと違い、その行の次の命令との間には:(コロン)を入れなければいけないので注意してください。
例:
a=10
if a=10 : mes "aは10です。"
上の例では、「a=10」の部分が条件式になります。条件式には主に、
a=b aとbは等しい
a!b aとbは等しくない
ab aはbよりも大きい
a<=b aはbよりも小さいか等しい
a>=b aはbよりも大きいか等しい
を使います。
if+条件式の後は:(コロン)で区切り、それに続いて条件が満たされた場合に実行される部分を書きます。
(C言語やJavaと同じように「=」「!」を「==」「!=」のように記述することも可能です)
もし、条件によってプログラムの流れを変えたい場合には、
例:
a=10
if a>10 : goto *over10
mes "aは10以下です。"
stop
*over10
mes "aは10より大きいです。"
stop
上のように、goto命令で別なラベルに飛ばすことも可能です。
また、else命令を使って条件が満たされなかった場合の処理を同じ行に書くことも可能です。
例:
a=10
mes "aは、"
if a=10 : mes "10です。" : else : mes "10ではありません。"
stop
この場合は、else命令のある部分までは、条件を満たした場合に実行され、
else命令以降は、条件を満たされなかった場合に実行されます。
次の行以降は、条件に関わらず通常通りに実行されます。
より複雑な条件判断をするために、論理演算式を使うこともできます。
a&b aとbがともに正しい (and)
a|b aとbのどちらかが正しい (or)
これによって複数の条件を一度に記述することができます。
例:
a=10:b=20
if (a=10)|(b=10) : mes "aかbのどちらかが10です。"
上の例では、「a=10」と「b=10」という条件式を|(or)でつないで、
どちらかが正しい場合には、正しいという結果が出るようにしています。
論理演算は、「|」「&」といった記号の他に「or」「and」という文字列でも記述することができます。
例:
if (a=10)or(b=10) : mes "aかbのどちらかが10です。"
上のように書いても、結果は同じになります。
if命令の条件が正しい時に実行されるスクリプトを複数行に渡って記述する場合は、
例:
a=10
if a>5 {
mes "TRUE"
mes "(MULTILINE IF)"
}
のように「{」で始めて「}」で終わる部分までを指定します。
(上の例では、見やすくするためにC言語風に行の最初にTABを入れてありますが、
特に必要なものではありません。ユーザーの見やすいように記述してください)
else命令でも複数行の指定ができます。
例:
a=10
if a>5 {
mes "TRUE"
mes "(MULTILINE IF)"
}
else {
mes " FALSE"
mes " (MULTILINE IF)"
}
return
ただし、elseの後に「{」を記述しなければ複数行にはならないので注意してください。
input input p1,p2,p3,p4 [入力ボックス表示] p1=変数 : 入力のための変数 p2,p3 : メッセージボックスのサイズ(ドット単位) p4=0〜 : 入力できる最大文字数 説明 カレントポジションにオブジェクトとして入力ボックスを配置します。 p2,p3で大きさを指定して、場所はカレントポジションからになります。 p2,p3が省略された場合は、 objsizeで指定されたサイズになります。 入力ボックスは、キーボードから直接入力することのできる小さな窓です。 マウスで入力ボックスをクリックしてカーソルを出した状態で、 キーボードからパラメータを入力することができるようになります。 入力した値は、p1で指定した変数に代入されます。 もし、p1の変数が文字列型だった場合には入力した文字列が、 数値型だった場合には入力した値がそのまま変数に反映されます。 入力ボックスは初期状態では、p1で指定した変数に代入されていた値が、ボックス内に表示されます。 p4で、入力できる最大文字数を指定することができます。 p4が省略された場合には、p1で指定された変数に格納できる最大文字数が自動的に割り当てられます。 入力ボックスを配置すると、カレントポジションは次の行に自動的に移動します。
objsize objsize p1,p2,p3 [オブジェクトサイズ設定] p1=64〜(64) : オブジェクトのX方向のサイズ(ドット単位) p2=8〜(24) : オブジェクトのY方向のサイズ(ドット単位) p3=0〜(0) : Y方向の最低確保行サイズ (ドット単位) 説明 ボタンや入力ボックスなどのオブジェクトの大きさを設定します。 p3でボタンやメッセージが置かれた後にカレントポジションが移動する最低量を指定することができます。 これにより、ボタンとメッセージを連続して置いた時に同じ大きさでスペースが空くようになります。 画面がクリアされると、オブジェクトサイズは自動的にデフォルトに戻ります。
pos pos p1,p2 [カレントポジション設定] p1,p2 : カレントポジションのX,Y座標 説明 メッセージ表示、オブジェクトの表示などの基本座標となるカレントポジションの座標を指定します。 Xは一番左が0に、Yは上が0になり、1ドット単位の指定になります。 パラメータの省略をすると、現在の値が使われます。
screen
screen p1,p2,p3,p4,p5,p6,p7,p8 [ウインドゥIDを初期化]
p1=0〜31(0) : ウインドゥID
p2,p3 : 初期化する画面サイズX,Y(1ドット単位)
p4=0〜1 : 初期化する画面モード
p5,p6 : ウインドゥの配置X,Y(1ドット単位)
p7,p8 : クライアントエリアのサイズX,Y(1ドット単位)
説明
指定したウインドゥIDを初期化して使用できるようにします。
HSPの初期状態では、ウインドゥID0の画面しか使用されていませんが、
ウインドゥID2〜31までを自由に使ってウインドゥやメモリ上の仮想画面を作成することができます。
screen命令を使うと、ディスプレイ上に新しいウインドゥが作成されます。
このウインドゥはサイズを自由に変えられ、スクロールバーを付加し内容をスクロールさせることができます。
p4の初期化する画面モードは、以下から選ぶことができます。
1 = パレットモード(1670万色中256色)で作成する
2 = 非表示のウインドゥを作成する
4 = サイズ固定ウインドゥ
8 = ツールウインドゥ
16 = 深い縁のあるウインドゥ
p4パラメータに「+1」(パレットモードで作成する)を指定した場合は、
パレットあり256色のモードで画面が作成されます。
このモードを指定しなかった場合は、フルカラー(24bitカラー)の画面が作成されます。
p4パラメータに「+2」(非表示のウインドゥを作成する)を指定した場合は、
実行時にはウインドゥが表示されませんが、「gsel ID,1」で表示させることが可能です。
p4パラメータのうち「+4」「+8」「+16」はそれぞれウインドゥのスタイルを設定するためのものです。
「サイズ固定ウインドゥ」は、ID2以降のウインドゥでも、
ID0のウインドゥと同様のサイズ変更が不可能なスタイルで作成されます。
「ツールウインドゥ」は、
タイトルバーのサイズが小さくなりタスクバーにウインドゥ名が表示されないウインドゥが作成されます。
p4パラメータが省略された場合は、現在のWindows画面モードがパレットあり(256色)の場合は
パレットモードで作成され、そうでない場合はフルカラーの画面として作成されます。
画面モードの値は、値を合計することで複数の設定を行なうことができます。
たとえば、
screen 2,320,240,4+8
は、サイズ固定+ツールウインドゥのスタイルを持ったものが作成されます。
screen命令は、すでに初期化されているウインドゥIDをふたたび別の設定で再初期化することも可能です。
例:
screen 0,640,480,1
上の例では、ウインドゥID0、つまりメインウインドゥを 640x480ドット、パレットモードで再初期化します。
p7,p8のパラメータで、ウインドゥのクライアントサイズ (実際に表示される大きさ)を指定することができます。
クライアントサイズが初期化サイズよりも小さい場合には、スクロールバーが付加されます(ID1〜31のみ)。
screen命令で画面を初期化した後はそのウインドゥIDが画面制御命令の描画先になります。
sdim
sdim p1,p2,p3... [配列文字列型変数を作成]
p1=変数 : 配列を割り当てる変数名
p2=1〜 : 1つの要素あたりの最大文字数
p3=0〜 : 要素の最大
説明
文字列型の配列変数を作成します。
dim命令との違いは、p2のパラメータは「文字列の最大文字数」、
p3のパラメータ以降に実際の配列要素の最大数を入れるところです。
例:
sdim a,64,5 ; 変数aは1次元の文字列型配列変数
上の例では、変数aは64文字までのa.0〜a.4が使用可能になります。
dim,sdim命令はスクリプト内のどこででも定義・再定義することが可能です。
また、配列変数を作成すると内容はすべて0にクリアされます。