数値のみの入力しか受け付けなくする。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
バッチリです。
エディットフィールド上でのマウスカーソルアイコン [汎用ゲームマップエディタ : FB]
覚え書き [汎用ゲームマップエディタ : FB]
オブジェクトサイズの項目を入れ忘れていたので、またもや設定画面のデザイン変更しました。Appearanceランタイムで新規プロジェクトを作り、このWindowを作るファイルをInclファイルにして組み込み。リソースも作り、メインソース用のファイルも作り、いよいよMapEditor作成の体裁を整えました。まず日本語化した後、不具合の調査。グループボックスの中にキャンセル、OKボタンを入れているのですが見た目だけで、ボタンをクリックしても反応しない。グループ化しないといけないと言う事になかなか気付かず、余計な時間を食ってしまいました。
SetRect(r, 20, 283, 297, 360)
APPEARANCE BUTTON _GroupBox, _activeBtn, _kControlSupportsEmbedding,,,"Tiny Game Map Editor", @r,_kControlGroupBoxSecondaryTextTitleProc
三つ目の定数、「_kControlSupportsEmbedding」でグループ化出来るようにしておき、
DEF EmbedButton(_Cansel, _GroupBox)
DEF EmbedButton(_Okay, _GroupBox)
これで良し。ついでにグループボックスのタイプもちょっとカッコ良さげなヤツに変更。
(_kControlGroupBoxSecondaryTextTitleProcがそうです。)
いや、しかしTWEで外観を作り吐き出したソースコードを見ると勉強になります。

TWEを使って初期設定ウィンドウを作る。 [汎用ゲームマップエディタ : FB]
思い立って制作しようとしている汎用ゲームマップエディタ。コーディングのみでGUIを作るのは面倒なので(これまでのSHやSHIIなんかのマップエディタはそれが原因であんな変なインターフェイスになっている)、FutureBASIC4に付属の、The Window Maker(以下、TWE)というFutureBASIC用のインターフェイスビルダーのDEMO版を試しています。だいぶ使い方分かってきました。これは良い。シェアウェアなので登録したいのですが、作者が現在新規のユーザーを受け付けてないのか、サイトを覗いてもTWEのコーナーを休止しているようです。とりあえず作者にメールを送って、このDEMO版を使えるところまで使ってみようかと思っています。

初期設定画面完成。






