メインコンテンツまでスキップ
バージョン: 20 R7 BETA

OBJECT SET ENTERABLE

OBJECT SET ENTERABLE ( {* ;} object ; enterable )

引数説明
*演算子指定時, Objectはオブジェクト名 (文字列) 省略時, Objectはフィールドまたは変数
objectanyオブジェクト名 (* 指定時), または テーブルまたはフィールドまたは変数 (* 省略時)
enterableBoolean, Integerブール値 True=入力可, False=入力不可倍長整数: 0=入力不可, 1=入力可能, 2=入力不可かつフォーカス不可

説明

OBJECT SET ENTERABLE コマンドは、object で指定したフォームオブジェクトを入力可または入力不可に設定するとともに、フォーカス可能 属性も設定します。

注: フォーカス可能 なフォームオブジェクトはフォーカスを受けることができ、On Getting focus / On Losing focus フォームイベントをトリガーします。これに加え、フォーカス可能な入力および4D Write Proエリアオブジェクトは、たとえ入力不可であっても、そのコンテンツを選択してコピーすることができます。

オプションの * 引数を指定した場合、object はオブジェクト名です (文字列) 。オプションの * 引数を省略すると、object はフィールドまたは変数です。この場合、文字列ではなくフィールドまたは変数参照 (フィールドまたは変数のみ) を指定します。オブジェクト名に関する詳細は オブジェクトプロパティ を参照してください。

enterable 引数にはブール値または倍長整数値を渡すことができます:

  • ブール - enterable 引数がTrue の場合、ユーザーはデータを入力したりエリア内にカーソルを移動させることができます。
    enterable 引数がFalse の場合、
    • バイナリーデータベースにおいては、ユーザーはデータを入力することはできず、またフォーカス可能 属性はフォームオブジェクトのプロパティで定義されているフォーカス可オプションによります。
    • プロジェクトにおいては、ユーザーはデータを入力することはできませんが、オブジェクトはフォーカス可能です
  • 倍長整数 - enterable 引数に倍長整数値を渡すことによって、入力および4D Write Proエリアフォーカス可能 プロパティもコントロールできるようになります。以下の定数のいずれか一つを使用することができます:
定数コメント
obk enterable1ユーザーは、フォームオブジェクトに値を入力することができ、オブジェクトはフォーカス可能です。
obk not enterable0ユーザーは、フォームオブジェクトに値を入力することができませんが、入力オブジェクト4D Write Pro エリアはフォーカス可能です (他の入力不可オブジェクトは自動的にフォーカス不可となります)。
obk not enterable not focusable2ユーザーは、フォームオブジェクトに値を入力することができず、入力オブジェクト4D Write Proエリアもフォーカス不可となります。

また、サブフォームとMODIFY SELECTIONDISPLAY SELECTIONコマンドを用いて表示されたリストフォームに対して、プログラムからリスト更新可モードを有効にするために、OBJECT SET ENTERABLEコマンドを使用することもできます:

  • サブフォームの場合、entryArea引数にサブフォームテーブル名またはサブフォームオブジェクト名を渡すことができます。例: OBJECT SET ENTERABLE(*;"Subform";True) このコマンドはサブフォームに対してはサブフォームのフォームメソッドにおいてのみ動作します。
  • リストフォームの場合、entryArea 引数にはフォームのテーブル名を渡さなくてはなりません。例: OBJECT SET ENTERABLE([MyTable];True)

オブジェクトを入力不可にしても、プログラムから値を変更することはできます。

注: リストボックスのセルを入力不可にするためには、On Before Data Entryイベント内の$0に-1の値を渡します。この点については、入力の管理を参照して下さい。

例題 1

以下の例は、船積みの重量に応じて、船積みフィールドを設定します。船積みが1オンス以下の場合は、shipperに米国郵便を設定しこのフィールドを入力不可にします。それ以外の場合には、入力可に設定します。

 If([Shipments]Weight<=1)
    [Shipments]Shipper:="US Mail"
    OBJECT SET ENTERABLE([Shipments]Shipper;False)
 Else
    OBJECT SET ENTERABLE([Shipments]Shipper;True)
 End if

例題 2

次の例は、リストのヘッダに配置されたチェックボックスのオブジェクトメソッドであり、リスト更新モードを制御します:

 var bEnterable : Boolean
 OBJECT SET ENTERABLE([Table1];bEnterable)

参照

OBJECT Get enterable
OBJECT SET VISIBLE

プロパティ

コマンド番号238
スレッドセーフである