; ; HSP help manager用 HELPソースファイル ; (先頭が;の行はコメントとして処理されます) ; %type 内蔵命令 %ver 2.61 %note ver2.61標準命令 %date 2004/03/01 %author onitama %url http://www.onionsoft.net/ %index cls 画面クリア %group 基本入出力制御命令 %prm p1 p1=0〜4(0) : クリアする時の色 %inst ウインドゥ内の情報をすべてクリアします。 ^ p1でクリアする5種類の色を指定することができます。 ^p 色の指定値: ( 0=白 / 1=明るい灰色 / 2=灰色 / 3=暗い灰色 / 4=黒 ) ^p cls命令で画面をクリアすると、画面にあるボタンや入力ボックスなどの オブジェクト類、設定されているパレットなどすべてが初期状態に戻ります。 %index dialog ダイアログを開く %group 基本入出力制御命令 %prm "message",p1,"option" p1=0〜(0) : ダイアログのタイプ設定 %inst Windowsの標準的な各種ダイアログボックスを画面に表示します。 dialog命令で出したダイアログは、HSPのウインドゥとは別に ポップアップして現われます。 ^ ユーザーの操作によりダイアログを閉じるまでは、HSP スクリプトの続きは実行されません。 ^ ダイアログのタイプは、p1の設定によって変わります。 ^p タイプ 内容 ---------------------------------------------- 0 標準メッセージボックス + [OK]ボタン 1 警告メッセージボックス + [OK]ボタン 2 標準メッセージボックス + [YES][NO]ボタン 3 警告メッセージボックス + [YES][NO]ボタン 16 ファイルOPEN(開く)ダイアログ 17 ファイルSAVE(保存)ダイアログ 32 カラー選択ダイアログ(固定色) 33 カラー選択ダイアログ(RGBを自由に選択) ^p タイプ0〜3の場合は、"message"で指定した内容を表示する メッセージボックスが現われます。また、"option"で メッセージボックスのタイトルバー文字列を指定することが できます。(省略した場合はタイトルに何も表示されません) メッセージボックスが閉じられると、押したボタンの情報が システム変数statに代入されます。この時、変数statの内容は、 ^p 1 : 「OK」ボタンが押された 6 : 「YES」ボタンが押された 7 : 「NO」ボタンが押された ^p のようになります。 ^ タイプ16〜17の場合は、ファイル一覧から選択をするための ファイル選択ダイアログが現われます。この時、"message"に ロード(またはセーブ)するファイルの拡張子(3文字まで)を 指定して、その拡張子だけが表示されるようにすることが できます。("*"を指定するとすべてのファイルが表示されます) また、"option"で拡張子の詳細、たとえば"txt"ならば、"テキ ストファイル"などの補助的な説明がダイアログの「ファイル の種類」に表示されます。"option"は省略することも可能です。 ファイル選択が完了すると、その結果がシステム変数statに 代入されます。変数statが1ならば、正常に選択されたことを 意味します。変数statが0ならば、キャンセルされたかエラーが 発生したことを意味しています。 ^ ファイル選択が正常に完了していれば、文字列型のシステム変数 refstrに選択されたファイル名がパス名も含めて代入されます。 ^p 例: dialog "as",16,"ソーススクリプト" dialog "STAT="+stat+"\nNAME="+refstr,0,"結果" stop ^p タイプ32〜33の場合は、カラー選択をするダイアログが表示 されます。色選択が終了すると、選択した色のRGBデータがシス テム変数、rval,gval,bvalに代入されます。また、変数statが 0ならば、キャンセルされたかエラーが発生したことを意味して います。1ならば、正常に選択されたことを意味します。 ^p 例: dialog "",33 dialog "R="+rval+"/G="+gval+"/B="+bval,0,"結果" stop ^p %index getkey キー入力チェック %group 基本入出力制御命令 %prm p1,p2 p1=変数 : 読み込むための変数 p2=1〜(1) : キーコード %inst キーボード及びマウスボタンの状態をチェックして変数に 代入します。指定したボタンが押されていれば、1を代入し、 押されていなければ0が代入されます。キーコードで指定する 値の詳細は、以下の通りです。 ^p キーコード 実際のキー ------------------------------------------ 1 マウスの左ボタン 2 マウスの右ボタン 3 キャンセル([CTRL]+[BREAK]) 4 3ボタンマウスのまん中のボタン 8 [BACKSPACE](PC98の[BS]) 9 [TAB] 13 [ENTER] 16 [SHIFT] 17 [CTRL] 18 [ALT](PC98の[GRPH]) 20 [CAPSLOCK] 27 [ESC] 32 スペースキー 33 [PAGEUP](PC98の[ROLLDOWN]) 34 [PAGEDOWN](PC98の[ROLLUP]) 35 [END](PC98の[HELP]) 36 [HOME](PC98の[HOMECLR]) 37 カーソルキー[←] 38 カーソルキー[↑] 39 カーソルキー[→] 40 カーソルキー[↓] 48〜57 [0]〜[9](メインキーボード) 65〜90 [A]〜[Z] 96〜105 [0]〜[9](テンキー) 112〜121 ファンクションキー [F1]〜[F10] ^p %href stick %index gettime 日付・時刻を取得 %group 基本入出力制御命令 %prm p1,p2 p1=変数 : 読み込むための変数 p2=0〜(0) : 取得するパラメータのタイプ %inst p1で指定した変数に、p2で指定したタイプの日付・時刻 情報を代入します。 gettimeパラメータタイプは以下の通りです。 ^p 0 年(Year) 1 月(Month) 2 曜日(DayOfWeek) 3 日(Day) 4 時(Hour) 5 分(Minute) 6 秒(Second) 7 ミリ秒(Milliseconds) ^p たとえば、 ^p 例: gettime a,4 ; いま何時? ^p は、変数aに現在時刻が何時かを代入します。 %href %index mes メッセージ表示 %group 基本入出力制御命令 %prm "strings" "strings" : 表示するメッセージ、または変数 %inst ウインドゥ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウインドゥ上の 仮想的なカーソル位置から表示され、カレントポジションが 次の行に自動的に移動します。 ^ 表示されるメッセージのフォントは、font命令で選択することができます。 また、メッセージを表示する速度をtext命令で設定することができます。 ^ 表示するメッセージに改行コードが含まれていた場合には、 改行され次の行から表示を続けます。 ^ printとmesはどちらも同じ意味になります。 %href print font text %index mouse マウスカーソル座標設定 %group 基本入出力制御命令 %prm p1,p2 p1,p2 : 設定するX,Y座標 %inst マウスカーソルをp1,p2で指定した座標に変更します。 指定する座標は、ウインドゥ内の座標ではなくディスプレイでの座標(X=0〜dispx/Y=0〜dispy) を指定します。p1または、p2が-1の場合は、マウスカーソルの表示をOFFにします。 p1やp2の指定を省略した場合は、現在の座標がそのまま適用されます。 マウスカーソルの表示をOFFにした後は、p1とp2を省略した「mouse」のみを実行すると 再び表示されるようになります。 %index print メッセージ表示 %group 基本入出力制御命令 %prm "strings" "strings" : 表示するメッセージまたは変数 %inst ウインドゥ内に、指定されたメッセージを表示します。 メッセージは、カレントポジションと呼ばれるウインドゥ上の 仮想的なカーソル位置から表示され、カレントポジションが 次の行に自動的に移動します。 ^ 表示されるメッセージのフォントは、font命令で選択することができます。 また、メッセージを表示する速度をtext命令で設定することができます。 ^ 表示するメッセージに改行コードが含まれていた場合には、 改行され次の行から表示を続けます。 ^ printとmesはどちらも同じ意味になります。 %href mes font text %index randomize 乱数発生の初期化 %group 基本入出力制御命令 %prm p1 p1=0〜(不定) : 乱数の初期化パラメーター %inst rnd命令で発生させる乱数のパターンを初期化します。 ^ p1に同じ値を指定して初期化された乱数は、常に同じパターン で乱数を発生させられます。p1を省略した場合は、Windowsの タイマから得られた不定な値を使って初期化します。これに よって、毎回まったく違う乱数を発生させることができます。 %href rnd %index rnd 乱数発生 %group 基本入出力制御命令 %prm p1,p2 p1=変数 : 読み込むための変数 p2=1〜32768 : 乱数の最大値 %inst 乱数を発生させて変数に代入します。 ^ p2で乱数の範囲を指定します。0〜p2の間の値が範囲になります。 p2の値は範囲に含まれません。たとえば、 ^p 例: rnd a,10 ^p は、変数aに、0〜9までの乱数を代入します。 rnd命令は、プログラム起動してからは一定のパターンで乱数を発生させます。 乱数のパターンを一定でないものにする場合は、randomize命令を使用してください。 %href randomize %index stick キー入力情報取得 %group 基本入出力制御命令 %prm p1,p2,p3 p1=変数 : 読み込むための変数 p2=0〜(0) : 非トリガータイプキー指定 p3=0〜1(0) : ウインドゥアクティブチェックON/OFF %inst よく使われるキーボード及びマウスボタンの状態をまとめて チェックして変数に代入します。 ^ stick命令が実行されると以下のような複数のボタン情報が 1つの数値として、p1で指定した変数に代入されます。 ^p 1 カーソルキー左(←) 2 カーソルキー上(↑) 4 カーソルキー右(→) 8 カーソルキー下(↓) 16 スペースキー 32 Enterキー 64 Ctrlキー 128 ESCキー 256 マウスの左ボタン 512 マウスの右ボタン 1024 TABキー ^p 何もボタンが押されていない場合には0が代入されます。 ^ もし複数のボタンが同時に押されていた場合には、それらの 数値がすべて加算されます。たとえば、カーソルキーの右と スペースキーが同時に押されている場合には、4+16の20が変数 に読み込まれます。この数値をif命令などでチェックする場合 には、演算子「&」が役に立ちます。 ^p 例: stick a,0 ; 変数aにキー状態を読み出し if a&16 : goto *spc ; スペースが押されたか? if a&32 : goto *ent ; Enterが押されたか? ^p このように「変数&キー情報」で複数のボタン情報が入った 数値から、1つだけのキー情報を取り出すことができます。 ^ stick命令は、getkey命令によく似ていますが、最大の違いは ボタンが押された瞬間だけを検出する点です。つまり、ボタン が押された時に1度だけ押されている情報を返し、あとは押さ れているボタンをはなすまでは、押されていることになりま せん。 ^ ただし、p2の非トリガータイプキー指定により、押しっぱなし であっても情報を検出することができるようになります。 ^ p2に押しっぱなしでも検出されるキーのコード(上の表にある コードです。複数の場合はそれぞれの数値を加えます)を指定 すると、そのキーだけはボタンが押されている間ずっと検出 されるようになります。 ^ この命令は、非常に複雑に見えますがキーを使ったスクリプト を作る際にとても便利な機能となるでしょう。たとえば、 シューティングゲームを思い浮かべてみてください。自分の 機体は上下左右の方向にボタンが押されている間ずっと移動 しなければなりません。しかし、ミサイルを発射するボタンは 1回押してはなすまでは次の弾は発射されません。このような 場合には、上下左右のキーだけは非トリガータイプのキーに 指定して、それ以外は1度だけ押された情報を返すようにすれ ばいいわけです。 ^ また、p3でウインドゥがアクティブでない場合は入力を無効にする 機能をON/OFFすることができます。 p3が1の場合は、HSPウインドゥがアクティブでない場合にはキー入力が 無効になります。 p3が0か省略された場合は、すべての状況下でキー入力を行ないます。 %href getkey %index text テキスト表示スピード設定 %group 基本入出力制御命令 %prm p1 p1=0〜(0) : メッセージ表示スピード %inst mes,print命令で画面に表示する文字のスピードを設定します。 ^ 通常は、文字表示のスピードは0で瞬時に表示されますが、 1以上を指定すると値に応じた長さのウエイトが入り表示される ようになります。 %href mes %index title キャプション設定 %group 基本入出力制御命令 %prm "strings",p1 "strings" : 指定する文字列 p1=0〜(-1) : オブジェクトID指定 %inst p1の指定が省略されている場合には、ウインドゥのタイトルバー のキャプションを、"strings"の内容に設定します。 (タイトルバーキャプションは、「Hot Soup Processor ver2.x」 と通常は表示されている部分のことです) ^p 例: title "Window Title" ^p 上の例では、「Window Title」という文字をウインドゥのタイトル バーに表示します。 ^ 特殊な使用法として、p1にオブジェクトIDを指定することによりボタンや入力 ボックスの内容を書き換えることができます。オブジェクトIDは、 button命令やinput,mesbox命令などで画面上に表示したオブジェクト が持つIDで、通常置いた順番に0,1,2…の番号が割り当てられます。 これらのオブジェクトの内容(またはボタンに書かれている文字)が "strings"で指定した文字に変更されます。 ^ (この方法は、HSP ver2.4以降ではobjprm命令で実現できるようになりました。 title命令でオブジェクトの内容を書き換えることもできますが、 なるべくobjprm命令を使うことを推奨します) %href objprm %index ginfo 各種情報を取得する %group 基本入出力制御命令 %prm p1 p1=0〜(0) : 情報タイプ設定 %inst マウスやウインドゥについての特殊な情報を取得して、システム変数prmx,prmyに代入します。 情報のタイプはp1で指定します。省略した場合は0になります。 情報タイプとそれに対応した内容は以下の通りです。 ^ タイプ0 : スクリーン上のマウスカーソル座標 ^p prmx,prmyには、スクリーン座標系でマウスカーソル位置が代入され ます。スクリーン座標系は、pos命令などで使用するウインドゥ内の 座標ではなく、デスクトップ画面全体から見た座標になります。 ^p タイプ1 : アクティプなウインドゥIDと、操作先ウインドゥID ^p prmxには、現在アクティブになっているウインドゥIDが代入されます。 もし、アクティブになっているウインドゥがHSP以外の場合は-1が 代入されます。 prmyには、gsel命令で指定した画面の操作先ウインドゥIDが代入 されます。 ^p タイプ2 : ウインドゥの左上座標 ^p prmx,prmyには、スクリーン座標系で現在のウインドゥの左上座標が 代入されます。スクリーン座標系は、pos命令などで使用するウイン ドゥ内の座標ではなく、デスクトップ画面全体から見た座標になり ます。 ^p タイプ3 : ウインドゥの右下座標 ^p prmx,prmyには、スクリーン座標系で現在のウインドゥの右下座標が 代入されます。スクリーン座標系は、pos命令などで使用するウイン ドゥ内の座標ではなく、デスクトップ画面全体から見た座標になり ます。 ^p タイプ4 : ウインドゥのスクロール座標 ^p prmx,prmyには、現在の操作先ウインドゥのスクロール座標が代入され ます。これは、スクロールバーがついているウインドゥにおいて、 どれだけスクロールされているかを示す値です。 スクロールさせていない通常の状態では、prmx,prmyは(0,0)になります。 スクロールバーによって、画面の内容をずらすとprmxは、右に何ドット ずれているか、prmyは下に何ドットずれているかを示します。 ^p タイプ5 : ウインドゥ全体のサイズ ^p prmx,prmyには、現在の操作先ウインドゥの横幅、縦幅が代入されます。 これは、ウインドゥの枠やタイトルバーなども含めたサイズになります。 ^p タイプ6 : 画面の初期化サイズ ^p prmx,prmyには、現在の操作先ウインドゥの初期化サイズが代入されます。 最初にscreen、bgscr、buffer命令で初期化された画面サイズになります。 (現在のウインドゥ内の描画エリアサイズはシステム変数winx,winyで取得できます) ^p タイプ7 : メッセージの出力サイズ ^p prmx,prmyには、最後にmes、print命令により出力されたメッセージのサイズ が代入されます。 サイズは、X,Y座標にどれだけのドット数で描画されたかを示します。 画面上の絶対座標ではないので注意してください。また、複数行ある文字列を 出力した場合は、最後の行にあたるサイズが取得されます。 ^p %index logmode 実行履歴モード設定 %group HSPシステム制御命令 %prm p1,p2 p1 : 実行履歴(ログ)記録モード p2 : 実行履歴(ログ)記録オプション %inst 実行履歴(ログ)記録の設定を行ないます。 p1で、どのような時に記録を行なうかを以下の中から指定します。 複数の項目を指定する場合は、項目の値を合計したものを指定してください。 ^p p1 : 実行履歴(ログ)記録モード 1 = エラー時 2 = 停止/終了時 4 = gosub呼び出し時 8 = module呼び出し時 16 = 外部命令(DLL)呼び出し時 32 = 割り込み呼び出し時 512 = 命令実行時(標準命令) 1024 = 命令実行時(標準のWindows依存命令) 2048 = 命令実行時(代入命令) ^p p1に-1を指定すれば、すべての項目を指定することができます。 p1に0を指定した場合は、履歴記録は行なわれずに通常の実行と なります。 p2で、記録されるログに付加される情報の項目を指定します。 これも複数の項目を指定する場合は、項目の値を合計したものを 指定します(-1ですべての項目)。 ^p p2 : 実行履歴(ログ)記録オプション 1 = 実行行 2 = 時刻 4 = 日付 8 = ファイル名 ^p p2の指定を省略した場合は、以前の設定が引き継がれます。 %href logmes %index logmes 実行履歴メッセージ記録 %group HSPシステム制御命令 %prm "message" "message" : ログに記録するメッセージ %inst 実行履歴(ログ)にメッセージを記録します。 実行履歴(ログ)記録モードに関わらず、必ずログ記録されます。 ある時点での変数の内容や、通過チェックなどに利用できます。 %href logmode %index sysinfo システム情報を取得 %group 基本入出力制御命令 %prm p1,p2 p1=変数名 : 情報を格納する変数名 p2=0〜(0) : 情報のタイプ指定 %inst p2で指定したタイプの情報を、p1で指定された変数に代入します。 p2のタイプにより、代入される情報が数値型か文字列型かが決まります。 タイプ指定の詳細は以下の通りです。 ^p タイプ 変数型 内容 ----------------------------------------------------------- 0 文字列 OS名とバージョン番号 1 文字列 ログイン中のユーザー名 2 文字列 ネットワーク上のコンピュータ名 16 数値 使用しているCPUの種類(コード) 33 数値 物理メモリサイズの使用量(単位%) 34 数値 全体の物理メモリサイズ 35 数値 空き物理メモリサイズ 36 数値 スワップファイルのトータルサイズ 37 数値 スワップファイルの空きサイズ 38 数値 仮想メモリを含めた全メモリサイズ 39 数値 仮想メモリを含めた空きメモリサイズ ^p sysinfo命令は、以前hspext.dllの拡張命令として存在していましたが、 ver2.6から標準命令として利用することが可能になっています。 %href