Let's HSP! » HSP Tips集 » HSP Tips 12
HSP Tips 12
Last Update : 2007/06/xx
HSP のいろいろなプログラミングTips情報だす。( ・_・)y
HSP3 ボタン Q&A
ボタンオブジェクトのQ&A。
- ボタンの大きさを変更するには?
⇒ 標準の objsize命令
でサイズを指定できます。設置後に変更したい場合は、Win32 API関数を使用する必要があります。HSP3本体の
common\obj.as 内に 「resizeobj」
というモジュール命令が用意されてます。
- ボタンを押しているにも関わらず、ラベルにジャンプしていません。
⇒ repeat命令やgoto命令を利用したループ中で、button命令を何度も呼ぶような処理になっていませんか。(見た目には分かりませんが、ボタンオブジェクトの上にボタンオブジェクトが重なって大量設置しているミス)
- ボタン内の文字を変更するには?
⇒ 標準の objprm命令 で変更できます。(HSP命令講座:button命令、HSP命令講座:objprm命令)
- ボタン内の文字を取得するには?
⇒ sendmsg命令
を利用した方法があります。
- ボタン内の文字を複数行で表示するには?
⇒ Win32 APIのSetWindowLong関数を利用してボタンのウィンドウスタイルを変更することで実現できます。(参照、HSP3
あれこれ:オブジェクト編1)
- ボタン内の文字の表示位置を変更するには?
⇒ 通常は中央に表示されていますが、Win32 APIのSetWindowLong関数を利用して、ボタンのウィンドウスタイルを変更することで実現できます。ただ、上下左右(+斜め方向)の定位置で、任意の場所というのはできません。(参照、HSP3
あれこれ:オブジェクト編1)
- ボタンのラベルジャンプ先を1つにまとめるには?
⇒ ボタンのラベルジャンプ先では、システム変数 stat
に押したボタンの「オブジェクトID」が返ってくるので、それを利用してジャンプ先を1つに統一することができます。
- ボタンのクリックをスクリプト上から行うには?
⇒ sendmsg命令
を利用した方法があります。
- ボタンを選択できない(灰色表示、使用不可)ようにするには?
⇒ Win32 API関数を使用する必要があります。HSP本体の common\obj.as
内に 「objgray」 というモジュール命令が用意されてます。
- ボタン内の文字色や背景色を変更するには?
⇒ 文字色や背景色を一発で変更できるHSPの命令は存在しません。一般的には、Win32
API関数を駆使して、ボタンオブジェクトの描画処理をすべて自前で用意する「オーナードロー」(オーナー描画)というとても面倒な手法を行います。(
参照、HSP Tips:オーナードローボタン、HSP開発Wiki:ボタンのデザイン変更)
ボタン上に画像を貼り付ける、button命令を使わないでボタン風に動く擬似的なものを標準命令で作る、などが代替手段としてあります。
- イメージボタン(画像ボタン)を表示するには?
⇒ ボタン上に画像を貼り付けるには、sendmsg命令でボタンコントロールにBM_SETIMAGEメッセージを送る方法があります。「llmod3」(llmod.asモジュールのHSP3版の「btnimg命令」)にモジュールが用意されています。また、button命令を使わないで、マウスの動きを監視してボタン風に動く標準命令でぜんぶ作ってしまう手段もあります。
HSP 3.2以降は、button命令のボタンを画像ボタン化するobjimage命令という新規対応のものが用意されてます。
- ラジオボタンを表示するには?
⇒ ボタンの見た目を変えただけなのがラジオボタンなので、Win32
APIのSetWindowLong関数を使って、ボタン(チェックボックス)のウィンドウスタイルを変更すれば実現できます。(→
参照、HSP3 あれこれ
オブジェクト編1)
^
HSP3 チェックボックス Q&A
チェックボックスオブジェクトのQ&A。
- チェックボックスの大きさを変更するには?
⇒ 標準の objsize命令
でサイズを指定できます。設置後の変更は、Win32 API関数を使用する必要があり、HSP3本体の
common\obj.as 内に 「resizeobj」
というモジュール命令が用意されています。
- チェックボックスのチェック項目の有効/無効を切り替えるには?
⇒ 標準の objprm命令 で変更できます。(HSP命令講座:chkbox命令、HSP命令講座:objprm命令)
- チェックボックス内の文字を変更するには?
⇒ sendmsg命令
を利用して、WM_SETTEXTメッセージを送信する方法があります。HSP2で利用できたobjprm命令は、HSP3ではエラーで機能しません。
- チェックボックス内の文字を取得するには?
⇒ sendmsg命令
を利用して、WM_GETTEXTメッセージを送信する方法があります。
- チェックボックス内の文字を複数行で表示するには?
⇒ Win32 APIのSetWindowLong関数を利用して、チェックボックスのウィンドウスタイルを変更することで実現できます。(参照、HSP3 あれこれ
オブジェクト編1)
- チェックボックスのチェックの変化をリアルタイムで知るには?
⇒ chkbox命令の第1パラメータの変数の動きをループ内で監視します。上級者向けとして、oncmd命令(WM_COMMANDメッセージ)を利用して、button命令のラベルジャンプ処理をうまく利用する方法もあります。(参照、HSP命令講座:chkbox命令、HSP3
あれこれ:オブジェクト編1)
- チェック項目部分を右側に表示させるには?
⇒ 通常は右側に表示されていますが、Win32 APIのSetWindowLong関数を利用して、チェックボックスのウィンドウスタイルを変更することで実現できます。(参照、HSP3
あれこれ:オブジェクト編1)
- チェック項目部分が丸い形状のオブジェクトを表示するには?
⇒ 1グループ内で1個のみ選択できる「ラジオボタン」では? HSPの標準命令には存在しませんが、作成モジュールを公開しています。(参照、HSP3
あれこれ:オブジェクト編1)
^
HSP3 入力ボックス Q&A
入力ボックスオブジェクトのQ&A。
- 入力ボックスの内容を変更するには?
⇒ input命令の第1パラメータの変数にあらかじめ指定しておきます。設置後の変更は、objprm命令を使用します。(参照、HSP命令解説講座:input命令)
- 入力ボックス内の内容を変更できないよう編集不可状態にするには?
⇒ sendmsg命令 でEM_SETREADONLYメッセージを送信することで実現できます。(参照、HSP3
あれこれ:オブジェクト編2)
- 編集不可状態の入力ボックスの背景色を変更するには?
⇒ oncmd命令(WM_CTLCOLORSTATICメッセージ)とWin32 API関数を利用することで、灰色(っぽい)表示の背景色を変更できます。(参照、HSP3
あれこれ:オブジェクト編2)
- 入力ボックス内の文字色や背景色を変更するには?
⇒ oncmd命令(WM_CTLCOLOREDITメッセージ)とWin32 API関数を利用することで、それぞれ1つの色で反映することができます。(参照、HSP3
あれこれ:オブジェクト編2)
- 入力ボックス内の文字色を単語ごとに変更するには?
⇒ input命令で通常指定できるのは、1つの文字色だけです。
- 入力ボックスを複数行入力できるようにするには?
⇒ input命令は、1行入力ボックスです。たとえば、2行入力ボックスのようなものは通常実現できません。複数行であればメッセージボックス(mesbox命令)の利用をどうぞ。
- 入力ボックスの文字入力をリアルタイムでチェックするには?
⇒ input命令の第1パラメータの変数の動きをループ内で監視します。他に、上級者向けとして、oncmd命令(WM_COMMANDメッセージ)でEN_CHANGE通知をチェックする方法もあります。(参照、HSP3
あれこれ:オブジェクト編2)
- 入力ボックス内の文字の表示位置を変更するには?
⇒ 通常、文字は左寄せ表示ですが、Win32 APIのSetWindowLong関数をを使って、入力ボックスのウィンドウスタイルを変更すれば、中央表示と左寄せ表示が実現できます。(参照、HSP3
あれこれ:オブジェクト編2)
- 英文字の入力が常に大文字or小文字変換される入力ボックスを表示するには?
⇒ Win32 APIのSetWindowLong関数を使って、入力ボックスのウィンドウスタイルを変更すれば実現できます。(参照、HSP3
あれこれ:オブジェクト編2)
- 数字しか入力できない入力ボックスを表示するには?
⇒ Win32 APIのSetWindowLong関数を使って、入力ボックスのウィンドウスタイルを変更すれば実現できます。もし、数字以外の文字入力が行われたらツールチップが表示されます。(参照、HSP3
あれこれ:オブジェクト編2)
- 外枠にへこみが存在しない入力ボックスを表示するには?
⇒ Win32 APIのSetWindowLong関数とSetWindowPos関数を利用して、拡張ウィンドウスタイルを変更することで実現できます。(参照、HSP3
あれこれ:オブジェクト編2)
- 入力ボックス内でのエンターキー押しを判定するには?
⇒ HSPの getkey命令 や stick命令 を利用すると、日本語入力変換(IME)の際のエンターキー(Enterキー、Returnキー)に反応してしまいます。onkey命令を利用した手法があります。(参照、HSP命令解説講座:input命令)
- 入力した文字を「*」(アスタリスク)で隠すパスワードボックスに表示するには?
⇒ input命令で表示した入力ボックスに対して、sendmsg命令 でEM_SETPASSWORDCHARメッセージを送信することで実現できます。半角文字であれば、隠す記号に「*」以外も指定できます。(参照、HSP命令解説講座:input命令)
^
<< HSP Tips 11 || HSP Tips 13 >>
Let's HSP! » HSP Tips集 » HSP Tips 12
Copyright © 2005-2009 Kpan. All rights reserved.