ウィンドウ上に画像を貼り付けることができるようになり、 画像はあくまで画像であり、表示に関しては問題ありませんが、 現状では、利用者が行える操作は「終了する(閉じる)」というイベントしかありません。 パソコン(OS)はいろいろなコントロールを用意してくれており、 開発者(提供者)が毎度毎度、複雑なプログラムを組まなくても、 このコントロールを使うことで利用者に簡単に操作してもらうことが出来ます。 提供側の開発が楽になる(開発のコストダウンする)だけでなく、 利用側もある程度決められたコントロールである為に使いやすいと言うメリットがあります。 HSPでも、このOSの提供しているコントロール(HSPでは「オブジェクト」と呼ぶ)を 呼び出して使用することができます。 命令1つで呼び出せるオブジェクトは下記の通りとなっています。
| 分類 | 通称 | イメージ | 概要 |
|---|---|---|---|
| スイッチ系 | ボタン | 押すと予め指定したラベル位置にプログラム処理を移す。 | |
| チェックボックス | サンプル | ON/OFFを選択させる。 | |
| リスト系 | リストボックス | 一覧の中から任意の行を選択させる(予め複数のアイテムが見えている) | |
| コンボボックス | 一覧の中から任意の行を選択させる(選択アイテムのみが見える) | ||
| エディット系 | インプットボックス | 任意のテキストを入力してもらう。(1行のみで改行は入れられない) | |
| テキストエリア | 任意のテキストを入力してもらう。(複数行に対応) |
| button goto/gosub ボタン上の表記, ラベル | |||
| goto/gosub | ジャンプの方法。ジャンプ後にreturnで戻るか戻らないかの設定。 | ||
| ボタン上の表記 | ボタンのキャプション内容。 | ||
| ラベル | ジャンプ先のラベル(アスタリスクから書くこと!)。 | ||
1 2 3 4 5 |
pos 50, 50 : button "終了する", *exit // goto処理でexitラベルにジャンプする stop *exit end |
1 2 3 4 5 6 |
lbl = *exit pos 50, 50 : button "終了する", lbl // goto処理で変数lbl内のラベル先にジャンプする stop *exit end |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
pos 50, 50 : button gosub "終了する", *exit count = 10 pos 10, 20 : mes "残り" + count + "秒で爆発します!" repeat redraw 0 color 255, 255, 255 : boxf 200, 20, 220, 40 if count < 0 : break if count < 4 : color 255 : else : color , , 255 pos 200, 20 : mes count redraw count-- wait 100 loop color , 200 pos 200, 20 : mes "ウッソ〜ン。" redraw stop *exit dialog "起爆解除しますか?", 2, "確認" if stat = 7 : return // 元の位置に戻る(カウント中ならカウント処理を再開) end |
| objimage ウィンドウID, 通常X, 通常Y, 押下X, 押下Y, ホバーX, ホバーY | |||
| ウィンドウID | 予め読み込んだ画像のあるウィンドウIDを指定する。 | ||
| 通常X | 配置するボタン画像の基点となる読込元X座標を指定する。 | ||
| 通常Y | 配置するボタン画像の基点となる読込元Y座標を指定する。 | ||
| 押下X | ボタンが押された時の画像の基点となる読込元X座標を指定する。 | ||
| 押下Y | ボタンが押された時の画像の基点となる読込元Y座標を指定する。 | ||
| ホバーX | マウスオーバー時の画像の基点となる読込元X座標を指定する。 | ||
| ホバーY | マウスオーバー時の画像の基点となる読込元Y座標を指定する。 | ||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
size = 320, 100 // ボタン画像 buffer 1, size.0, size.1 * 3 color 240, 240, 200 : boxf size.0 * 0, size.1 * 0, size.0 * 1, size.1 * 1 color 200, 240, 240 : boxf size.0 * 0, size.1 * 1, size.0 * 1, size.1 * 2 color 240, 200, 240 : boxf size.0 * 0, size.1 * 2, size.0 * 1, size.1 * 3 // ボタン設定 gsel 0 font msgothic, size.1 * 2 / 3 objmode 2 objsize size.0, size.1 objimage 1, , , , size.1, , size.1 * 2 // ボタン配置 pos 50, 50 : button "終 了", *exit stop *exit end |
| chkbox チェックボックス上の表記, 状態保持変数 | |||
| チェックボックス上の表記 | チェックボックスのキャプション内容。 | ||
| 状態保持変数 | チェック状態を保持する変数。 | ||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
dim stt, 10 repeat 10 pos 50, cnt * 30 + 50 : chkbox "" + (cnt + 1), stt.cnt // チェックボックスを配置する loop pos 300, 50 : button "確認", *check stop *check s = "" repeat 10 // チェックが付いている(=1)なら処理をする if stt.cnt { if s ! "" : s += "\n" s += "" + (cnt + 1) + "にチェックが付いてます。" } loop if s ! "" { dialog s } else { dialog "チェックは付いていません。" } |
| syscolor カラーインデックス | |||
| カラーインデックス | 変更するシステムカラー番号。 | ||
| 説明 | |
| 0 | スクロールバー軸 |
| 1 | デスクトップ |
| 5 | ウィンドウ背景 |
| 6 | ウィンドウ枠 |
| 8 | ウィンドウ内のテキスト |
| 12 | MDIアプリケーションの背景 |
| 2 | アクティブウィンドウのタイトルバー(グラデーションの場合、タイトルバーの左端) |
| 27 | アクティブウィンドウのタイトルバー(グラデーションの場合、タイトルバーの右側) |
| 3 | 非アクティブウィンドウのタイトルバー(グラデーションの場合、タイトルバーの左端) |
| 28 | 非アクティブウィンドウのタイトルバー(グラデーションの場合、タイトルバーの右側) |
| 10 | アクティブウィンドウの境界 |
| 11 | 非アクティブウィンドウの境界 |
| 9 | アクティブウィンドウのタイトルバーのテキスト |
| 19 | 非アクティブウィンドウのタイトルバーのテキスト |
| 4 | メニュー背景 |
| 7 | メニュー内のテキスト |
| 29 | フラットメニュー時のハイライト表示するのに使用される(WindowsXP〜) |
| 30 | フラットメニュー時のメニューバーの背景(WindowsXP〜) |
| 13 | コントロール内における選択された項目 |
| 14 | コントロール内における選択された項目のテキスト |
| 20 | 3Dオブジェクトの最も明るい(光源方向の縁用) |
| 22 | 3Dオブジェクトの明るい(光源方向の縁用) |
| 15 | 3Dオブジェクトの表面 |
| 16 | 3Dオブジェクトの影(光源の反対方向の縁用) |
| 21 | 3Dオブジェクトの暗い影 |
| 17 | 淡色状態(無効状態)のテキスト |
| 18 | プッシュボタンのテキスト |
| 23 | ツールチップコントロールのテキスト |
| 24 | ツールチップコントロールの背景 |
| 26 | ホットトラックアイテム |
| 25 | ??? |
1 2 3 4 5 6 7 8 9 10 11 |
dim chk, 2 syscolor 15 : boxf pos 100, 50 : chkbox "同色?", chk *@ if chk.0 ! chk.1 { if chk : dialog "チェックされました。" : else : dialog "チェックが外されました。" chk.1 = chk.0 } wait 1 goto *@b |
| objsize 横幅, 高さ, Y方向の確保サイズ | |||
| 横幅 | オブジェクトの幅。省略時は現在の設定を引き継ぐ。 | ||
| 高さ | オブジェクトの高さ。省略時は現在の設定を引き継ぐ。 | ||
| Y方向の確保サイズ | 配置後の移動サイズ。 | ||
1 2 3 4 5 6 7 8 |
objsize 320, 40, 100 // オブジェクトサイズ変更 pos 160, 100 chkbox "チェックボックスのチェック可能サイズが大きくなりました。", check button "ボタンサイズも同じです。", *finish stop *finish end |