数値のみの入力しか受け付けなくする。Button上でのマウスカーソルアイコンを変える。 [汎用ゲームマップエディタ : FB]
数値のみの入力しか受け付けないようにする。EditFieldで色々やってみたけれど、今イチ。そこで、FutureBASIC4 CDに入っているサンプルソースで良さそうなものがあった。
Examples > ** Donations ** > Robert P's Favorite Examples > Text and Edit Fields > Key filter for EditText control
早速、実装。いい感じです。しかしこのフィルタ、入力部分の見た目はまるっきり、EditFieldなんですが実はEditFieldではなく文字入力が出来るApperanceButtonを使用しているので、先日実装した「EditField上でマウスカーソルアイコンを変える」が、数値入力部上では動作しなくなりました。そこで、
ev = DIALOG(0)
id = DIALOG(ev)
SELECT ev
〜中略〜
CASE _cursOverNothing
CURSOR = _arrowCursor
CASE _cursOverBtn,_cursOverEF
SELECT id
CASE _Mapx,_Mapy,_Stage,_ProjectNames
CURSOR = _IBeamCursor
END SELECT
〜中略〜
END SELECT
こんな感じに変えました。それぞれIDで指定しないとポップアップボタンにまで反応してしまうので。そこで気になったのが、EditFieldのTEXT内容を所得するにはEDIT$()を使うというのは知ってましたが、ApperanceButtonのTEXT内容所得ってどうやるのかは分からない。調べてみた所、それらしいやり方が見つかったので、試しに次の関数を追加してテストしてみました。最終的にはTEXTを数値に変えなければならないので、それも兼ねて。
LOCAL FN Okay //OKボタンを押すとこの関数へ
DIM dat
DIM As STR255 TextString
TextString = FN ButtonTextString$ (_Mapy) //文字所得(マップの広さのyを入力するフィールドから)
dat=VAL(TextString) //文字を数値に
PRINT dat
END FN
バッチリです。







コメント 0