HSPリファレンス トップ »

オブジェクト制御 (HSP3)


button命令

・オブジェクト制御命令
button goto/gosub "name",*label		[ボタン表示]
"name" : ボタンの名前
*label : 押した時にジャンプするラベル名
カレントポジションにオブジェクトとして押しボタンを配置します。
ボタンには、"name"で指定された文字列が書かれ、マウスでボタンをクリック
すると、*labelで指定した場所にプログラムの制御が移ります。

button gotoと記述した場合は、ラベルにジャンプ。button  gosubと記述した
場合は、 ラベルにサブルーチンジャンプを行ないます。goto、gosubキーワー
ドを省略した場合には、gotoと同じ動作になります。

例 :
	button gosub "ボタン",*aaa  ; *aaaを呼び出すボタンを作成


オブジェクトの大きさはobjsize命令で指定することができます。 ボタンを配
置すると、カレントポジションは次の行に自動的に移動します。

ボタンが押された時にジャンプして実行されるプログラムでは、
システム変数statの初期値としてオブジェクトIDが代入されます。

§ objsize


chkbox命令

・オブジェクト制御命令
chkbox "strings",p1		[チェックボックス表示]
"strings" : チェックボックスの内容表示文字列
p1=変数   : チェックボックスの状態を保持する変数
カレントポジションにオブジェクトとしてチェックボックスを配置します。
チェックボックスには、"strings"で指定した文字列の左側に、カーソルで
ON/OFFを切り替えることのできるスイッチがついたオブジェクトです。

チェックボックスの大きさは、 objsizeで指定されたサイズになり背景はグレ
ーです。

p1で指定された数値型変数の内容が0ならばチェックはOFFになり、 1ならばON
になります。チェックのON/OFFが変更されると、変数の内容も同時に変化しま
す。

§ objsize


clrobj命令

・オブジェクト制御命令
clrobj p1,p2		[オブジェクトをクリア]
p1=0〜(0)  : 消去するオブジェクトID(開始)
p2=0〜(-1) : 消去するオブジェクトID(終了)( -1の場合は、 最終のIDが指定
されます )
button命令やmesbox命令などで出したオブジェクトを消去します。

p1,p2を省略して、 clrobjだけを実行させると画面上のオブジェクトがすべて
消去されます。一部のオブジェクトだけを消去したい場合は、p1に最初のID、
p2に最後のIDを指定すればp1〜p2までのオブジェクトだけが消去されます。指
定するオブジェクトIDは、 objprm命令などで指定するIDと同じものです。

削除されたオブジェクトのIDは、新しくオブジェクトを配置す際には再利用さ
れます。


combox命令

・オブジェクト制御命令
combox p1,p2,p3		[コンボボックス表示]
p1=変数      : コンボボックスの状態を保持する数値型変数
p2=0〜(100)  : 拡張Yサイズ
p3="strings" : コンボボックスの内容を示す文字列
カレントポジションにオブジェクトとして、コンボボックスを配置します。
コンボボックスは、複数の文字列要素の中から1つを選択させることのできる
入力オブジェクトです。
オブジェクトの大きさは、objsize命令で設定した大きさになります。ただし、
p2パラメータで選択時のリスト表示のためのYサイズを指定しなければなりま
せん。 (通常は100〜150程度が適当です)

「\n」で区切った文字列をp3で指定することで、選択する要素を設定すること
ができます。
たとえば、「APPLE\nORANGE\nGRAPE」という文字列を指定すると、 「APPLE」
「ORANGE」「GRAPE」
の中から1つを選択するコンボボックスになります。
それぞれの要素には、0から順番にインデックス番号がついています。 前の例
では、「APPLE」は
インデックス0、「ORANGE」はインデックス1、「GRAPE」はインデックス2とい
うふうに番号がついていきます。

この「\n」で区切るというデータ形式は、メモリノートパッド命令で扱う複数
行テキストデータと同じです。メモリノートパッド命令で作成したデータをそ
のままcombox命令にも使用できます。

ユーザーが選択をすると、p1で指定した数値型変数にインデックス番号が代入
されます。
最初にコンボボックスが配置される際には、p1で設定した変数が示すインデッ
クスが選ばれた状態になります。 (インデックス番号が-1の時は非選択の状態
になります)
	a=0:objsize 120,24
	combox a,120,"APPLE\nORANGE\nGRAPE"
	stop

§ objsize


input命令

・オブジェクト制御命令
input p1,p2,p3,p4		[入力ボックス表示]
p1=変数 : 入力のための変数
p2,p3   : メッセージボックスのサイズ(ドット単位)
p4=0〜  : 入力できる最大文字数
カレントポジションにオブジェクトとして入力ボックスを配置します。 p2,p3
で大きさを指定して、場所はカレントポジションからになります。 p2,p3が省
略された場合は、objsizeで指定されたサイズになります。

入力ボックスは、キーボードから直接入力することのできる小さな窓です。マ
ウスで入力ボックスをクリックしてカーソルを出した状態で、キーボードから
パラメータを入力することができるようになります。入力した値は、p1で指定
した変数に代入されます。もし、p1の変数が文字列型だった場合には入力した
文字列が、数値型だった場合には入力した値がそのまま変数に反映されます。

入力ボックスは初期状態では、p1で指定した変数に代入されていた値が、ボッ
クス内に表示されます。

p4で、入力できる最大文字数を指定することができます。p4が省略された場合
には、p1で指定された変数に格納できる最大文字数が自動的に割り当てられます。
(変数が文字列型以外だった場合はデフォルトで32文字までとなります。)
p4を0に指定した場合は、そのバージョンのWindowsで扱える最大文字数が
入力可能になります。

入力ボックスを配置すると、カレントポジションは次の行に自動的に移動します。

§ mesbox objsize


listbox命令

・オブジェクト制御命令
listbox p1,p2,p3		[リストボックス表示]
p1=変数      : リストボックスの状態を保持する数値型変数
p2=0〜(100)  : 拡張Yサイズ
p3="strings" : リストボックスの内容を示す文字列
カレントポジションにオブジェクトとして、リストボックスを配置します。
リストボックスは、複数の文字列要素の中から1つを選択させることのできる
入力オブジェクトです。
オブジェクトの大きさは、objsize命令で設定した大きさになります。ただし、
p2パラメータで選択時のリスト表示のためのYサイズを指定しなければなりま
せん。 (通常は100〜150程度が適当です)

「\n」で区切った文字列をp3で指定することで、選択する要素を設定すること
ができます。
たとえば、「APPLE\nORANGE\nGRAPE」という文字列を指定すると、 「APPLE」
「ORANGE」「GRAPE」の中から1つを選択するリストボックスになります。
それぞれの要素には、0から順番にインデックス番号がついています。 前の例
では、「APPLE」はインデックス0、「ORANGE」はインデックス1、「GRAPE」は
インデックス2というふうに番号がついていきます。

この「\n」で区切るというデータ形式は、メモリノートパッド命令で扱う複数
行テキストデータと同じです。メモリノートパッド命令で作成したデータをそ
のままlistbox命令にも使用できます。

ユーザーが選択をすると、p1で指定した数値型変数にインデックス番号が代入
されます。
最初にリストボックスが配置される際には、p1で設定した変数が示すインデッ
クスが選ばれた状態になります。 (インデックス番号が-1の時は非選択の状態
になります)
	a=0:objsize 120,24
	listbox a,120,"APPLE\nORANGE\nGRAPE"
	stop

§ objsize


mesbox命令

・オブジェクト制御命令
mesbox p1,p2,p3,p4,p5		[メッセージボックス表示]
p1=変数    : 表示メッセージが代入された文字列型変数
p2,p3      : メッセージボックスのサイズ(ドット単位)
p4=0〜(1)  : メッセージボックスのスタイル
p5=0〜(-1) : 入力できる最大文字数
ウィンドウ上にオブジェクトとして、 メッセージボックス(メッセージ表示用
の窓)を配置します。p2,p3で大きさを指定して、場所はカレントポジションか
らになります。
メッセージボックスのスタイルに設定する値(p4)は、以下の通りになります。

   値 : 対応するキー
 ---------------------------------------------------------------
    0 : スクロール可能なエディットボックス(書き換え不可)
    1 : スクロール可能なエディットボックス(書き換え可能)
    4 : 横スクロールバー付きエディットボックス(書き換え不可)
    5 : 横スクロールバー付きエディットボックス(書き換え可能)

書き換え可能なエディットボックスを作成すると、ユーザーが好きに文字を入
力できる簡単なテキストエディタになります。

p5で、入力できる最大文字数を指定することができます。
p5が0の場合は、そのバージョンのWindowsで扱える最大文字数になります。
p5が省略されるかマイナス値の場合には、p1で指定された変数に格納できる
最大文字数が自動的に割り当てられます。

§ input


objmode命令

・オブジェクト制御命令
objmode p1,p2		[オブジェクトモード設定]
p1=0〜(0) : オブジェクトフォント設定モード指定
p2=0〜1   : フォーカス移動キー指定(0=OFF/1=ON)
button,input,mesbox などのオブジェクト制御命令で使用されるスタイル等を
設定するための命令です。
p1でフォント設定及び、スタイルに関するモードを指定することができます。
これにより、以降のオブジェクト配置命令実行時のスタイル設定が変わります。
モードの値と内容は以下の通りです。

   p1 : モード
 ------------------------------------------------------------
    0 : HSP標準フォントを使用
    1 : デフォルトGUIフォントを使用
    2 : font命令で選択されているフォントを使用

ウィンドウが初期化された直後は、モード1に設定されています。

モード2に変更した場合は、 font命令で指定したフォントが使われるようにな
ります。これは、オブジェクト制御命令が実行される時点で、設定されている
フォントが使用されます。 objmode命令が実行された時点のフォントではない
ので注意してください。

p2で、[TAB]キーによるオブジェクトのフォーカス移動モードの ON/OFFを行な
います。 p2を1に指定した場合は、表示されているオブジェクトの入力フォー
カスを[TAB]キーで移動することができます。
p2のモード指定を省略した場合は、以前のモードを引き継ぎます。

  p2 : モード
 --------------------------------------------------------------
  0  : [TAB]を無効にする
  1  : [TAB]キーによるオブジェクトのフォーカス移動可能(標準)

§ button chkbox combox input listbox


objprm命令

・オブジェクト制御命令
objprm p1,p2		[オブジェクトの内容を変更]
p1=0〜(0) : オブジェクトID指定
p2        : 変更するパラメータの内容
button命令やinput,mesbox命令などで画面上に配置したオブジェクトの持つ内
容やパラメータを変更します。

p1には、オブジェクトIDを指定します。オブジェクトIDは、 0から順番に画面
上に表示したオブジェクト1つ1つに割り当てられていく番号です。
オブジェクトIDは、オブジェクトを配置する命令実行後にシステム変数statに
代入されています(通常置いた順番に0,1,2…の番号が割り当てられます)。

ここで指定されたオブジェクトをp2で指定したパラメータで変更します。
p2で指定するパラメータはオブジェクトの種類によって異なります。オブジェ
クトによって、文字列を指定するものや、数値を指定するものが分かれていま
す。詳細は下の表を参照してください。

     オブジェクト      : p2の指定
 ----------------------------------------------------------
  ボタン               : ボタン文字列の変更(文字列)
  入力ボックス(数値)   : 入力内容の変更(数値)
  入力ボックス(文字列) : 入力内容の変更(文字列)
  チェックボックス     : チェックのON/OFF(数値)
  コンボボックス       : コンボボックスの内容変更(文字列)
  リストボックス       : リストボックスの内容変更(文字列)

たとえば、チェックボックスを示すIDを指定してから、p2のパラメータに1を
指定
すると、チェックボックスを強制的にONの状態に変更します。この場合、チェ
ックボックスの内容を保持する変数の値も自動的に書き換えられます。

入力ボックスの内容を変更した場合には、自動的に入力ボックスに入力フォー
カスが設定され、ボックス内にカーソルが表示されます。

§ button input mesbox chkbox listbox combox


objsel命令

・オブジェクト制御命令
objsel p1		[オブジェクトに入力フォーカスを設定]
p1=0〜(0) : オブジェクトID指定
p1で指定したオブジェクトIDに入力フォーカスを合わせます。
入力フォーカスを合わせることにより、 mesbox命令やinput命令で配置した入
力ボックスの中に入力カーソル(キャレット)を出すことができます。この命令
は、複数の入力ボックスで任意の場所に入力フォーカスを合わせたい場合や、
次の入力ボックスにキー入力などで移動するような処理を行なうためのもので
す。また、p1に-1を指定した場合は、現在、入力フォーカスが合っているオブ
ジェクトIDをシステム変数statに代入します。


objsize命令

・オブジェクト制御命令
objsize p1,p2,p3		[オブジェクトサイズ設定]
p1=0〜(64)  : オブジェクトのX方向のサイズ(ドット単位)
p2=0〜(24)  : オブジェクトのY方向のサイズ(ドット単位)
p3=0〜(0)   : Y方向の最低確保行サイズ (ドット単位)
ボタンや入力ボックスなどを配置する時のオブジェクトの大きさを設定します。

p3でボタンやメッセージが置かれた後にカレントポジションが移動する最低量
を指定することができます。これにより、ボタンとメッセージを連続して置い
た時に同じ大きさでスペースが空くようになります。

画面がクリアされると、オブジェクトサイズは自動的にデフォルトに戻ります。

§ button chkbox combox input listbox


¤ Original Document by ONION Software / HTML Document by Let's HSP!