第10回 全員集合!スクリーンオブジェクト 「3.目的別オブジェクト紹介 その2.入力する」
|
|
10−3 目的別オブジェクト紹介 その2.入力する
プログラム側へ何かを入力するオブジェクトには、2種類あります。 文字入力をする「Field」オブジェクトと、補助的に入力をする「Selector」オブジェクトですが、入力時に合わせて使うと親切な「Shift Indicator」オブジェクトもここで紹介しておきます。 Fieldオブジェクトは、いわゆる「テキストボックス」です。 プロパティなどは以下の通りです。
結構数が多いですが、それほど難しいプロパティはありません。 特徴的なプロパティの1つに.Auto Shiftプロパティがあります。 これは、文の最初の文字を自動的に大文字にするプロパティで、英文を入力する時にとても楽になります。(英語圏の文化だなぁと、こんなところで文化を感じたり出来ます) このプロパティ、Visual BASICで言えば、IMEの状態を制御する.IMEModeプロパティなどが、これに近い存在かもしれませんが、残念ながら、NS Basicでは入力モードをプログラム側から変えることが出来ません。 ちなみに、.Auto Shiftプロパティと同じ働きをするコマンドとして、Proper()関数が用意されています。 もう一つ、特徴的といえば、.Numericプロパティでしょうか。 このプロパティ値がTrueになれば、Field中には数字しか入力できなくなります。なんだ、それだけかと思うかも知れませんが、いちいちチェックルーチンを用意しなくても数字だけを入力させることができるので、結構便利です。コマンドレベルでもTestNum()関数が用意されていることを考えると、比較的、入力を容易にする仕組みが多く用意されてるようです。 試していて、面白かったのが、.Max Charactersプロパティで、要するに、Fieldオブジェクトに入力できる文字数を制御するものですが、これはプログラム中から操作できました。 しかし、プログラム中で設計時に設定した値より小さな値を代入すると、「それ以降」入力できる文字数に制限がかかります。既に入力されてしまった文字が削られたり、エラーが出ることはありませんし、入力された文字数がプロパティより大きくても.Textメソッドで、全部取得することが出来ます。 イベントについては、他のオブジェクトが持っているイベントの大半が「タップ」イベントであるのに対して、Fieldオブジェクトは「カーソルが他に移った時」に発生します。 つまり、カーソルがそのFieldから無くなった時に発生しますが、これは入力内容のチェックと確認を行う目的で使用するのが適当でしょう。 1つのFieldオブジェクトと1つの「登録」ボタンだけのプログラムであれば、それほど気にする必要は無いでしょうが、複数のFieldを持ったプログラムでは真価を発揮します。 NS Basicでは、そのオブジェクトがIDEのフォーム上から削除されると、そこに記述されているイベントモジュールも削除されますので、例えば、後から「登録」ボタンで全てのFiledの内容をチェックするより、メンテナンスが容易と考えられます。ちなみに、IDEのプロジェクトナビゲータ上では「Click」と表示されるのはご愛嬌ですね。 一方、この直接文字入力を行うFiledオブジェクトと一緒に使うと効果的なオブジェクトが「Shift Indicator」です。
このあまりにもシンプルなオブジェクトは、文字入力時に見かける「a」や「あ」や「↑」と表示されている部分です。 特に何もしなくても、置いておくだけで入力モードが自動的に表示されますので便利です、というより、これがないとわからないので、置くように心がけましょう。 また、Ver.1.xでは大きさを変更できたのですが、Ver.2.xになって、本当に貼りつけるだけになりましたが、従来通り、複数のShift Indicatorを置くことは出来ます。 (複数置いた場合、どうなるか?これに興味がある方は、別コーナーNS Basicについて「08) 無用の長物?」をご覧下さい。) ![]() ■Shift IndicatorとFieldは、ペアで使いましょう もう1つ、入力用のオブジェクトとして「Selector」があります。 これは、次のようなプロパティなどを持っています。
Selectorオブジェクトには、Fieldのように直接文字などを入力することが出来ません。 これは、日付や時刻などを入力するために「用意された」ダイアログと一緒に使います。 例えば、Selectorオブジェクトと、日付入力用のPopuoDate()関数と一緒に使います。 Sub object1004() Dim theDate as Date Dim res as Integer theDate=Today() res=PopupDate(theDate,"Please,Enter") Selector1004.Text=DateMMDDYY(theDate) End Subこれで、Selectorに選択した日付が表示されるようになります。 ![]() 表示されるサイズは、一応、.Heightや.Widthプロパティがサポートされているものの、実際は表示している文字列にあわせて大きさが変化しますので、特に、意識する必要はありません。 入力用のオブジェクトFiledとSelectorを使ってほとんど全ての情報が直接入力できることになります。 簡単な観察日記プログラムなどを作るのであれば、これらを組み合わせることで、日付と時間と観察結果を比較的簡単に入力できますね。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
第10回 全員集合!スクリーンオブジェクト 「3.目的別オブジェクト紹介 その2.入力する」
|