; ; HSP help manager用 HELPソースファイル ; (先頭が;の行はコメントとして処理されます) ; %type 内蔵命令 %ver 2.61 %note ver2.61標準命令 %date 2004/03/01 %author onitama %url http://www.onionsoft.net/ %index bgscr ウインドゥIDを初期化 %group 画面制御命令 %prm p1,p2,p3,p4,p5,p6,p7,p8 p1=0〜31(0) : ウインドゥID p2,p3 : 初期化する画面サイズX,Y(1ドット単位) p4=0〜1 : 初期化する画面モード p5,p6(0,0) : ウインドゥの配置X,Y(1ドット単位) p7,p8 : ウインドゥのサイズX,Y(1ドット単位) %inst screen命令と同じく、指定したウインドゥIDを初期化して使用できるようにします。 ただしbgscr命令は、ウインドゥ枠のない特殊なポップアップウインドゥとして 表示されます。また、bgscrのウインドゥは最も優先順位の高い最前面に表示されます。 このウインドゥ、スクリーンセーバー作成などの特殊な用途で使用されます。 通常のアプリケーションの画面としても使用できますが用途が限られます。 %href screen buffer %index bmpsave 画面イメージセーブ %group 画面制御命令 %prm "filename" "filename" : セーブするファイル名 %inst 現在の画面イメージをそのままBMP形式の画像ファイルとして セーブします。"filename"で指定された名前でファイルが作成 されます。拡張子も含めてファイル名を指定する必要があります。 ^ セーブされる画像サイズは、対象となるウインドゥが初期化された サイズになります。サイズを変更する場合には、一旦別なサイズの ウインドゥに内容をコピーしてから、bmpsaveをするようにしてください。 %index boxf 矩形を塗りつぶす %group 画面制御命令 %prm p1,p2,p3,p4 p1,p2 : 矩形の左上X,Y座標 p3,p4 : 矩形の右下X,Y座標 %inst 画面上に、(p1,p2)と(p3,p4)を左上、右下の点として、 矩形(四角形)を塗りつぶします。 ^ 描画色は、color命令またはpalcolor命令で設定されたものになります。 %href color palcolor %index buffer ウインドゥIDを初期化 %group 画面制御命令 %prm p1,p2,p3,p4 p1=0〜31(0) : ウインドゥID p2,p3 : 初期化する画面サイズX,Y(1ドット単位) p4=0〜1 : 初期化する画面モード %inst screen命令と同じく、指定したウインドゥIDを初期化して 使用できるようにします。初期化する画面サイズと、画面 モードはscreen命令と変わりませんが、buffer命令では、 メモリ上に仮想画面が作られるだけで、実際の画面には 表示されません。これで作成した仮想画面は、通常の画面 と同じようにprint命令やpicload命令を使用することが できます。gcopy命令などで別の画面にコピーするための ストック場所に使ったり、現在の画面を一時的に残して おくための保管場所に使うことができます。 ^ なお、screenで初期化されたウインドゥIDをbuffer命令で 再初期化することはできません。 ^ buffer命令で画面を初期化した後はそのウインドゥIDが 画面制御命令の描画先になります。 %href screen bgscr %index chgdisp 画像解像度を変更する %group 画面制御命令 %prm p1 p1=0〜3(0) : 画像解像度の設定 %inst 現在の表示解像度を強制的に変更します。 設定する値は以下の通りです。 ^p 0 = 起動時の設定に戻す 1 = 640x480 フルカラーモードにする 2 = 640x480 パレットモードにする 3 = 640x480 で現在のカラーモードと同じ ^p chgdisp命令が実行されると、その結果がシステム変数stat に反映されます。システム変数statの内容は以下の通りに なります。 ^p stat=0 : 正常に解像度が設定された。 stat=1 : カラーモードの変更はできなかったが、 解像度の変更は正常に行なわれた。 stat=2 : 解像度の変更ができなかった。 ^p %index color カラー設定 %group 画面制御命令 %prm p1,p2,p3 p1,p2,p3=0〜255(0) : 色コード(R,G,Bの輝度) %inst メッセージ表示、描画などの色を指定した値に設定します。 p1,p2,p3がそれぞれ、R,G,Bの輝度になります。 ^ 0が最も暗く、255が最も明るくなります。 color 0,0,0 は黒に、color 255,255,255 は白になります。 パレットモードの画面では、指定した色に一番近いパレット が選択されます。 %href palcolor %index font フォント設定 %group 画面制御命令 %prm "fontname",p1,p2 p1=1〜99(12) : フォントの大きさ p2=0〜(0) : フォントのスタイル %inst mesおよびprint命令などで表示するテキスト書体の設定をします。 "fontname"でフォントの名前を指定します。 ^ フォント名は、"MS 明朝"、"MS ゴシック" などのフォント 名を直接指定してください。 フォントの大きさはドット数に比例した論理サイズで指定します。 数が大きいほど、文字も大きくなります。フォントのスタイルは、 ^p スタイル 1 太文字 スタイル 2 イタリック体 スタイル 4 下線 スタイル 8 打ち消し線 スタイル16 アンチエイリアス ^p となります。数値を合計することで複数のスタイルを同時に指定する ことも可能です。p2を省略すると、0(通常のスタイル)になります。 ^ スタイル16を指定すると、文字の縁にあるギザギザが消えて滑らかな 表示になります。ただし、画面モードがフルカラーで初期化されている 必要があるほか、ビデオカードのドライバや環境によってサポートされない こともあるので必ずしも反映はされないという点にご注意下さい。 (画面のプロパティ「効果」で「スクリーンフォントの縁を滑らかにする」が チェックされていると動作する場合などもあります) ^ 初期設定やシステム指定のフォントに戻すには、sysfont命令を 使用してください。また、オブジェクトのフォントを変更する 場合には、objmode命令でモードの指定を行なう必要があります。 %href sysfont objmode %index gcopy 画面コピー %group 画面制御命令 %prm p1,p2,p3,p4,p5 p1=0〜31(0): ウインドゥID p2,p3 : コピー元の左上X,Y座標 p4,p5 : コピーする大きさX,Y(ドット単位) %inst gcopy命令は、指定したウインドゥIDの画面の一部を、 現在の描画先カレントポジションにコピーします。 コピー元のウインドゥIDは、自分のウインドゥIDと同じか または、screen命令やbuffer命令で初期化されたウインドゥ IDでなければなりません。 ^ gcopy命令でコピーする場合は、gmode命令によってコピー するモードをいくつか選ぶことができます。 ^ gcopy命令でパレットモード画面の画像をコピーする際には注意が必要です。 コピーする2つのウインドゥのパレットを共通にするか、またはコピー元の 画像が使っているパレットカラーと同じものが、コピー先にも存在しなければ 正しくない色でコピーされおかしな画像になってしまいます。 %href gmode gzoom %index getpal パレット読み出し %group 画面制御命令 %prm p1 p1=0〜255(0) : パレットコード %inst 現在の画面に設定されているパレットの色データを読みだし ます。指定したパレットコードのRGB輝度が、rval,gval,bval の変数に自動的に代入されます。 %index gmode 画面コピーモード設定 %group 画面制御命令 %prm p1,p2,p3,p4 p1=0〜6(0) : 画面コピーモード p2,p3 : コピーする大きさX,Y(ドット単位) p4=0〜256(0) : 半透明合成時のブレンド率 %inst gcopyで使用されるモードおよび、サイズ、ブレンド率などを設定します。 それぞれのコピーモード動作は以下の通りです。 ^ ・モード0 = 通常のコピー(bitblt) ^p WindowsのシステムAPIを使った画像コピーを行ないます。 最も標準的なモードです。 ^p ・モード1 = メモリ間コピー ^p 画像バッファ間のメモリコピーを行ないます。 コピー元とコピー先は、同じ画像モード(パレットあり・なし) でなければなりません。 モード0よりも速度面で有利な場合があります。 ^p ・モード2 = 透明色付きコピー ^p モード1と同様の方法でコピーを行ないますが、RGBが0の ドットは透明色とみなされコピーされません。 ^p ・モード3 = 半透明合成コピー ^p フルカラーモード時のみ使用することができます。 gmodeの4番目のパラメーターで指定したブレンド率による 半透明合成コピーを行ないます。 ブレンド率は0〜256の値となり、256で完全なコピーに なります。 ブレンド率が0の場合はコピーは実行されません。 また、ブレンド率が256以上はメモリ間コピーが実行されます。 ^p ・モード4 = 透明色付き半透明合成コピー ^p モード3と同様の方法でコピーを行ないますが、RGB値が color命令で設定された色と同じドットは透明色とみなされ コピーされません。 ブレンド率が0の場合はコピーは実行されません。 ^p ・モード5 = 色加算合成コピー ^p フルカラーモード時のみ使用することができます。 gmodeの4番目のパラメーターで指定したブレンド率による 色加算合成コピーを行ないます。 色加算では、コピー先のRGB値に、コピー元のRGB値を加算します。 加算時に輝度が255を越える場合は、255にクランプされます。 ^p ・モード6 = 色減算合成コピー ^p フルカラーモード時のみ使用することができます。 gmodeの4番目のパラメーターで指定したブレンド率による 色減算合成コピーを行ないます。 色減算では、コピー先のRGB値から、コピー元のRGB値を減算します。 減算時に輝度が0を下回る場合は、0にクランプされます。 ^p これらのモードは、gzoom命令では使用されません。 あくまでもgcopy命令使用時なので注意してください。 また、gmodeは現在gsel命令で選択されているウインドゥID のモードが変更されます。gmodeの設定後に、別なウインドゥIDで gcopy命令を実行しても設定が反映されないので注意してください。 ^ また、モード0以外でコピーを行なう場合には、コピー元やコピー先の 画面初期化Xサイズ(横サイズ)が4の倍数になるように注意してください。 HSPでは、高速化のためXサイズが4の倍数でないコピーをサポートして いません。Xサイズが4の倍数でない場合にモード0以外でコピーを行なうと は画像が斜めに崩れるなどの不具合が起こることがあります。 ^ (p2,p3)はコピーサイズのデフォルトを設定します。この値 は、gcopy,gzoom命令でコピーする大きさの値を省略した 場合にデフォルトで使われるサイズです。 %href gcopy %index gsel グラフィック操作先指定 %group 画面制御命令 %prm p1,p2 p1=0〜31(0) : ウインドゥID p2=0〜1(0) : ウインドゥアクティブスイッチ %inst 画面制御命令の描画先を指定したウインドゥIDの画面に変更します。 これ以降は、p1で指定したウインドゥIDの画面に対して、 mes命令やpicload命令などの画面描画に関する命令が実行されるようになります。 ^ p2でオプションのスイッチが指定できます。p2の値が、 ^p -1 : 指定したウインドゥを非表示にする 0 : 指定したウインドゥに特に影響はない 1 : 指定したウインドゥがアクティブになる 2 : 指定したウインドゥがアクティブになり、さらに常に最前面になる ^p のようにウインドゥの状態を変更することができます。 p2の指定を省略した場合は、特に何も影響はありません。 ^ p2=-1で非表示にした場合は、指定したウインドゥが消えますが完全に消去される わけではありません。再びp2=1か2でアクティブにすると復帰します。 %index gzoom 変倍して画面コピー %group 画面制御命令 %prm p1,p2,p3,p4,p5,p6,p7 p1,p2 : 画面にコピーする時の大きさX,Y(ドット単位) p3=0〜31(0): ウインドゥID p4,p5 : コピー元の左上X,Y座標 p6,p7 : コピーする大きさX,Y(ドット単位) %inst gzoom命令は、指定したウインドゥIDの画面の一部を、 現在の描画先カレントポジションに、任意の大きさに変倍してコピーします。 コピー元のウインドゥIDは、自分のウインドゥIDと同じか または、screen命令やbuffer命令で初期化されたウインドゥ IDでなければなりません。 ^ gzoom命令でパレットモード画面の画像をコピーする際には注意が必要です。 コピーする2つのウインドゥのパレットを共通にするか、またはコピー元の 画像が使っているパレットカラーと同じものが、コピー先にも存在しなければ 正しくない色でコピーされおかしな画像になってしまいます。 %href gcopy %index palcolor 描画パレット設定 %group 画面制御命令 %prm p1 p1=0〜255(0) : パレットコード %inst メッセージ表示、描画などの色を指定した値に設定します。 p1はパレットコードになります。パレットコードは、mag,bmp などの16色、256色の画像ファイル表示時に使われたパレット の何番目かを示すものです。 %href color palette %index palcopy 別画面のパレットをコピー %group 画面制御命令 %prm p1 p1=0〜31(0): ウインドゥID %inst p1で指定されたウインドゥIDが使用しているパレットの内容 をすべて、現在選択されている画面にコピーします。 これは、buffer命令などで作成した仮想画面に読み込んだ 256色の画像を別のウインドゥIDにコピーする時などに、 パレットの内容を合わせておくためのものです。 ^ ただし、メインウインドゥ(ウインドゥID0)は、仮想画面に picloadで画像を読み込んだものが自動的に反映されるように なっています。palcopy命令は、複数のウインドゥで別々な パレットを使用する時など、必要に応じて使用してください。 また、cls命令を使用するとパレットの内容がすべてクリアされるので、 palcopy命令をcls命令の後に使用するように注意してください。 %href palcolor palette getpal %index palette パレット設定 %group 画面制御命令 %prm p1,p2,p3,p4 p1=0〜255(0) : パレットコード p2,p3,p4=0〜255(0) : 色コード(R,G,Bの輝度) %inst 現在の画面に設定されているパレットの色データを変更します。 p1のパレットコードにp2,p3,p4で指定した輝度のRGBカラーを設定します。 この命令は、パレットに値を設定しますが、すぐには画面上に反映されません。 設定したパレット実際に反映させるには、 palfade命令を使ってパレットを更新しなければなりません。 %href palfade %index palfade パレットフェード %group 画面制御命令 %prm p1,p2,p3 p1=-256〜256(0) : 輝度変更値 p2= 0〜255(0) : スタートパレットコード p3= 0〜255(255) : エンドパレットコード %inst パレットの輝度を現在設定してある状態からp1で指定する 値だけ変更します。 ^p 例: palfade -10,0,15 ^p 上の例では、パレットコード0から15までのRGB輝度をすべて -10します。p2,p3を省略すると、すべてのパレットの輝度が 変更されます。palfade命令により、パレットモードで画面の フェードイン・アウトを実現することができます。 ^ palfade命令は、パレットに設定されている輝度を変更する ことはしません。あくまでも、一時的に輝度を変更して画面 に反映させるだけです。つまり、palfade -128はすべての パレットを半分の暗さにしますが、次にpalfade 0を実行すれ ば、パレットはもとの明るさにもどります。 ^ また、輝度変更値を正の方向(1〜256)へ指定すると、パレット の輝度が加算され白に近づいていきます。これにより、ホワ イトアウトの表現が可能です。 %href palette palcopy %index pget 1dotの点を取得 %group 画面制御命令 %prm p1,p2 p1,p2 : 画面上のX,Y座標 %inst 画面上の1ドットの色データを読みだします。 ^ 指定した座標のRGB輝度が、rval,gval,bvalの変数に自動的 に代入されます。 %index picload 画像ファイルをロード %group 画面制御命令 %prm "filename",p1,p2,p3 "filename" : ロードするファイル名 p1=0〜1(0) : 画像ロードモード p2,p3 : 新規ウインドゥサイズX,Y %inst 画像ファイルをロードします。通常は、 ^p picload "test.bmp" ^p とするだけで、"test.bmp"で指定された画像ファイルが現在の 画面にロードされ、ウインドゥサイズが自動的に絵のサイズに 合わせられます。 ^ p1の画像ロードモードは、 ^p モード0:ウインドゥを初期化してロード モード1:現在の画面の上にロード ^p p1のロードモードを省略もしくは0にすることで、画像のサイズ で初期化したウインドゥにロードされます。その際に、(p2,p3) でウインドゥのサイズを指定できるようになります。たとえば、 ^p picload "test.jpg",0,600,400 ^p は、HSPの画面を画像ファイルの大きさで初期化してロード します。その際に画像が600x400よりも大きい場合は、ウインドゥ には一部だけが表示されウインドゥサイズは600x400になります。 この場合は、スクロールバーが付加され画像をスクロールさせる ことができるようになります。 ^ p1にロードモード1を指定することで、現在のウインドゥの サイズなどを一切変更せず指定した座標からロードすることが できます。この場合は、(p2,p3)がロードする座標の左上XYになり ます。ただし、MAG,JPGファイルで画面の領域からはみ出るような 座標を指定するとエラーになります。 ^ 画像ファイル名は、拡張子も含めて完全な形で書いてください。 画像の形式は、拡張子で判断されます。現在ロードできる、 ファイル形式は以下の通りです。 ^p BMP形式 : 拡張子 BMP : Windows標準の4,8,24bitのデータ。             RLE圧縮のデータも扱うことができます。 MAG形式 : 拡張子 MAG : MAG形式のデータ。             16色、256色のどちらでもOKです。 JPEG形式 : 拡張子 JPG : JFIF標準のJPEGデータ。             グレイスケールデータでもOKです。 ^p フルカラーデータを扱うJPEG形式をロードする時、画面のモード がパレットモードだった時は、自動的に最適なパレットが選ばれ、 もとのイメージに近い画像が表示されます。 ^ picload命令は、HSPのメイン画面、及びscreen、buffer、bgscr 命令で初期化された画面に対して実行することができます。 また、buffer命令で初期化された画面に対して読み込みをした時 のみ、ロードされた画像のパレットが自動的にHSPのメイン画面 (ウインドゥID0)にも適用されます。この機能により、仮想画面 からメイン画面へgcopy命令などで画像を手軽に転送できるよう になります(オートパレットマッチング機能)。 %index pos カレントポジション設定 %group 画面制御命令 %prm p1,p2 p1,p2 : カレントポジションのX,Y座標 %inst メッセージ表示、オブジェクトの表示などの基本座標となる カレントポジションの座標を指定します。 ^ Xは一番左が0に、Yは上が0になり、1ドット単位の指定になります。 パラメータの省略をすると、現在の値が使われます。 %index pset 1dotの点を表示 %group 画面制御命令 %prm p1,p2 p1,p2 : 画面上のX,Y座標 %inst 画面上に1ドットの点を描画します。 ^ 描画色は、color命令またはpalcolor命令で設定されたものになります。 %index redraw 再描画の設定 %group 画面制御命令 %prm p1,p2,p3,p4,p5 p1=0〜3(1) : 描画モードの設定 p2,p3 : 再描画する左上X,Y座標 p4,p5 : 再描画する大きさX,Y(ドット単位) %inst 画面の描画モードを指定します。描画モードとは、 ^ 描画モード0 (2): ^p mes,print,gcopy,gzoomなどの画面制御命令が実行されて も仮想画面を書き換えるだけで、実際の画面には反映され ません。 ^p 描画モード1 (3): ^p 画面制御命令が実行されると、実際の画面にも反映されます。 ^p となっています。通常は描画モード1です。 描画モード0で画面内に画像をコピーしたり、メッセージ を表示しておいて、最後にモード1にすることで画面の書 き換えのちらつきをなくしスムーズに見せることができます。 ^ モード1を指定した場合は即座に画面の更新を行います。 それ以外のモードを指定した場合は、描画モードのみを変更し 画面の更新はされません。 ^ また、p2〜p5までのパラメータにより、画面の一部だけを 再描画させることが可能です。通常は省略すれば、全画面の更新を 行ないます。 %index screen ウインドゥIDを初期化 %group 画面制御命令 %prm p1,p2,p3,p4,p5,p6,p7,p8 p1=0〜31(0) : ウインドゥID p2,p3 : 初期化する画面サイズX,Y(1ドット単位) p4=0〜31 : 初期化する画面モード p5,p6 : ウインドゥの配置X,Y(1ドット単位) p7,p8 : クライアントエリアのサイズX,Y(1ドット単位) %inst 指定したウインドゥIDを初期化して使用できるようにし ます。HSPの初期状態では、ウインドゥID0の画面しか使用 されていませんが、ウインドゥID2〜31までを自由に使って ウインドゥやメモリ上の仮想画面を作成することができま す。screen命令を使うと、ディスプレイ上に新しいウイン ドゥが作成されます。このウインドゥはサイズを自由に変 えられ、スクロールバーを付加し内容をスクロールさせる ことができます。 ^ p4の初期化する画面モードは、以下から選ぶことができます。 ^p 1 = パレットモード(1670万色中256色)で作成する 2 = 非表示のウインドゥを作成する 4 = サイズ固定ウインドゥ 8 = ツールウインドゥ 16 = 深い縁のあるウインドゥ ^p p4パラメータに「+1」(パレットモードで作成する)を指定した場合は、 パレットあり256色のモードで画面が作成されます。このモードを指定 しなかった場合は、フルカラー(24bitカラー)の画面が作成されます。 ^ p4パラメータに「+2」(非表示のウインドゥを作成する)を指定した場合は、 実行時にはウインドゥが表示されませんが、「gsel ID,1」で表示させることが 可能です。 ^ p4パラメータのうち「+4」「+8」「+16」はそれぞれウインドゥのスタイルを 設定するためのものです。「サイズ固定ウインドゥ」は、ID2以降の ウインドゥでも、ID0のウインドゥと同様のサイズ変更が不可能なスタイルで 作成されます。 「ツールウインドゥ」は、タイトルバーのサイズが小さくなりタスクバーに ウインドゥ名が表示されないウインドゥが作成されます。 ^ p4パラメータが省略された場合は、現在のWindows画面モードがパレットあり (256色)の場合はパレットモードで作成され、そうでない場合はフルカラーの 画面として作成されます。 ^ 画面モードの値は、値を合計することで複数の設定を行なうことが できます。たとえば、 ^p screen 2,320,240,4+8 ^p は、サイズ固定+ツールウインドゥのスタイルを持ったものが作成されます。 ^ screen命令は、すでに初期化されているウインドゥIDを ふたたび別の設定で再初期化することも可能です。 ^p 例: screen 0,640,480,1 ^p 上の例では、ウインドゥID0、つまりメインウインドゥを 640x480ドット、パレットモードで再初期化します。 ^ p7,p8のパラメータで、ウインドゥのクライアントサイズ (実際に表示される大きさ)を指定することができます。 クライアントサイズが初期化サイズよりも小さい場合には、 スクロールバーが付加されます(ID1〜31のみ)。 ^ screen命令で画面を初期化した後はそのウインドゥIDが 画面制御命令の描画先になります。 %href bgscr buffer %index width ウインドゥサイズ設定 %group 画面制御命令 %prm p1,p2,p3,p4 p1,p2 : クライアントエリアのサイズX,Y(1ドット単位) p3,p4 : ディスプレイ上でのウインドゥX,Y座標(1ドット単位) %inst ウインドゥのクライアントサイズ(実際に表示される大きさ)と ウインドゥ表示位置を変更します。 クライアントサイズは、screen命令やbuffer,bgscr命令で初期化された 画面サイズより大きくすることはできません。 ^ p1,p2およびp3,p4パラメータが省略された場合は、現在の設定が使われます。 %href screen buffer bgscr %index sysfont システムフォント選択 %group 画面制御命令 %prm p1 p1=0〜 : フォント種類指定 %inst システム標準のフォントを選択します。 p1で、フォントの種類を指定します。これは以下の中から選びます。 ^p p1 font set --------------------------------------------------------- 0 : HSP標準システムフオント 10 : OEM 文字セットの固定幅フォント 11 : Windows 文字セットの固定幅システムフォント 12 : Windows 文字セットの可変幅システムフォント 13 : 標準システムフォント 17 : デフォルトGUIフォント (標準の環境でメニューやダイアログボックスに使われています) ^p p1が省略された場合は、標準システムフォントが選択されます。 %href font %index line 直線を描画 %group 画面制御命令 %prm p1,p2,p3,p4 p1,p2 : 点1の画面上のX,Y座標 p3,p4 : 点2の画面上のX,Y座標 %inst 画面上に、(p1,p2)と(p3,p4)を結ぶ直線を描画します。 (p3,p4)を省略した場合は、カレントポジションから(p1,p2)までの 直線が描画されます。 ^ 描画色は、color命令またはpalcolor命令で設定されたものに なります。 ^ line命令実行後は、(p1,p2)の座標がカレントポジションになります。 これにより、連続した直線を描画していくことが可能です。 %href pos color palcolor