リファレンス 39 ドキュメント 7 サンプル 38
標準機能 338 arduino 12 Artlet2D 55 d3module 29 encode.as 8 form_decode 1 hgimg3 155 hgimg3,hgimg4 90 hgimg4 54 hsedsdk 36 HSP3Dish 17 hsp3imp 4 hsp3util 17 hspcmp 21 hspcv 31 hspda 23 hspdb 8 hspdsc.dll 53 hspdsp.dll 140 hspext 59 hspinet 58 hspmath 41 hspprint 6 hspsmart.dll 45 hspsock 12 hsptv 2 hspusbio 6 hspycp.dll 5 mod_fontdlg 1 mod_img 1 mod_joystick 2 mod_menu 3 mod_picfont 2 mod_regexp 4 mod_rss 1 modclbk3 3 obaq 51 obj 4 SQLele 18

標準機能

Version 3.5 Date 2017/09/16 Author onitama
Version 3.5 Date 2017/09/13 Author onitama
Version 3.5 Date 2017/09/08 Author onitama
Version 3.5 Date 2016/07/13 Author onitama
Version 3.5 Date 2016/07/06 Author onitama
Version 3.5 Date 2015/02/25 Author onitama
Version 3.4 Date 2014/07/16 Author onitama
Version 3.4 Date 2013/12/09 Author onitama
Version 3.4 Date 2009/08/01 Author onitama
Version 3.3 Date 2011/05/10 Author onitama

目次 (20 グループ / 338 ページ)

COMオブジェクト操作命令 6
COMオブジェクト操作関数 1
HSPシステム制御命令 2
オブジェクト制御命令 14
システム変数 63
ファイル操作命令 10
プリプロセッサ命令 34
プログラム制御マクロ 13
プログラム制御命令 23
マルチメディア制御命令 4
メモリ管理命令 16
メモリ管理関数 3
基本入出力制御命令 10
基本入出力関数 34
数学定数 1
文字列操作命令 12
文字列操作関数 9
標準定義マクロ 39
特殊代入命令 3
画面制御命令 41

COMオブジェクト操作命令

comevarg
COMイベントのパラメーターを取得
p2で指定された変数(COMオブジェクト型)のイベントサブルーチン内で、イベントのパラメーター(引数)を取得します。 p2で指定された変数は、comevent命令により初期化されている必要があります。 取得は必ず、イベントサブルーチン内で行なう必要があります。
comevent
COMイベントの取得開始
p1で指定された変数をイベント処理を行なうためのCOMオブジェクト型として初期化します。 p2で指定された変数(COMオブジェクト型)から任意のイベントを取得して準備を行ないます。 p2で指定されたCOMオブジェクトは、すでにnewcom命令により初期化されている必要があります。
delcom
COMオブジェクト型変数の破棄
p1で指定したCOMオブジェクト型の変数のインスタンスを削除します。 p1は、newcom命令によってすでにCOMオブジェクト型が設定されている変数である必要があります。
newcom
COMオブジェクト型変数の新規作成
p1で指定した変数をCOMオブジェクト型として初期化を行ないます。 p1の変数がCOMオブジェクト型でない場合は、COMオブジェクト型として初期化されます。 すでにCOMオブジェクト型の場合、以前のオブジェクトは破棄されます。
querycom
COMオブジェクト型変数の作成
p2で指定されたCOMオブジェクト型変数のインターフェースに対して、別なインターフェースを問い合わせ、p1で指定した変数をCOMオブジェクト型として初期化を行ないます。 p1の変数がCOMオブジェクト型でない場合は、COMオブジェクト型として初期化されます。
sarrayconv
Variant型との一括変換を行なう
Variant型との一括変換を行ないます。 p3のモードにより、変換のモードを指定することができます。 指定できるモード値は以下の通りです。 p3  内容 0 列変数p2全体からSafeArrayを作成し、Variant型変数p1に 格納します。

COMオブジェクト操作関数

comevdisp
COMイベントの内容を確認
p1で指定された変数(COMオブジェクト型)のイベントサブルーチン内で、イベントのディスパッチID(DISPID)を取得します。 p1で指定された変数は、comevent命令により初期化されている必要があります。 また、取得は必ずイベントサブルーチン内で行なう必要があります。

HSPシステム制御命令

assert
デバッグウィンドウ表示
プログラムを一時的に中断してデバッグウィンドウを表示します。 p1に条件式が指定された場合には、p1の条件が正しくない場合にのみデバッグウィンドウを表示します。 (p1には、通過する時の条件式を書くことになるので注意してください。
logmes
デバッグメッセージ送信
デバッグウィンドウ表示時に、"message"の内容をデバッグログに記録します。 ある時点での変数の内容や、通過チェックなどに利用できます。 スクリプトエディタからデバッグウィンドウの表示モードを設定するか、assert命令によってデバッグウィンドウを表示させておく必要があります。

オブジェクト制御命令

button
ボタン表示
カレントポジションにオブジェクトとして押しボタンを配置します。 ボタンには、"name"で指定された文字列が書かれ、マウスでボタンをクリックすると、*labelで指定した場所にプログラムの制御が移ります。 button gotoと記述した場合は、ラベルにジャンプ。
chkbox
チェックボックス表示
カレントポジションにオブジェクトとしてチェックボックスを配置します。 チェックボックスには、"strings"で指定した文字列の左側に、カーソルでON/OFFを切り替えることのできるスイッチがついたオブジェクトです。
clrobj
オブジェクトをクリア
button命令やmesbox命令などで出したオブジェクトを消去します。 p1,p2を省略して、 clrobjだけを実行させると画面上のオブジェクトがすべて消去されます。
combox
コンボボックス表示
カレントポジションにオブジェクトとして、コンボボックスを配置します。 コンボボックスは、複数の文字列要素の中から1つを選択させることのできる入力オブジェクトです。 オブジェクトの大きさは、objsize命令で設定した大きさになります。
input
入力ボックス表示
カレントポジションにオブジェクトとして入力ボックスを配置します。 p2,p3で大きさを指定して、場所はカレントポジションからになります。 p2,p3が省略された場合は、objsizeで指定されたサイズになります。 入力ボックスは、キーボードから直接入力することのできる小さな窓です。
listbox
リストボックス表示
カレントポジションにオブジェクトとして、リストボックスを配置します。 リストボックスは、複数の文字列要素の中から1つを選択させることのできる入力オブジェクトです。 オブジェクトの大きさは、objsize命令で設定した大きさになります。
mesbox
メッセージボックス表示
ウィンドウ上にオブジェクトとして、 メッセージボックス(メッセージ表示用の窓)を配置します。p2,p3で大きさを指定して、場所はカレントポジションからになります。 メッセージボックスのスタイルに設定する値(p4)は、以下の通りになります。
objenable
オブジェクトの有効・無効を設定
p1で指定したオブジェクトIDの状態を変更します。 p2で指定した値が0ならば、オブジェクトは無効化されます。 無効化されたオブジェクトは、画面上に存在しますが色が変更され、操作することはできなくなります。 p2で指定した値に0以外を指定すると、通常通りの有効なオブジェクトとなります。
objimage
カスタムボタンの設定
カスタムボタンを配置するための設定を行ないます。 カスタムボタンは、button命令で作成される押しボタンのオブジェクト外観を任意の画像に置き換えることができます。 カスタムボタンを作成するためには、あらかじめボタンとして表示するための画像を用意しなければなりません。
objmode
オブジェクトモード設定
button,input,mesbox などのオブジェクト制御命令で使用されるスタイル等を設定するための命令です。 p1でフォント設定及び、スタイルに関するモードを指定することができます。 これにより、以降のオブジェクト配置命令実行時のスタイル設定が変わります。
objprm
オブジェクトの内容を変更
button命令やinput,mesbox命令などで画面上に配置したオブジェクトの持つ内容やパラメータを変更します。 p1には、オブジェクトIDを指定します。オブジェクトIDは、 0から順番に画面上に表示したオブジェクト1つ1つに割り当てられていく番号です。
objsel
オブジェクトに入力フォーカスを設定
p1で指定したオブジェクトIDに入力フォーカスを合わせます。 入力フォーカスを合わせることにより、 mesbox命令やinput命令で配置した入力ボックスの中に入力カーソル(キャレット)を出すことができます。
objsize
オブジェクトサイズ設定
ボタンや入力ボックスなどを配置する時のオブジェクトの大きさを設定します。 p3でボタンやメッセージが置かれた後にカレントポジションが移動する最低量を指定することができます。これにより、ボタンとメッセージを連続して置いた時に同じ大きさでスペースが空くようになります。
objskip
オブジェクトのフォーカス移動モードを設定
p1で指定したオブジェクトIDのフォーカス移動モードを設定します。 フォーカス移動モードは、[TAB]キーにより配置されたオブジェクトを移動させる場合の挙動をオブジェクトごとに指定するものです。 p2でモード値を指定します。モード値の詳細は、以下の通りです。

システム変数

cnt
ループのカウンター
repeat~loopループのカウンターが整数値で代入されます。
dir_cmdline
コマンドライン文字列
実行時に渡されたコマンドライン文字列が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_cur
カレントディレクトリ(フォルダ)
現在のカレントディレクトリ(フォルダ)のパスが文字列で代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_desktop
デスクトップディレクトリ(フォルダ)
デスクトップディレクトリ(フォルダ)のパスが文字列で代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_exe
実行ファイルがあるディレクトリ(フォルダ)
ランタイム実行ファイルがあるディレクトリ(フォルダ)のパスが文字列で代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_mydoc
マイドキュメントディレクトリ(フォルダ)
マイドキュメントディレクトリ(フォルダ)のパスが文字列で代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_sys
Windowsシステムディレクトリ(フォルダ)
Windowsのシステムディレクトリ(フォルダ)のパスが文字列で代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
dir_tv
HSPTVディレクトリ(フォルダ)
HSPTVディレクトリ(フォルダ)のパスが文字列で代入されます。 HSPTVディレクトリに標準で用意されたリソースを参照する場合に使用することができます。 dir_tvは、デバッグ実行時にのみ取得され、実行(.exe)ファイルとして動作している場合は、空の文字列("")を返します。
dir_win
Windowsディレクトリ(フォルダ)
Windowsがインストールされているディレクトリ(フォルダ)のパスが文字列で代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
err
HSPのエラーコード
HSPのエラーコードです。エラーコードとメッセージの対応については、別途マニュアル(error.htm)を参照してください。
ginfo_accx
加速度センサー値(X)
加速度センサーが使用可能な環境で、センサーの値を取得します。 X軸に対する加速度を-1.0~+1.0の範囲で取得したものになります。 加速度センサーが使用できない環境では、0.0が取得されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_accy
加速度センサー値(Y)
加速度センサーが使用可能な環境で、センサーの値を取得します。 Y軸に対する加速度を-1.0~+1.0の範囲で取得したものになります。 加速度センサーが使用できない環境では、0.0が取得されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_accz
加速度センサー値(Z)
加速度センサーが使用可能な環境で、センサーの値を取得します。 Z軸に対する加速度を-1.0~+1.0の範囲で取得したものになります。 加速度センサーが使用できない環境では、0.0が取得されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_act
アクティブなウィンドウID
現在アクティブになっているウィンドウIDが代入されています。 もし、 アクティブになっているウィンドウがHSP以外の場合は-1になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_b
現在設定されているカラーコードB
color命令などにより指定された青の色コード(輝度)が代入されています。 色コードは、0~255までの整数値になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_cx
カレントポジションのX座標
pos命令により設定されたカレントポジションのX座標が代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_cy
カレントポジションのY座標
pos命令により設定されたカレントポジションのY座標が代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_dispx
デスクトップ全体のXサイズ
デスクトップ全体のサイズ(画面解像度)が代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_dispy
デスクトップ全体のYサイズ
デスクトップ全体のサイズ(画面解像度)が代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_g
現在設定されているカラーコードG
color命令などにより指定された緑の色コード(輝度)が代入されています。 色コードは、0~255までの整数値になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_intid
メッセージ割り込み時のウィンドウID
oncmd命令により設定されたメッセージ割り込み時のウィンドウIDが代入されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_mesx
メッセージの出力Xサイズ
最後にmes, print命令により出力されたメッセージのXサイズが代入されています。 サイズは、 X座標にどれだけのドット数で描画されたかを示します。 画面上の絶対座標ではないので注意してください。 また、複数行ある文字列を出力した場合は、最後の行にあたるサイズが取得されます。
ginfo_mesy
メッセージの出力Yサイズ
最後にmes, print命令により出力されたメッセージのYサイズが代入されています。 サイズは、 Y座標にどれだけのドット数で描画されたかを示します。 画面上の絶対座標ではないので注意してください。 また、複数行ある文字列を出力した場合は、最後の行にあたるサイズが取得されます。
ginfo_mx
スクリーン上のマウスカーソルX座標
スクリーン上のマウスカーソルX座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_my
スクリーン上のマウスカーソルY座標
スクリーン上のマウスカーソルY座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_newid
未使用ウィンドウID
screen命令やbuffer命令などで初期化されていない未使用のウィンドウIDが返されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_paluse
デスクトップのカラーモード
現在のデスクトップカラーモード(色モード)が代入されています。 フルカラーモードの場合は0が、パレットモードの場合は1が返されます。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_r
現在設定されているカラーコードR
color命令などにより指定された赤の色コード(輝度)が代入されています。 色コードは、0~255までの整数値になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sel
操作先ウィンドウID
gsel命令で指定した画面の操作先ウィンドウIDが代入されています。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sizex
ウィンドウ全体のXサイズ
現在の操作先ウィンドウの横幅が代入されています。 これは、ウィンドウの枠やタイトルバーなども含めたサイズになります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sizey
ウィンドウ全体のYサイズ
現在の操作先ウィンドウの縦幅が代入されています。 これは、ウィンドウの枠やタイトルバーなども含めたサイズになります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sx
画面の初期化Xサイズ
現在の操作先ウィンドウの初期化Xサイズが代入されています。 (最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。) ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_sy
画面の初期化Yサイズ
現在の操作先ウィンドウの初期化Yサイズが代入されています。 (最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。) ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_vx
ウィンドウのスクロールX座標
現在の操作先ウィンドウのスクロールX座標が代入されています。 これは、初期化サイズよりもウィンドウサイズが小さくなっている場合に、左上に表示されている座標がどれだけスクロールされているかを示す値です。 スクロールさせていない通常の状態では、(0,0)になります。
ginfo_vy
ウィンドウのスクロールY座標
現在の操作先ウィンドウのスクロールY座標が代入されています。 これは、初期化サイズよりもウィンドウサイズが小さくなっている場合に、左上に表示されている座標がどれだけスクロールされているかを示す値です。 スクロールさせていない通常の状態では、(0,0)になります。
ginfo_winx
画面の描画エリアXサイズ
現在のウィンドウ描画エリアの横幅サイズが代入されています。 (buffer命令で作成された画面の場合は、初期化された画面サイズになります。) ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_winy
画面の描画エリアYサイズ
現在のウィンドウ描画エリアの縦幅サイズが代入されています。 (buffer命令で作成された画面の場合は、初期化された画面サイズになります。) ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wx1
ウィンドウの左上X座標
スクリーン座標系で現在のウィンドウの左上X座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wx2
ウィンドウの右下X座標
スクリーン座標系で現在のウィンドウの右下X座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wy1
ウィンドウの左上Y座標
スクリーン座標系で現在のウィンドウの左上Y座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
ginfo_wy2
ウィンドウの右下Y座標
スクリーン座標系で現在のウィンドウの右下Y座標が代入されています。 スクリーン座標系は、 pos命令などで使用するウィンドウ内の座標ではなく、デスクトップ画面全体から見た座標になります。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
hdc
現在のデバイスコンテキスト
現在選択されているウィンドウのデバイスコンテキスト(ポインタ)が代入されます。 主にDLL等の外部呼出しで必要な場合に参照されます。
hinstance
現在のインスタンスハンドル
現在実行中アプリケーションのインスタンスハンドル(ポインタ)が代入されます。 主にDLL等の外部呼出しで必要な場合に参照されます。
hspstat
HSPランタイムの情報
HSPランタイムの情報が整数値で代入されます。以下の情報がすべて合計された値になります。
hspver
HSPのバージョン番号
HSP のバージョン番号が整数値で代入されます。バージョンコード + マイナーバージョンコードの値になります。
hwnd
現在のウィンドウハンドル
現在選択されているウィンドウのハンドル(ポインタ)が代入されます。 主にDLL等の外部呼出しで必要な場合に参照されます。
iparam
割り込み要因を示す値
割り込み要因を示す値が代入されます。 oncmd命令による割り込み時は、割り込みメッセージのIDが代入されます。 onexit命令による終了割り込み時は、通常のウィンドウクローズによる終了であれば0が、シャットダウン等のシステム通知による終了であれば1が代入されます。
looplev
repeatのネストレベル
repeat~loopのネストレベルが代入されます。
lparam
割り込み時のlParam
割り込み時に保存される Windows のシステム値 (lParam) が代入されます。
mousew
マウスカーソルのホイール値
ホイール付きマウスの移動量が整数値で代入されます。
mousex
マウスカーソルのX座標
マウスカーソルのX座標が整数値で代入されます。
mousey
マウスカーソルのY座標
マウスカーソルのY座標が整数値で代入されます。
msgothic
MSゴシックフォント
MSゴシックを示すフォントを示すキーワードです。 font命令で指定するフォント名として使用することができます。
msmincho
MS明朝フォント
MS明朝を示すフォントを示すキーワードです。 font命令で指定するフォント名として使用することができます。
notemax
メモリノートパッドの行数
現在選択されているメモリノートパッド全体の行数を示すシステム変数として使用することができます。 noteinfo関数でも同様の情報を取得することが可能です。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
notesize
メモリノートパッドの文字数
現在選択されているメモリノートパッド全体の文字数(byte数)を示す システム変数として使用することができます。 noteinfo関数でも同様の情報を取得することが可能です。 ※このシステム変数は、マクロとしてhspdef.as内で定義されています。
refdval
色々な命令のステータス実数値
色々な命令を実行した結果の実数値が代入されます。
refstr
色々な命令のステータス文字列
色々な命令を実行した結果の文字列が代入されます。
stat
色々な命令のステータス値
色々な命令を実行した結果(ステータス)が整数値で代入されます。
strsize
読み出しバイト数
getstr、exist、bload命令などで読み出したバイト数が代入されます。
sublev
サブルーチンのネストレベル
サブルーチン(またはユーザー定義命令、関数) のネストレベルが代入されます。
thismod
現在の有効なモジュール変数
モジュール変数処理のためのユーザー定義命令・関数内で、 渡されたモジュール変数自身を示す名称として使用することができます。 #modfuncで定義されたルーチンから、別な命令・関数を呼び出す場合に使用することができます。
wparam
割り込み時のwParam
割り込み時に保存される Windows のシステム値 (wParam) が代入されます。

ファイル操作命令

bcopy
ファイルのコピー
"filename1"のファイルを"filename2"というファイル名にコピーします。
bload
バッファにファイルをロード
ファイルの内容をメモリバッファに読み込みます。 通常は、sdim命令で確保したメモリバッファに対して使用しますが、それ以外の型を持つ変数や、配列変数に対して使うこともできます。 p2のバッファサイズを省略するかマイナス値を指定すると、自動的に変数バッファのサイズが設定されます。
bsave
バッファをファイルにセーブ
メモリバッファの内容をファイルに書き出します。 通常は、sdim命令で確保したメモリバッファに対して使用しますが、それ以外の型を持つ変数や、配列変数に対して使うこともできます。 p2のバッファサイズを省略するかマイナス値を指定すると、自動的に変数バッファのサイズが設定されます。
chdir
ディレクトリ移動
"dirname"で指定した名前のディレクトリに移動します。 指定したディレクトリが存在しないか、 書式が間違っている場合はエラー12(「ファイルが見つからないか無効な名前です」)となります。 カレントディレクトリは、システム変数dir_curで参照することができます。
chdpm
DPMファイル設定
読み込み対象となるDPMファイルを設定します。 chdpm命令が実行されると、以降は"dpmname"で指定したファイルを、DPM形式でパックされたデータとして扱います。 DPMファイルの初期化中にエラーが発生した場合は、エラー12(「ファイルが見つからないか無効な名前です」)となります。
delete
ファイル削除
"filename"で指定したファイルを削除します。 指定したファイルが存在しないか、書式が間違っている場合はエラー12(「ファイルが見つからないか無効な名前です」)となります。 delete命令を実行する前に exist命令でファイルの有無を確認するようにしてください。
dirlist
ディレクトリ一覧を取得
カレントディレクトリのファイル一覧を作成して、変数に代入します。 "filemask"で、一覧を作成するためのファイルマスクを指定します。 ファイルマスクは、「*.*」 のようなワイルドカードの形で指定するパラメータです。
exist
ファイルのサイズ取得
"filename"で指定したファイルが存在するかをチェックして、そのファイルサイズを取得します。exist命令が実行されると、システム変数strsizeに結果が反映されます。 ファイルが存在する場合は、そのファイルサイズがstrsizeに代入されます。
memfile
メモリストリーム設定
ファイルの替わりとして扱うメモリ空間を持った変数を設定します。(メモリストリーム機能) p1で指定された変数は、これ以降に「MEM:ファイル名」で指定されたファイルの読み出し元となります。 p2で、オフセット(読み出す際の先頭位置)を指定します。
mkdir
ディレクトリ作成
"dirname"で指定した名前でディレクトリを作成します。 ディレクトリは1階層先までしか作成することができません。 作成中にエラーが発生した場合はエラー12(「ファイルが見つからないか無効な名前です」)となります。

プリプロセッサ命令

#addition
別ファイルを結合2
インクルードするファイルを指定します。 ここで指定されたファイルは、もとのファイルに結合してコンパイルされます。 #include命令と同じ動作ですが、#additionはファイルが存在しない場合でも、エラーとして停止せずに続行されます。 追加の定義ファイルなどを結合する場合に使用します。
#aht
AHTファイルヘッダを記述
ソーススクリプトにAHTファイルの情報を付加します。 指定された設定名に文字列または数値を割り当てることができます。 #aht命令により、AHTファイルヘッダが付加されたソーススクリプトは、AHTファイルとして、テンプレートマネージャー等から参照することが可能になります。
#ahtmes
AHTメッセージの出力
AHTパース時に、外部へのメッセージ出力を行ないます。 主に、「かんたん入力」でエディタ上に追加されるソースコードを記述するために使用しています。 #ahtmes命令は、mes命令と同様に文字列やマクロを「+」演算子で接続させて出力することができます。
#bootopt
ランタイム起動時の設定
スクリプトランタイムの細かい動作設定を行ないます。 オプション名、の後スペース又は TAB を入れて設定スイッチ 1か0の数値を記述して下さい。 #bootoptは、スクリプト内の任意の位置に記述することが可能です。 複数の指定があった場合は、最後に設定されたものが全体の設定となります。
#cfunc
外部DLL呼び出し関数登録
外部DLLを呼び出すための新しい関数を登録します。 先に#uselib命令により外部DLL名を指定しておく必要があります。 新規名称、関数名、タイプをスペースで区切って書きます。
#cmd
拡張キーワードの登録
HSP拡張プラグインのためにキーワードの登録を行ないます。 あらかじめ、 #regcmd命令によってプラグイン初期化関数の登録を行なっておく必要があります。
#cmpopt
コンパイル時の設定
スクリプトコンパイル時の動作を指定します。 オプション名、の後スペース又は TAB を入れてパラメーター (文字列の場合は「"strings"」のように指定)を記述して下さい。 #cmpoptで指定できるキーワードは以下の通りです。
#comfunc
外部COM呼び出し命令登録
外部コンポーネント(COM)を呼び出すための新しい命令を登録します。 #comfuncは、 #usecom命令によって指定されたインターフェースのメソッドを命令として呼び出すための登録を行ないます。
#const
マクロ名の定数定義
指定されたマクロ名に置換え数値を設定します。 #defineと同様ですが、 #constは定数(数値)の置き換えを行なう場合にあらかじめ計算を行なった結果を置き換えます。
#defcfunc
新規関数を登録する
ユーザーによる新規関数を登録します。 p1に新規関数の名前を、p2以降に呼び出しパラメータタイプを指定します。 #defcfunc命令で定義した名前をスクリプト内で関数として使用することが可能になります。 新規関数は、 #defcfuncで指定された行以降が実行される内容になります。
#deffunc
新規命令を登録する
ユーザーによる新規命令を登録します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 #deffunc命令で定義した名前をスクリプト内で命令として使用することが可能になります。 新規命令は、#deffuncで指定された行以降が実行される内容になります。
#define
新規マクロを登録する
マクロ名で指定されたキーワードを指定された定義に置き換えられるようにプリプロセッサに登録をします。 #defineマクロは、 あくまで個人がスクリプトを書きやすくカスタマイズしたい場合に使うもので、初心者向きではありません。
#else
コンパイル制御を反転
#if、#ifdef、#ifndefなどのコンパイル制御区間内で、ON/OFFを反転します。 コンパイル制御についての詳細は、 #if命令のリファレンスを参照してください。
#endif
コンパイル制御ブロック終了
#if、#ifdef、#ifndefなどのコンパイル制御区間を終了します。 コンパイル制御についての詳細は、 #if命令のリファレンスを参照してください。
#enum
マクロ名の定数を列挙
指定されたマクロ名に連続した値を割り当てます。 #const命令と同様に、定数を示すマクロ名を定義することができます。
#epack
PACKFILE暗号化ファイル指定
実行ファイル自動作成(ctrl+F9)で、 packfileに追加されるファイルを指定します。指定されたファイルは、実行ファイル作成時にリソースとして一緒にパックされます。#epackは、指定ファイルを暗号化してパックします。 暗号化を行なう必要がない場合は#packをお使い下さい。
#func
外部DLL呼び出し命令登録
外部DLLを呼び出すための新しい命令を登録します。 先に#uselib命令により外部DLL名を指定しておく必要があります。 新規名称、関数名、タイプをスペースで区切って書きます。
#global
モジュールの終了
モジュール区間を終了し、以降を通常のプログラム領域に戻します。 モジュールについての詳細は、#module命令を参照してください。
#if
数値からコンパイル制御
コンパイルのON/OFFを指定します。 #ifは指定した数値が 0ならば以降のコンパイル出力をOFFにしてコンパイル結果を無視します(プログラムとして実行されません)。 数値が0以外の場合は、出力がONとなります。 このコンパイル制御は、#endifが出るまでの区間を対象にします。
#ifdef
マクロ定義からコンパイル制御
コンパイルのON/OFFを指定します。 #ifdefは指定したマクロが定義されていなければ以降のコンパイル出力をOFFにしてコンパイル結果を無視します。定義されている場合は、出力がONとなります。このコンパイル制御は、#endifが出るまでの区間を対象にします。
#ifndef
マクロ定義からコンパイル制御2
コンパイルのON/OFFを指定します。 #ifndefは指定したマクロが定義されていれば以降のコンパイル出力をOFFにしてコンパイル結果を無視します。定義されていない場合は、出力がONとなります。このコンパイル制御は、#endifが出るまでの区間を対象にします。
#include
別ファイルを結合
インクルードするファイルを指定します。 ここで指定されたファイルは、もとのファイルに結合してコンパイルされます。
#modcfunc
新規関数を割り当てる
モジュール変数を処理するための新規関数を登録します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 命令を定義した位置より以降は、指定された名前を命令語として使用することが可能です。
#modfunc
新規命令を割り当てる
モジュール変数を処理するための新規命令を登録します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 命令を定義した位置より以降は、指定された名前を命令語として使用することが可能です。
#modinit
モジュール初期化処理の登録
モジュール変数を初期化するための処理(コンストラクタ)を登録します。 オプションとして呼び出しパラメータタイプ、エイリアス名を指定することができます。 #modinitで定義した区間は、newmod命令実行時に自動的に呼び出されるようになります。
#modterm
モジュール解放処理の登録
モジュール変数を破棄するための処理(デストラクタ)を登録します。 オプションとして呼び出しパラメータタイプ、エイリアス名を指定することができます。 #modtermで定義した区間は、delmod命令実行時かモジュール変数が破棄された時、自動的に呼び出されます。
#module
モジュールの開始
#module以降の区間をモジュールとして別な空間に割り当てます。 モジュール内の変数やラベルは、モジュール外のものからは独立したものになります。 "モジュール名"は、複数のモジュールを名前で区分けする時につけることのできる名前で、モジュール名が同じもの同士は、変数名やラベル名を共有します。
#pack
PACKFILE追加ファイル指定
実行ファイル自動作成(ctrl+F9)で、 packfileに追加されるファイルを指定します。指定されたファイルは、実行ファイル作成時にリソースとして一緒にパックされます。#packは、通常の形式でパックします。 暗号化してパックしたい場合は#epackをお使い下さい。
#packopt
自動作成オプション指定
実行ファイル自動作成の動作を指定します。 キーワード名、の後スペース又は TAB を入れてパラメーター(文字列の場合は「"strings"」のように指定)を記述して下さい。 #packoptで指定できるキーワードは以下の通りです。
#regcmd
拡張プラグインの登録
HSP拡張プラグインの登録を行ないます。 初期化関数名は、 DLLからエクスポートされた名前を正確に指定しなければなりません。VC++からエクスポートした場合には、先頭に「_」が、最後に「@4」が付加されるので、それを含めた名前を記述します。
#runtime
ランタイムファイルの設定
スクリプトの実行に使用されるランタイムファイル名を設定します。 (ランタイムファイル名は、 拡張子の除いたファイルの名前部分を指定します。) スクリプトエディタからの実行時や実行ファイル作成時のランタイムを設定する場合に使用します。
#undef
マクロ名の取り消し
すでに登録されているマクロ名を取り消します。 登録されていないマクロ名に対して指定してもエラーにはならず無視されます。
#usecom
外部COMインターフェースの指定
外部コンポーネント(COM)定義を行ないます。 指定したインターフェース名に、クラスIID、インターフェースIIDを割り当てて使用可能な状態にします。 IIDは、レジストリと同様の文字列({~})で指定することができます。 また、"クラスIID"は省略することができます。
#uselib
外部DLLの指定
HSPから呼び出す外部DLLのファイル名を指定します。 DLLのファイル名は、拡張子も含めて完全に書く必要があります。 ファイル名を省略した場合は、 実行時にスクリプトからDLL名を指定してリンクを行なうことになります。

プログラム制御マクロ

_break
マクロループを脱出する
標準マクロによって定義されている繰り返しマクロ、 while~wend、do~until、for~next間のループから抜け出します。 現在以降の繰り返しブロック内は実行せずに、ループの次にある命令から再開されます。
_continue
マクロループをやり直す
標準マクロによって定義されている繰り返しマクロ、 while~wend、do~until、for~next間のループをやり直します。 現在以降の繰り返しブロック内は実行せずに、次の繰り返しから再開されます。
case
比較値指定
switch~swendの比較ブロック内で、比較元との条件を指定して正しい場合に実行される処理を指定します。 詳しくはswitchマクロの項を参照してください。
default
デフォルト比較指定
switch~swendの比較ブロック内で、 それまでのcaseにあてはまらない条件の時に実行される処理を指定します。 詳しくはswitchマクロの項を参照してください。
do
do繰り返し開始
untilまでの繰り返し区間の始まりを指定します。 繰り返し条件は、untilマクロによって記述されます。 詳しくはuntilマクロの項を参照してください。
for
指定回数繰り返し開始
パラメーターとして変数名、初期値、終値、増分などを指定すると、for~nextの間を指定回数繰り返します。 カッコ内は省略した場合の値です。変数名は省略できません。 指定された変数をカウンターとして使用し、初期値から始まって、1回繰り返すごとに増分を足していきます。
next
指定回数繰り返し終了
forで指定した繰り返し区間の終わりを指定します。 詳しくはforマクロの項を参照してください。
swbreak
比較実行脱出指定
switch~swendの比較ブロック内から脱出します。 詳しくはswitchマクロの項を参照してください。
swend
比較ブロック終了
switchで指定した比較ブロックの終わりを指定します。 詳しくはswitchマクロの項を参照してください。
switch
比較ブロック開始
switch~case~swend は、ブロック内に複数の条件判断と処理をまとめて書くことができる構文です。 p1で指定する比較元のパラメーターは、変数または式を指定することができます。
until
do繰り返し終了
untilに続く条件が満たされるまで、doからuntilまでの部分を繰り返します。 条件が満たされている場合でも、最低一回はdo~until内を実行します。 untilに続く条件を省略した場合は、繰り返しを行ないません。
wend
while繰り返し終了
whileで指定した繰り返し区間の終わりを指定します。 詳しくはwhileマクロの項を参照してください。
while
while繰り返し開始
whileに続く条件が満たされている間だけ、whileからwendまでを繰り返します。 条件が満たされていない場合はwhileからwendまでを実行しません。 whileに続く条件を省略した場合は、無限に繰り返しを行ないます。

プログラム制御命令

await
一定の時間で待つ
プログラムの実行を一定時間だけ中断します。 wait命令と似ていますが、 await命令は前回waitした時間からの待ち時間を指定します。これにより、描画速度の違いなどから時間が早く過ぎることを防止することができます。リアルタイムで更新される画面などの速度を一定に保つ時に使用します。
break
ループから抜ける
repeat~loop間のループから、強制的に抜け出します。
continue
ループをやり直す
repeat~loop間のループをやり直します。 continue命令が実行されると、repeat命令まで戻り次の繰り返しを実行します。
else
条件を満たしていなければその行の命令を実行
if命令と組み合わせて使用します。 詳しくはif命令の解説を参照してください。
end
プログラム終了
HSPのプログラムを終了します。 end命令はスクリプトのどこにあってもかまいません。 end命令が実行されると、そのアプリケーションは終了します。 アプリケーションの終了コードをパラメーターp1で指定することができます。p1を省略した場合は、0がアプリケーション終了コードとなります。
exec
Windowsのファイルを実行する
execは "filename" で指定したファイル名のアプリケーションを実行します。 拡張子がEXEの場合は、拡張子を省略することができます。 p1で実行時のモードを選ぶことができます。p1を省略した場合は0になります。
exgoto
指定ラベルに条件ジャンプ
varで指定された変数に代入されている値と、 p2の比較値により指定したラベルに条件でジャンプします。 比較方法は、p1の比較フラグが0以上(正値)の場合は(varの値>=p2)が成立した時にジャンプ、p1が-1以下(負値)の場合は (varの値<=p2)が成立した時にジャンプを行ないます。
foreach
変数の要素数だけ繰り返す
配列変数に格納されている要素の数だけ繰り返しを行ないます。 foreachは、repeat命令と同様にループ開始場所に記述し、 ループの終了場所にloop命令を記述します。
gosub
指定ラベルにサブルーチンジャンプ
サブルーチンジャンプをします。 gosub命令は、*labelで指定した場所にジャンプをします。 その後、return命令があるとgosub命令の次の行に復帰して実行を続けます。 gosub~returnはネスティング(入れ子構造)にすることが可能です。
goto
指定ラベルにジャンプ
指定したラベルに無条件でジャンプします。 以降は、ラベル名で指定された場所から実行を続けます。
if
条件を満たしていればその行の命令を実行
p1の条件式が満たされていれば、それ以降の命令を実行する。満たされていない場合は、次の行に移ります。 BASICと違い、その行の次の命令との間には :(コロン)を入れなければいけないので注意してください。 例 : a=10 if a=10 : mes "aは10です。
loop
ループの始まりに戻る
repeat命令で指定したループの終わりを指定します。 詳しくはrepeat命令の項を参照してください。
on
数値による分岐
on命令は、p1で指定された値が0,1,2…に応じて分岐先を選択します。 「on 数値 goto」または、「on 数値 gosub」 のような書式で、続いて分岐する先のラベルを1つ以上「,」で区切って記述することができます。
onclick
クリック割り込み実行指定
マウスのボタンを押した時に、自動的にジャンプする場所を指定します。 onclickの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述します。gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブルーチンジャンプを行ないます。
oncmd
Windowsメッセージ割り込み実行指定
指定されたウィンドウメッセージが送られた時に、自動的にジャンプする場所を指定します。 oncmdの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述します。 gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブルーチンジャンプを行ないます。
onerror
エラー発生時にジャンプ
スクリプトが原因で HSP内部でエラーが発生した時に、自動的にジャンプする場所を指定します。 onerrorの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述します。gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブルーチンジャンプを行ないます。
onexit
終了時にジャンプ
クローズボックス(ウィンドウ右上の終了ボタン)を押した時に、自動的にジャンプする場所を指定します。 onexitの後に続けて、 gotoまたはgosubキーワードを指定してからラベルを記述します。 gotoの場合には、単純なプログラムジャンプ。
onkey
キー割り込み実行指定
キーボードを押した時に、自動的にジャンプする場所を指定します。 onkeyの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述します。gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブルーチンジャンプを行ないます。
repeat
ループの始まりの場所を示す
repeat~loopの間をくり返し実行します。 repeat命令は、くり返しの開始地点を示します。 loop命令は最後に通過したrepeat命令まで戻ります。
return
サブルーチンから復帰
gosub命令やユーザー定義命令などで呼び出しされたサブルーチンを終了します。return命令により、スタックを戻し呼び出し元に復帰します。 p1を指定することにより、サブルーチンから値をシステム変数に反映させることができます。 p1に数値を指定した場合には、システム変数statに代入されます。
run
指定したファイルに制御を移す
別のファイルに書かれたHSPのプログラムを実行します。 指定するファイルはHSPのオブジェクトファイル (拡張子がAX)でなければなりません。 オブジェクトファイルは、スクリプトエディタの「オブジェクトファイル作成」によって作成することができます。
stop
プログラム中断
プログラムの実行を一時中断します。 ボタンがクリックされるまで待つ時などに使用します。
wait
実行を一定時間中断する
プログラムの実行を一定時間だけ中断します。 p1に待ち時間の長さを指定します。単位は10ミリ秒になります。(1ミリ秒=1/1000秒) CPUの速度に関係なく、どんな機種でも同じ待ち時間になります。

マルチメディア制御命令

mci
MCIにコマンドを送る
MCI(Multimedia Control Interface)にコマンド文字列を送ります。MCIに対応したMIDI再生、ムービー再生などを行なうことができます。 MCIコマンドの詳細については、Windows MCIの解説書をお読みください。ここでは簡単な使用法だけを紹介しておきます。
mmload
サウンドファイル読み込み
メディアデータのファイルを登録します。 読み込むことができる形式は以下の通りです。 WAV形式 : 拡張子 WAV : Windows標準のPCM音声データ。
mmplay
サウンド再生
mmload命令によって読み込まれたメディアを再生します。 p1でバッファの番号を指定することで、mmload命令によって読み込まれた複数のメディアから、どれを再生するかを選びます。 mmplay命令は、 通常サウンドの再生がスタートするとともにHSPは次の命令へと進みます。
mmstop
サウンド停止
mmplay命令によるメディア再生を停止します。

メモリ管理命令

alloc
バッファを確保
メモリ上にバッファを作成して変数に割り当てます。 割り当てられた変数は、文字列型となります。 この命令は過去のHSP命令との互換を取るために用意されています。 通常は、sdim命令を使用することを推奨します。 ※この命令は、マクロとしてhspdef.as内で定義されています。
comres
メソッド返値代入変数を設定する
p1で指定した変数を、メソッド返値代入変数として設定します。 メソッド返値代入変数は、COMオブジェクト型変数を使用してCOMオートメーション(IDispatch)のメソッド呼び出しが行なわれた際に、結果が代入される対象となります。
ddim
実数型配列変数を作成
実数型の配列変数を作成します。 パラメーターは、dim命令と同様に要素の最大数を指定します。 例 : ddim a,100 ; 変数aはa(0)~a(99)までの実数型配列を確保します dim命令と同様に多次元配列を確保することが可能です。
delmod
モジュール型変数の要素削除
p1で指定したモジュール型の変数の要素を削除します。 p1は、すでにモジュール型として設定されている変数である必要があります。
dim
配列変数を作成
任意の要素を持つ配列変数を作成します。 例: dim a,20 上の例では、変数aの要素を20個、つまり「a(0)」~「a(19)」までをあらかじめ確保します。 パラメータを増やすことで多次元配列を作成することも可能です。
dimtype
指定タイプの配列変数を作成
任意の要素を持つ配列変数を作成します。 dim命令と同様の動作ですが、dimtypeは変数の型を指定することができます。 p2には、変数型を示す型タイプ値を指定する必要があります。 型タイプ値は、vartype関数で型名文字列から取得することが可能です。
ldim
ラベル型配列変数を作成
ラベル型の配列変数を作成します。 パラメーターは、dim命令と同様に要素の最大数を指定します。 例 : ldim a,100 ; 変数aはa(0)~a(99)までのラベル型配列を確保します dim命令と同様に多次元配列を確保することが可能です。
lpoke
バッファに4byte書き込み
変数に保存されたデータメモリ上の任意の場所にある 4バイトの内容を書き換えます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所にp3の値を書き込みます。値は0~$ffffffffまでの4バイト(32bit)値になります。
memcpy
メモリブロックのコピー
p1で指定された変数に割り当てられているメモリ領域に、 p2で指定された変数に割り当てられているメモリの内容をコピーします。 コピーするサイズ(1byte単位)は、p3で指定します。 大きな領域を変数に割り当てている場合などに高速なメモリコピーを行なうことができます。
memexpand
メモリブロックの再確保
p1で指定された変数が持つメモリ領域の再確保を行ないます。 代入時などのメモリ領域確保はシステムが自動的に行なっていますが、明示的にサイズを変更する場合に使用します。 再確保を行なった場合でも、以前までの内容は保持されます。 p2で、再確保サイズを指定します。
memset
メモリブロックのクリア
1byteの固定値でメモリブロックを埋めます。 p1で指定された変数に割り当てられているメモリ領域に、p2で指定された値を、p3のサイズだけ書き込みます。大きな領域に同じ値を書き込みたい時に有効です。p4で、メモリ開始位置を1byte単位で調整することができます。
newlab
ラベル型変数を初期化
指定されたラベルが代入されたラベル型の変数を初期化します。 p1で、初期化される変数名を指定します。 p2で、変数に保存されるラベルの参照元を指定します。 p2にラベルを指定した場合は、ラベルが示す場所を参照元とします。
newmod
モジュール型変数の作成
p1で指定した変数をモジュール型として要素の追加を行ないます。 p1の変数がモジュール型でない場合は、モジュール型として初期化されます。 すでにモジュール型の場合は、配列変数として新しい要素を追加していきます。
poke
バッファに1byte書き込み
変数に保存されたデータメモリ上の任意の場所にある 1バイトの内容を書き換えます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所にp3の値を書き込みます。値は0~255までの1バイト(8bit)値になります。
sdim
文字列型配列変数を作成
文字列型の配列変数を作成します。 dim命令との違いは、 p2のパラメータは「文字列のデフォルト文字数」、p3のパラメータ以降に実際の配列要素の最大数を入れるところです。
wpoke
バッファに2byte書き込み
変数に保存されたデータメモリ上の任意の場所にある 2バイトの内容を書き換えます。 p1で指定した変数のバッファ上で、p2で指定したインデックスの場所にp3の値を書き込みます。値は0~65535までの2バイト(16bit)値になります。

メモリ管理関数

lpeek
バッファから4byte読み出し
変数に保存されたデータメモリ上の任意の場所にある4バイト(32bit)の内容を数値として返します。 関数の戻り値は、0~$ffffffffまでの整数値になります。
peek
バッファから1byte読み出し
変数に保存されたデータメモリ上の任意の場所にある1バイト(8bit)の内容を数値として返します。 関数の戻り値は、0~255までの整数値になります。
wpeek
バッファから2byte読み出し
変数に保存されたデータメモリ上の任意の場所にある2バイト(16bit)の内容を数値として返します。 関数の戻り値は、0~65535までの整数値になります。

基本入出力制御命令

getkey
キー入力チェック
キーボード及びマウスボタンの状態をチェックして変数に代入します。指定したボタンが押されていれば、1を代入し、押されていなければ0が代入されます。 キーコードで指定する値の詳細は、以下の通りです。
mcall
メソッドの呼び出し
p1で指定された変数の型に応じてメソッドを呼び出します。 p1の変数にCOMオブジェクト型を指定することで、COMオートメーションのメソッドを呼び出すことが可能です。 p2でメソッド名(文字列)または、ディスパッチID(DISPID)を指定して、p3以降に引数を指定します。
mouse
マウスカーソル座標設定
マウスカーソルをp1,p2で指定した座標に変更します。 指定する座標は、 ウィンドウ内の座標ではなくディスプレイでの座標(X=0~ginfo_dispx/Y=0~ginfo_dispy)を指定します。 p1または、p2が-1の場合は、HSPウィンドウ上でのマウスカーソルの表示をOFFにします。
randomize
乱数発生の初期化
rnd関数で発生させる乱数のパターンを初期化します。 p1に同じ値を指定して初期化された乱数は、常に同じパターンで乱数を発生させられます。 p1を省略した場合は、 Windowsのタイマから得られた不定な値を使って初期化します。これによって、毎回まったく違う乱数を発生させることができます。
setease
イージング関数の計算式を設定
決められた範囲の数値を任意の計算式で補間するイージング関数の設定を行ないます。 ここで指定された設定は、イージング関数(getease,geteasef)で値を取得する際に反映されます。 計算式のタイプ値には、以下を指定することができます。
sortget
ソート元のインデックスを取得
sortstr, sortval, sortnote命令を実行後の配列において、格納されているデータは、ソートする前はどのインデックスに置かれていたものかを調べて結果を返します。
sortnote
メモリノート文字列をソート
メモリノートパッド形式の 文字列が格納された変数を、 指定された並び順でソート(並び替え)します。 p1で指定された変数を直接並べ替えます。 ソートの並び順は、 ASCIIコードの大きい小さいで比較されるので、 ABC順、あいうえお順に並べ替えられます。
sortstr
配列変数を文字列でソート
文字列が格納された配列変数を指定された並び順でソート(並び替え)します。 p1で指定された配列変数を直接並べ替えます。 ソートの並び順は、 ASCIIコードの大きい小さいで比較されるので、 ABC順、あいうえお順に並べ替えられます。
sortval
配列変数を数値でソート
数値が格納された配列変数を指定された並び順でソート(並び替え)します。 p1で指定された配列変数を直接並べ替えます。 並び替えに関する情報は、sortget命令で得ることができます。
stick
キー入力情報取得
よく使われるキーボード及びマウスボタンの状態をまとめてチェックして変数に代入します。 stick命令が実行されると以下のような複数のボタン情報が1つの数値として、p1で指定した変数に代入されます。

基本入出力関数

abs
整数の絶対値を返す
p1の絶対値を整数で返します。 実数の絶対値が必要な場合は、absf関数を使用してください。
absf
実数の絶対値を返す
p1の絶対値を実数で返します。 整数の絶対値が必要な場合は、abs関数を使用してください。
atan
アークタンジェント値を返す
p1をY、p2をXの値として、 Y/Xの角度(アークタンジェント値)を実数のラジアン単位(2πが360度)で返します。 p2を省略した場合は1.0が使用されます。また、p2が0の場合は0.5π(90度)が返されます。
callfunc
外部関数の呼び出し
p2で指定されているアドレスをネイティブな関数として呼び出します。 呼び出しの引数として、p1で指定された数値型配列変数に格納されている値を使用します。p3でパラメーター数を指定することができます。
cos
コサイン値を返す
p1のコサイン(余弦)値を実数で返します。 p1で指定する単位はラジアン(2πが360度)になります。
dirinfo
ディレクトリ情報の取得
p1で指定したタイプのディレクトリ名を返します。 取得するタイプは以下の通りです。
double
実数値に変換
p1で指定された値を実数にしたものを返します。 値が文字列の場合は、数値文字列の場合はその数値に、 それ以外は0になります。
expf
指数を返す
p1の指数(exp)値を、実数で返します。 オーバーフローした場合は無限(INF)を返し、アンダーフローした場合は0を返します。
getease
イージング値を整数で取得
決められた範囲の数値を任意の計算式で補間するイージング関数の計算結果値を整数で取得します。 イージング関数を使用する際には、必ず先にsetease命令により出力される最小値、最大値および計算式を設定しておく必要があります。
geteasef
イージング値を実数で取得
決められた範囲の数値を任意の計算式で補間するイージング関数の計算結果値を実数で取得します。 イージング関数を使用する際には、必ず先にsetease命令により出力される最小値、最大値および計算式を設定しておく必要があります。
gettime
時間・日付を取得する
p1で指定したタイプの日付・時刻情報を返します。 取得するタイプは以下の通りです。
ginfo
ウィンドウ情報の取得
p1で指定したタイプのウィンドウ関連情報値を返します。 取得できるタイプは以下の通りです。
int
整数値に変換
p1で指定された値を整数にしたものを返します。 値が実数の場合は、小数点以下が切り捨てられます。 値が文字列の場合は、数値文字列の場合はその数値に、 それ以外は0になります。
length
配列の1次元要素数を返す
p1で指定された変数が持つ配列要素数(1次元)を返します。 配列要素数が5だった場合は、p1(0)~p1(4)が存在することになります。
length2
配列の2次元要素数を返す
p1で指定された変数が持つ配列要素数(2次元)を返します。 配列要素数が5だった場合は、p1(0,0)~p1(?,4)が存在することになります。 配列の次元が存在しない場合は、0が返ります。
length3
配列の3次元要素数を返す
p1で指定された変数が持つ配列要素数(3次元)を返します。 配列要素数が5だった場合は、p1(0,0,0)~p1(?,?,4)が存在することになります。配列の次元が存在しない場合は、0が返ります。
length4
配列の4次元要素数を返す
p1で指定された変数が持つ配列要素数(4次元)を返します。 配列要素数が5だった場合は、p1(0,0,0,0)~p1(?,?,?,4)が存在することになります。配列の次元が存在しない場合は、0が返ります。
libptr
外部呼出しコマンドの情報アドレスを得る
p1に指定したコマンドの情報アドレスを取得して整数値として返します。 外部DLL呼び出しコマンドや関数をパラメーターとして指定することで、コマンドに関する情報が格納されているSTRUCTDAT構造体のアドレスを取得することができます。
limit
一定範囲内の整数を返す
p1に指定した値を、p2~p3の範囲内に収まる整数に変換したものを返します。 p1の値がp2よりも小さい場合は、p2の値が返され、p1の値がp3よりも大きい場合にはp3の値が返されます。 これにより、limit関数が返す値は、必ずp2~p3の範囲内となります。
limitf
一定範囲内の実数を返す
p1に指定した値を、p2~p3の範囲内に収まる実数に変換したものを返します。 p1の値がp2よりも小さい場合は、p2の値が返され、p1の値がp3よりも大きい場合にはp3の値が返されます。 これにより、limitf関数が返す値は、必ずp2~p3の範囲内となります。
logf
対数を返す
p1の対数(log)値を、実数で返します。 p1に0を指定した場合は無限大(INF)を返します。
objinfo
ウィンドウオブジェクト情報の取得
現在アクティブなウィンドウに配置されている、特定のウィンドウオブジェクトに関連する情報値を返します。 p1にウィンドウオブジェクトID、p2に取得タイプを指定することで、該当する情報データが返されます。 取得できるタイプは以下の通りです。
powf
累乗(べき乗)を求める
p1をp2乗した値を求めます。結果は実数で与えられます。 p1は必ず正でなければなりません。負の場合はエラーにはなりませんが、非数(-1.#IND00)が返ります。 p2は正負どちらでも構いません。また、実数を指定することも可能です。
rnd
乱数を発生
0から(p1-1)の範囲で整数の乱数値を発生させます。 p1の値は範囲に含まれません。たとえば、 例 : a=rnd(10) は、変数aに、0~9までの乱数を代入します。 rnd関数は、プログラム起動してからは一定のパターンで乱数を発生させます。
sin
サイン値を返す
p1のサイン(正弦)値を実数で返します。 p1で指定する単位はラジアン(2πが360度)になります。
sqrt
ルート値を返す
p1のルート(平方根)値を、実数で返します。 p1にマイナス値を指定することはできません。
str
文字列に変換
p1で指定された値を文字列にしたものを返します。
strlen
文字列の長さを調べる
p1で指定された文字列または、文字列型変数が持っている文字列の長さを返します。 文字列が日本語の全角だった場合は、1文字でも2文字分に計算されます。
sysinfo
システム情報の取得
p1で指定したタイプのシステム情報値を返します。 取得できるタイプは以下の通りです。
tan
タンジェント値を返す
p1のタンジェント(正接)値を実数で返します。 p1で指定する単位はラジアン(2πが360度)になります。
varptr
変数データのポインタを返す
p1で指定された変数が格納しているデータがあるメモリアドレスを返します。 p1に外部拡張命令(#funcで定義されているDLL呼び出し用の命令)を指定した場合には、実際に実行される外部関数のアドレスを返します。
varsize
変数データのバッファサイズを返す
p1で指定された変数が格納しているデータのバッファサイズ(確保されているメモリサイズ)を返します。 varsizeによって取得したサイズは、内容の更新などにより変化する可能性があるため、値を参照する直前で使用するようにしてください。
vartype
変数の型を返す
p1で指定された変数が格納している値の型を調べて返します。 返される値は、型を示す整数値となります。型の値は、以下の通りです。
varuse
変数の使用状況を返す
p1に指定した変数の使用状況を返します。 varuseは、モジュール型やCOMオブジェクト型の変数など、 実態を持たない状況が発生する場合にのみ有効です。 指定された変数が有効であれば1を、そうでなければ0を返します。

数学定数

M_PI
円周率
円周率を表す定数です。3.14159265358979323846が定義されています。

文字列操作命令

cnvstoa
通常文字列をANSI文字列に変換
"文字列"で指定されたデータをANSI(ShiftJIS)文字列に変換して変数バッファに保存します。 p1で指定される変数には、あらかじめ文字列型として変換に十分なバッファサイズを確保しておく必要があります。
cnvstow
通常文字列をunicodeに変換
"文字列"で指定されたデータをunicode(UTF-16)文字列に変換して変数バッファに保存します。 p1で指定される変数には、あらかじめ文字列型として変換に十分なバッファサイズを確保しておく必要があります。
getstr
バッファから文字列読み出し
メモリ上のバッファの任意の場所にある内容を文字列として変数に読み出します。 文字列は、00というコードか、改行コードがあるまで読み出されます。改行コードは文字列には含まれません。 また、区切りキャラクタコードを指定することができ任意の文字で区切られた文字列を取り出すこともできます。
noteadd
指定行の追加・変更
メモリノートパッドの内容を追加・変更します。 p1に追加・変更するための文字列を指定します。p2で、対象となるインデックスを指定します。 p2パラメータを省略するか、-1を指定すると最終行が対象になります。 p3パラメータで、追加か上書きかを指定します。
notedel
行の削除
メモリノートパッドの指定したインデックスを削除します。 p1で指定したインデックスの内容は削除され、以降のインデックスが1つづつシフトします。
noteget
指定行を読み込み
メモリノートパッド内の、p2で指定したインデックスの内容をp1で指定された変数に代入します。メモリノートパッド内の任意の行にある内容を読み出すことができます。 インデックスは0から始まるので注意してください。
noteload
対象バッファ読み込み
指定したファイルをメモリノートパッド命令のバッファに読み込みます。 通常は、テキストファイルを読み込み、メモリノートパッド命令で読み出す対象とします。
notesave
対象バッファ保存
メモリノートパッド命令のバッファの内容を指定したファイルにテキストファイルとして保存します。 必ず最初にnotesel命令で対象となるバッファを設定する必要があるので注意してください。 notesave命令は、指定バッファに含まれる文字列の長さで保存します。
notesel
対象バッファ指定
p1で指定した変数をメモリノートパッド命令のバッファに設定します。 p1で指定した変数は、強制的に文字列型に変更されます。
noteunsel
対象バッファの復帰
noteunsel命令は、notesel命令で対象となるバッファを設定する前に設定されていたバッファ設定に戻します。
split
文字列から分割された要素を代入
指定した文字列で分割された要素を変数に代入します。 たとえば、「12,34,56」のように「,」で区切られた文字列から、「12」「34」「56」の要素を取り出して、別々の変数に代入することができます。 p1で、もとの文字列が代入された変数名を指定します。
strrep
文字列の置換をする
p1で指定した文字列型変数の内容すべてにおいて、 "検索文字列"で指定した文字列を、"置換文字列"に置き換えます。 実行後、システム変数statに文字列を置換した回数が代入されます。

文字列操作関数

cnvatos
ANSI文字列を通常文字列に変換
変数に保存されたデータをANSI(ShiftJIS)文字列として読み取り、 通常の文字列に変換したものを返します。 この命令は、UTF-8を標準の文字列コードとして扱うランタイム(hsp3utf)上でのみ動作します。標準のHSP3ではエラーとなりますので注意してください。
cnvwtos
unicodeを通常文字列に変換
変数に保存されたデータをunicode(UTF-16)として読み取り、 通常の文字列に変換したものを返します。 unicodeデータを扱う場合や、外部DLL、 COMオブジェクトとのデータ変換などで使用することができます。
getpath
パスの一部を取得
p1で指定したファイルパスを示す文字列をp2で指定したタイプの情報に変換したものを文字列として返します。
instr
文字列の検索をする
p1で指定した文字列型変数の中に、"string"で指定した文字列があるかどうか調べて、インデックスを返します。 指定した文字列が見つかった場合には、インデックス値が返されます。
notefind
メモリノートパッド検索
現在対象となっているメモリノートパッドの中から、特定の文字列を含む行を検索します。 p1で検索モードを指定します。それぞれのモードに対応したマクロが定義されています。
noteinfo
メモリノートパッド情報取得
noteinfo関数は、現在対象となっているメモリノートパッドについての情報を取得します。 p1で情報取得モードを指定します。また、それぞれのモードに対応したマクロが定義されています。
strf
書式付き文字列を変換
整数または実数値を適切な書式で文字列に変換した文字列を返します。 "format"で、以下のような書式指定文字列を指定します。
strmid
文字列の一部を取り出す
p1で指定した文字列型変数の中から、 p2,p3で指定した条件で文字を取り出したものを返します。 p2で取り出し始めるインデックスを指定します。これは、文字列の始まり1文字目を0として、1,2,3...と順番に増えていくものです。1から始まりではないので注意してください。
strtrim
指定した文字だけを取り除く
p1で指定した変数に格納されている文字列の中から指定した文字だけを取り除きます。 p2で、除去する位置の指定を行なうことができます。 p2が省略された場合は、文字列の両端が指定文字だった場合のみ除去されます。 p3で除去する文字コードを指定することができます。

標準定義マクロ

__date__
使用時点の日付
使用時点(コンパイルした時点)の日付に置き換わります。日付はYYYY/MM/DD形式で表されます。 「HSP拡張マクロを使用する」にチェックが入っていないと使用できません。
__file__
使用時点で解析されているファイル名
使用時点で解析されているファイル名に置き換えられます。 ファイルが保存されていない場合は"???"に置き換わります。
__hsp30__
ver3.0以降使用時
HSP3.0以降で、「HSP拡張マクロを使用する」にチェックが入っている時に定義されます。
__hspver__
HSPバージョン番号
HSPのバージョン番号に置き換わります。上位8bit、下位8bitがそれぞれメジャーバージョン・マイナーバージョンを示します。 「HSP拡張マクロを使用する」にチェックが入っていないと使用できません。
__line__
使用時点で解析されている行番号
使用時点で解析されている行番号に置き換わります。行番号は1から始まる整数値です。
__time__
使用時点の時刻
使用時点(コンパイルした時点)の時刻に置き換わります。時刻はHH:MM:SS形式で表されます。 「HSP拡張マクロを使用する」にチェックが入っていないと使用できません。
_debug
デバッグモード時
デバッグモード時のみ定義されるマクロです。 #ifdef、#ifndef命令などで判別して分岐させることが可能です。
and
論理積(演算子)
論理積を示す演算子「&」と同様に使用することができるマクロです。
deg2rad
度をラジアンに変換
角度の単位を度からラジアンへ変換します。 度数法で表された角度を弧度法での角度に変換するとも言えます。
font_antialias
アンチエイリアスでフォント設定
font命令の第3引数に指定することで、アンチエイリアスのフォントを設定することができます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
font_bold
太文字でフォント設定
font命令の第3引数に指定することで、太文字のフォントを設定することができます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
font_italic
イタリック体でフォント設定
font命令の第3引数に指定することで、イタリック体のフォントを設定することができます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
font_normal
通常のスタイルでフォント設定
font命令の第3引数に指定することで、通常のスタイルでフォントを設定することができます。 省略しても同じ結果が得られますので、省略しても構いません。
font_strikeout
打ち消し線付きでフォント設定
font命令の第3引数に指定することで、打ち消し線付きのフォントを設定することができます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
font_underline
下線付きでフォント設定
font命令の第3引数に指定することで、下線付きのフォントを設定することができます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
gmode_add
色加算合成コピーモード
gmodeの第1引数に指定することで、画面コピーモードを色加算合成コピーモードに設定できます。
gmode_alpha
半透明合成コピーモード
gmodeの第1引数に指定することで、画面コピーモードを半透明合成コピーモードに設定できます。
gmode_gdi
通常のコピーモード
gmodeの第1引数に指定することで、画面コピーモードを通常のコピーモードに設定できます。 省略しても同じ結果が得られますので、省略しても構いません。
gmode_mem
メモリ間コピーモード
gmodeの第1引数に指定することで、画面コピーモードをメモリ間コピーモードに設定できます。
gmode_pixela
ピクセルアルファブレンドコピーモード
gmodeの第1引数に指定することで、画面コピーモードをピクセルアルファブレンドコピーモードに設定できます。
gmode_rgb0
透明色付きコピーモード
gmodeの第1引数に指定することで、画面コピーモードを透明色付きコピーモードに設定できます。
gmode_rgb0alpha
透明色付き半透明合成コピーモード
gmodeの第1引数に指定することで、画面コピーモードを透明色付き半透明合成コピーモードに設定できます。
gmode_sub
色減算合成コピーモード
gmodeの第1引数に指定することで、画面コピーモードを色減算合成コピーモードに設定できます。
not
否定(演算子)
否定を示す演算子「!」と同様に使用することができるマクロです。
objinfo_bmscr
オブジェクトが配置されているBMSCR構造体のポインタを取得
指定したウィンドウオブジェクトが配置されているBMSCR構造体のポインタを返します。
objinfo_hwnd
ウィンドウオブジェクトのハンドルを取得
指定したウィンドウオブジェクトのハンドルを返します。
objinfo_mode
モードおよびオプションデータを取得
指定したウィンドウオブジェクトのモードおよびオプションデータを返します。
objmode_guifont
デフォルトGUIフォントを設定
objmode命令の第1引数に指定することで、オブジェクト制御命令で使用されるフォントをデフォルトGUIフォントに設定することができます。
objmode_normal
HSP標準フォントを設定
objmode命令の第1引数に指定することで、オブジェクト制御命令で使用されるフォントをHSP標準フォントに設定することができます。 省略しても同じ結果が得られますので、省略しても構いません。
objmode_usefont
font命令で選択されているフォントを設定
objmode命令の第1引数に指定することで、オブジェクト制御命令で使用されるフォントをfont命令で選択されているフォントに設定することができます。
or
論理和(演算子)
論理和を示す演算子「|」と同様に使用することができるマクロです。
rad2deg
ラジアンを度に変換
角度の単位をラジアンから度へ変換します。 弧度法で表された角度を度数法での角度に変換するとも言えます。
screen_fixedsize
サイズ固定ウィンドウを作成
screen命令の第4引数に指定することで、サイズ固定のウィンドウを作成できます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
screen_frame
深い縁のあるウィンドウを作成
screen命令の第4引数に指定することで、深い縁のあるウィンドウを作成できます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
screen_hide
非表示のウィンドウを作成
screen命令の第4引数に指定することで、非表示のウィンドウを作成できます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
screen_normal
通常のウィンドウを作成
screen命令の第4引数に指定することで、通常のウィンドウを作成できます。 省略しても同じ結果が得られますので、省略しても構いません。
screen_palette
パレットモードのウィンドウを作成
screen命令の第4引数に指定することで、パレットモードのウィンドウを作成できます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
screen_tool
ツールウィンドウを作成
screen命令の第4引数に指定することで、ツールウィンドウを作成できます。 他のマクロと組み合わせて指定する場合は、その和または論理和を指定してください。
xor
排他的論理和(演算子)
排他的論理和を示す演算子「^」と同様に使用することができるマクロです。

特殊代入命令

dup
クローン変数を作成
クローン元の変数が持つメモリを指している変数を作成します。 クローン変数は、クローン元のメモリ情報を参照するための変数として機能するようになります。 クローン元の型が変更されたり、配列の拡張、または文字列バッファの拡張が行なわれた場合には、クローンとしての動作は行なわれなくなります。
dupptr
ポインタからクローン変数を作成
指定したアドレスポインタを指している変数を作成します。 クローン変数は、メモリ上の情報を参照するための数値型配列変数として機能するようになります。 p3で作成されるクローン変数の型を指定することができます。 p3の値は、vartype関数で取得される型を示す値と同じです。
mref
特殊なメモリを変数に割り当てる
p1で指定された変数に、p2で指定したメモリ内容を割り当てます。

画面制御命令

axobj
ActiveXコントロールの配置
"IID"で指定されたクラスIDまたは、プログラムID(ProgID)を持つActiveXコントロール(OLEコントロール)をウィンドウオブジェクトとして配置します。 p2,p3で配置されるオブジェクトのX,Yサイズを指定します。
bgscr
枠のないウィンドウを初期化
ウィンドウIDを初期化して枠のないウィンドウを作成します。 このウィンドウは、スクリーンセーバー作成などの特殊な用途で使用されます。 p2,p3パラメーターにより、初期化される画面サイズを指定します。 p4の初期化する画面モードは、以下から選ぶことができます。
bmpsave
画面イメージセーブ
現在の画面イメージをそのままBMP形式の画像ファイルとしてセーブします。 "filename"で指定された名前でファイルが作成されます。拡張子も含めてファイル名を指定する必要があります。 セーブされる画像サイズは、対象となるウィンドウが初期化されたサイズになります。
boxf
矩形を塗りつぶす
画面上に、 (p1,p2)と(p3,p4) を左上、右下の点として、現在の描画色で矩形 (四角形)を塗りつぶします。 (p1,p2)を省略した場合は、画面の左上(0,0)が設定されます。 (p3,p4)を省略した場合は、画面の右下(描画サイズいっぱいまで)が設定されます。
buffer
仮想画面を初期化
screen命令と同じく、指定したウィンドウIDを初期化して使用できるようにします。初期化する画面サイズと、画面モードはscreen命令と変わりませんが、buffer命令では、メモリ上に仮想画面が作られるだけで、実際の画面には表示されません。
celdiv
画像素材の分割サイズを設定
指定したウィンドウIDが持つ画像素材の分割サイズを設定します。 分割された画像素材は、celput命令により画像を描画する際に参照されます。
celload
画像ファイルをバッファにロード
画像ファイルを指定した仮想画面に読み込みます。 celload命令は、主にcelput命令やgcopy命令でコピーを行なうための画像素材を 仮想画面(非表示のウィンドウ)に読み込むためのものです。
celput
画像素材を描画
仮想画面に読み込まれた画像素材を、現在の操作先ウィンドウに描画します。 idで、画像素材を持つウインドゥIDを指定します。 noで、分割画像No.を指定します。分割画像No.は、画像素材を持つウインドゥIDの中で 分割された画像を特定する番号となります。
chgdisp
画像解像度を変更する
現在の表示解像度を強制的に変更します。 (p2,p3)でX,Y解像度を設定し、p1で変更モードを設定します。 モードは、1がフルカラーモード(32bit)、 2がパレットモード(8bit)となります。変更モードが0の場合は、最初の状態(変更前)に復帰します。
circle
円を描画する
画面上に、(p1,p2)と(p3,p4)を左上、右下の点として、矩形(四角形)に収まる大きさの円を描画します。 描画色は、color命令等で設定されたものになります。 p5に0が指定されている場合は、輪郭だけを線で描画します。 p5が1または省略されている場合は、円の内部も塗りつぶします。
cls
画面クリア
ウィンドウ内の情報をすべてクリアします。 p1でクリアする5種類の色を指定することができます。
color
カラー設定
メッセージ表示、描画などの色を指定した値に設定します。 p1,p2,p3がそれぞれ、R,G,Bの輝度になります。 0が最も暗く、255が最も明るくなります。 color 0,0,0 は黒に、color 255,255,255 は白になります。
dialog
ダイアログを開く
Windowsの標準的な各種ダイアログボックスを画面に表示します。 dialog命令で出したダイアログは、 HSPのウィンドウとは別にポップアップして現われます。 ユーザーの操作によりダイアログを閉じるまでは、 HSPスクリプトの続きは実行されません。
font
フォント設定
mesおよびprint命令などで表示するテキスト書体の設定をします。 "fontname"でフォントの名前を指定します。 フォント名は、"MS 明朝"、"MS ゴシック"などのフォント名を直接指定してください。 フォントの大きさはドット数に比例した論理サイズで指定します。
gcopy
画面コピー
gcopy命令は、 指定したウィンドウIDの画面の一部を、現在の描画先カレントポジションにコピーします。 コピー元のウィンドウIDは、自分のウィンドウIDと同じかまたは、screen命令やbuffer命令で初期化されたウィンドウIDでなければなりません。
gmode
画面コピーモード設定
gcopyで使用されるモードおよび、サイズ、ブレンド率などを設定します。 それぞれのコピーモード動作は以下の通りです。 ・モード0 = 通常のコピー WindowsのシステムAPI(BitBlt関数)を使った画像コピーを行ないます。 最も標準的なモードです。
gradf
矩形をグラデーションで塗りつぶす
(p1,p2)を左上の点として、(p3,p4)のサイズをグラデーションで矩形(四角形)を塗りつぶします。 塗りつぶす色は、p6,p7で指定されたRGBカラーコードとなります。 RGBカラーコードは、color命令で指定するR,G,Bそれぞれの輝度をまとめて24ビット数値で表現したものです。
grect
回転する矩形で塗りつぶす
(p1,p2)で指定した座標を中心として、 (p4,p5)で指定したサイズの矩形(長方形)を現在設定されている色で描画します。 p3で回転角度を実数で指定することができます。 角度の単位は、ラジアン(0から始まって、2πで一周)となります。
groll
ウィンドウの描画基点を設定
ウィンドウに描画する基点座標を設定します。 基点座標は、描画内容をスクロール可能な(初期化サイズよりも表示サイズが小さい)ウィンドウにおいて、X,Y方向にどれだけスクロールされているかを示すものです。 (0,0)を設定すると、スクロールさせていない通常の状態になります。
grotate
矩形画像を回転してコピー
grotate命令は、gcopy命令に回転を含めた処理を行ないます。 p1で、コピー元のウィンドウIDを指定、(p2,p3) でコピーされる元の画像にあたる座標を指定します。
gsel
描画先指定、ウィンドウ最前面、非表示設定
画面制御命令の描画先を指定したウィンドウIDの画面に変更します。 これ以降は、p1で指定したウィンドウIDの画面に対して、mes命令やpicload命令などの画面描画に関する命令が実行されるようになります。 p2でオプションのスイッチが指定できます。
gsquare
任意の四角形を描画
任意の4点を持つ四角形をコピーまたは塗りつぶします。 p1で、画像コピー元のウィンドウIDを指定します。 p2,p3にはコピー先の座標4つを配列に格納した変数を指定します。 p4,p5にはコピー元の座標4つを配列に格納した変数を指定します。
gzoom
変倍して画面コピー
gzoom命令は、 指定したウィンドウIDの画面の一部を現在の描画先カレントポジションに、任意の大きさに変倍してコピーします。 コピー元のウィンドウIDは、自分のウィンドウIDと同じかまたは、screen命令やbuffer命令で初期化されたウィンドウIDでなければなりません。
hsvcolor
HSV形式でカラーを設定する
色の指定をHSV形式で行ないます。 color命令と同様に、以降の描画命令で設定された色が使用されます。
line
直線を描画
画面上に、(p1,p2)と(p3,p4)を結ぶ直線を描画します。 (p3,p4)を省略した場合は、カレントポジションから(p1,p2)まで、現在設定されている色で直線が描画されます。 line命令実行後は、(p1,p2)の座標がカレントポジションになります。
mes
メッセージ表示
ウィンドウ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウィンドウ上の仮想的なカーソル位置から表示されます。(カレントポジションはpos命令により設定することができます。
palcolor
描画パレット設定
メッセージ表示、描画などの色を指定した値に設定します。 p1はパレットコードになります。パレットコードは、 パレットモード画面のために用意された256色(palette命令により設定された色)の中で何番目かを示すものです。 通常フルカラーモードを利用している限りでは使用する必要はありません。
palette
パレット設定
現在の画面に設定されているパレットの色データを変更します。 p1のパレットコードにp2,p3,p4で指定した輝度のRGBカラーを設定します。 p1の値がマイナスの場合は、設定は無視されます。 p5の値によって、画面上の更新を指定することができます。
pget
1dotの点を取得
画面上の1ドットの色データを読みだします。 p1,p2で指定した座標にあるドットの色データが選択色として設定されます。(color命令で指定したのと同じ状態になります) p1,p2の指定を省略した場合には、pos命令で設定されたカレントポジションの座標が使用されます。
picload
画像ファイルをロード
画像ファイルをロードします。通常は、 picload "test.bmp" とするだけで、"test.bmp"で指定された画像ファイルが現在の画面にロードされ、ウィンドウサイズが自動的に絵のサイズに合わせられます。
pos
カレントポジション設定
メッセージ表示、オブジェクトの表示などの基本座標となるカレントポジションの座標を指定します。 Xは一番左が0に、Yは上が0になり、1ドット単位の指定になります。 パラメータの省略をすると、現在の値が使われます。
print
メッセージ表示
ウィンドウ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウィンドウ上の仮想的なカーソル位置から表示されます。(カレントポジションはpos命令により設定することができます。
pset
1dotの点を表示
画面上に、現在設定されている描画色で1ドットの点を描画します。 p1,p2の指定を省略した場合には、pos命令で設定されたカレントポジションの座標が使用されます。
redraw
再描画の設定
画面の描画モードを指定します。描画モードとは、 描画モード0: mes,print,gcopy,gzoom などの画面制御命令が実行されても仮想画面を書き換えるだけで、実際の画面には反映されません。 描画モード1: 画面制御命令が実行されると、実際の画面にも反映されます。
screen
ウィンドウを初期化
指定したウィンドウIDを初期化して使用できるようにします。 HSPの初期状態では、ウィンドウID0の画面しか使用されていませんが、ウィンドウID1以上を指定することで、新しいウィンドウを作成することができます。
sendmsg
ウィンドウメッセージの送信
p1で指定したウィンドウハンドルに対して、 p2のメッセージとp3,p4のパラメーターを送信します。 p1で指定するウィンドウハンドルの値は、 HSPのウィンドウであればシステム変数hwndを、HSPのウィンドウオブジェクトの場合はobjinfo関数により取得することができます。
syscolor
システムカラーを設定する
p1で指定したシステムカラーインデックスを選択色として設定します。 (color命令で指定したのと同じ状態になります) p1で指定できるシステムカラーインデックスは、以下の値となります。
sysfont
システムフォント選択
システム標準のフォントを選択します。 p1で、フォントの種類を指定します。これは以下の中から選びます。
title
タイトルバー設定
p1の指定が省略されている場合には、ウィンドウのタイトルバーキャプションを、"strings"の内容に設定します。
width
ウィンドウサイズ設定
ウィンドウのクライアントサイズ(実際に表示される大きさ)とウィンドウ表示位置を変更します。 クライアントサイズは、screen命令やbuffer,bgscr命令で初期化された画面サイズより大きくすることはできません。
winobj
ウィンドウオブジェクトの配置
winobjは、 Windowsのシステムがサポートするウィンドウをオブジェクトとして配置します。 p3,p4で配置するX,Yサイズを指定します。 サイズの指定が省略されるか0以下の場合は、objsizeで設定されている値が使用されます。