Edittext UI コントロール
 
 
 

ユーザ インタフェース コントロール > 共通プロパティ > レイアウト > タイプ > Edittext

 

   

ユーザ インタフェースの作成 - クイック ナビゲーション

edittext コントロール は、テキストの入力や編集が可能なテキスト フィールドとして使用します。

構文は次のようになります。

edittext <name> [<caption>] [text:<string>] [fieldWidth:<integer>] [height:<integer>] [bold:<boolean>] [labelOnTop:<boolean>] [readOnly:<boolean>]

edittext 項目の位置合わせの既定値は、 #left です。

   

パラメータ

text:   

編集ボックスのテキスト文字列です。パラメータに複数のテキスト行を指定するには、改行復帰(¥r )と改行(¥n )の両方のシーケンスを指定してください。たとえば、「最初の行 ¥r¥n次の行」とします。

   

fieldWidth: 

編集ボックスのピクセル幅です。既定では、幅は、キャプション テキストの直後からロールアウトの右マージンまでに設定されます。

   

height: 

テキストの 1 行を超えるピクセル単位の高さを指定する editText 項目定義に対して、明示的な height: パラメータが指定されている場合、その editText 項目は複数行の編集ボックスになり(18 ピクセル)、複数行のテキストを入力できるようになります。

警告:

edittext の高さを 18 ピクセル以上に指定した場合、 on entered イベント ハンドラは、この edittext が複数行モードになるため、呼び出されません。

   

bold: 

true に設定した場合、編集ボックス内のテキスト文字列は太字で表示されます。 false に設定した場合、テキストは太字でない、標準の形式で表示されます。既定値は false です。

   

labelOnTop: 

true に設定すると、キャプションが編集テキスト ボックスの上に配置されます。 false に設定されている場合、または省略されている場合、キャプションは編集テキスト ボックスの左に配置されます。

   

readOnly: 

true に設定されている場合、editText コントロールにテキストをコピー、貼り付け、あるいは入力ができません。 false に設定されている場合、または省略されている場合、editText コントロールにテキストを入力、コピーおよび貼り付けができます。

   

プロパティ:

<edittext>.text String 

編集ボックスのテキストです。パラメータに複数のテキスト行を指定するには、改行復帰(¥r )と改行(¥n )の両方のシーケンスを指定してください。たとえば、「最初の行 ¥r¥n次の行」とします。

   

<edittext>.caption String 

編集ボックスの横にあるオプションのキャプションのテキストです。

   

<edittext>.bold Boolean 

true に設定した場合、テキストは太字で表示されます。 false に設定した場合、テキストは太字でない、標準の形式で表示されます。

   

<edittext>.width Integer 

edittext ウィンドウの幅をピクセル単位で取得/設定します。

   

<edittext>.height Integer 

edittext ウィンドウの高さをピクセル単位で取得/設定します。

   

<edittext>.readOnly 

true に設定されている場合、editText コントロールにテキストをコピー、貼り付け、あるいは入力ができません。 false に設定されている場合、または省略されている場合、editText コントロールにテキストを入力、コピーおよび貼り付けができます。

   

イベント

on <edittext> changed <arg> do <expr> 

編集ボックスのテキストをユーザが変更するたびに呼び出されます。<arg> には、編集ボックスの新しいテキストが入ります。

   

on <edittext> entered <arg> do <expr> 

ユーザが編集ボックスにテキストを入力し、[Enter]または[Tab]を押してフィールドの外へカーソルを移動したときに呼び出されます。引数 <arg> には、編集ボックスの新しいテキストが入ります。

警告:

edittext の .height を 18 ピクセル以上に指定した場合、 on entered イベント ハンドラは、この edittext が複数行モードになるため、呼び出されません。

単一行モードでは、編集ボックスに文字列を入力して[Enter]を押した場合、1 文字ごとまたは[Enter]に対して 1 回、 on changed ハンドラが呼び出されます。 on entered ハンドラは、[Enter] に対して 1 回だけ呼び出されます。

複数行モードの場合、[Enter]キーストロークによって「 on entered 」ハンドラが呼び出されなくなりますが、編集ボックスに新しい行が挿入されます。

もちろん 「on changed」 ハンドラは呼び出されます。これらのハンドラは、キーストロークのたびに呼び出されます。

複数行の editText 項目の場合は、[Tab]キーを押したり、編集ボックスの外をクリックして、編集ボックスがキーボード フォーカスを 失った ときに、「on entered」ハンドラが呼び出されます。

例:

rollout boxCreator "Box Creator"
(
-- edittext を幅 200、labelOnTop の状態にして定義します。
edittext prefix_txt "Name prefix:" fieldWidth:200 labelOnTop:true
-- 新しい名前を入力すると次のようになります。
on prefix_txt entered txt do
(
-- 名前が空の文字列でない場合は、
if txt != "" do
(
-- 新しいボックスをランダムな位置に作成します。
-- 与えられた座標の任意の場所になります。
new_obj = box pos:(random [-100,-100,-100] [100,100,100])
-- 新しいオブジェクトの名前を入力したプレフィックスに設定します。
-- ただし、同じ名前にならないように一意のサフィックスを追加します。
new_obj.name = (uniquename txt)
-- 最後に新しいエントリの editText をクリアします。
-- 次のように、テキスト プロパティに空の文字列を割り当てます。
prefix_txt.text = ""
)
)
)
createDialog boxCreator 300 30 --ロールアウトからダイアログ ボックスを作成します。
 
関連事項