## Tcl9.0.3/Tk9.0.3 Documentation > [incr Tcl] Package Commands, version 4.3.5 > itcloption

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    itcl::option — 拡張級や､部品や､部品の備品の指示項目を捜す　　　define options for extendedclass, widget or widgetadaptor
  警告WARNING!
  構文SYNOPSIS
  説明 DESCRIPTION
    -default defvalue
    -readonly
    -cgetmethod methodName
    -cgetmethodvar varName
    -configuremethod methodName
    -configuremethodvar varName
    -validatemethod methodName
    -validatemethodvar varName
  KEYWORDS

### NAME

itcl::option — 拡張級や､部品や､部品の備品の指示項目を捜す　　　define options for extendedclass, widget or widgetadaptor

この記述の部分は､殆ど同一の機能としての Tcl 拡張 [snit] からの "借り物" である｡　　　　　　 Parts of this description are "borrowed" from Tcl extension [snit], as the functionality is mostly identical.

### 警告WARNING!

API が猶も変化するかもしれない [incr Tcl] 内で､これは新しい機能である!!　　　　　 　　 This is new functionality in [incr Tcl] where the API can still change!!

### 構文SYNOPSIS

option optionSpec ?defaultValue?
option optionSpec ?options?

### 説明 DESCRIPTION

この option 命令は [incr Tcl] 拡張級/部品/部品の備品 の定義の内側で指示項目を定義する為に使われる｡ 　　　　　　 The option command is used inside an [incr Tcl] extendedclass/widget/widgetadaptor definition to define options.

第１書式では､この型の即値に関する指示項目を定義する､又､必要に応じて初期値を与える｡ defaultValue が指定されていないと､初期値は無為設定の空文字列となる｡　　　　　　 In the first form defines an option for instances of this type, and optionally gives it an initial value. The initial value defaults to the empty string if no defaultValue is specified.

この方法で定義される指示項目は局所的定義であると言われる｡ optionSpec は指示項目の名前､原資の名前､級の名前を定義するリストである｡譬えば: 　　　　　 An option defined in this way is said to be locally defined. The optionSpec is a list defining the option's name, resource name, and class name, e.g.:

    option {-font font Font} {Courier 12}

指示項目の名前はハイフンで始まらねばならず､又どのような大文字も含んではならない｡原資の名前と級の名前は任意指定であり; 指定されない場合､原資の名前は無為設定でoption からハイフンを差引いた名前になり､級の名前は無為設定で最初の文字を大文字化した原資の名前になる｡従って､次の宣言は前の実施例と等価になる: 　　　　　 The option name must begin with a hyphen, and must not contain any upper case letters. The resource name and class name are optional; if not specified, the resource name defaults to the option name, minus the hyphen, and the class name defaults to the resource name with the first letter capitalized. Thus, the following statement is equivalent to the previous example:

    option -font {Courier 12}

原資と級の名前に関する更なる情報については Tk 指示項目基礎データを参照されたい｡ See The Tk Option Database for more information about resource and class names.

通常､指示項目は標準即値手段の configure と cget を使って設定され､取出しされる; 即値符号命令(手段本体､等)内部では､指示項目の値は､指示項目配列を通して利用できる: 　　　　　　 Options are normally set and retrieved using the standard instance methods configure and cget; within instance code (method bodies, etc.), option values are available through the options array:

    set myfont $itcl_options(-font)

第２の書式では､使用者は指示項目操作子(譬えば -configuremethod)を定義できるので､僅かな不都合も回避する為には､その指示項目を利用する為の configure と cget を多分に利用するべきである｡　　　　　 In the second form you can define option handlers (e.g., -configuremethod), then it should probably use configure and cget to access its options to avoid subtle errors.

指示項目宣言は次の指定を含み得る: 　　　　　 The option statement may include the following options:

-default defvalue
  指示項目の無為設定値を定義する; しない場合は､指示項目の無為設定値は "" になる｡　　　　 Defines the option's default value; the option's default value will be "" otherwise.

-readonly
  指示項目は読出し専用で取扱われる -- 生成の時､即ち､型の構成子の中にのみ､構成設定を使って設定できる｡　　　　 The option is handled read-only -- it can only be set using configure at creation time, i.e., in the type's constructor.

-cgetmethod methodName
  全ての局所定義の指示項目は -cgetmethod で定義できる; それは指示項目の値が取出された時に cget 手段を使って､呼ばれる｡ 何であれ､手段の本体が返すものが､ cget を呼んだ返り値になる｡　　　　　 Every locally-defined option may define a -cgetmethod; it is called when the option's value is retrieved using the cget method. Whatever the method's body returns will be the return value of the call to cget.

  名付けられた手段は､一つの引数を､即ち指示項目名を､取らねば成らない｡ 譬えば､この符号命令は cget の取扱の Itcl の(遅いけれども)無為設定と等価である: 　　　　　 The named method must take one argument, the option name. For example, this code is equivalent to (though slower than) Itcl's default handling of cget:

      option -font -cgetmethod GetOption
              method GetOption {option} {
                  return $itcl_options($option)
              }

  註意すべきは､ -cgetmethod を共有する為に幾つでも指示項目ができることである｡　　　　　 Note that it's possible for any number of options to share a -cgetmethod.

-cgetmethodvar varName
  これは -cgetmethod に非常に良く似ている､唯一の違いは､実行中に cgetmethod を見付けるところで､変数を定義できることである｡　　　　　　 That is very similar to -cgetmethod, the only difference is, one can define a variable, where to find the cgetmethod during runtime.

-configuremethod methodName
  全ての局所定義指示項目は -configuremethod を定義できる; それは､ 指示項目の値が configure か configurelist を使って設定される時に呼ばれる｡ 指示項目の値を保存しておくのは名付けられた手段の責務である; 言い換えると､手段がそこに保存しない限り､値は itcl_options() 配列には保存されない｡　　　　　　 Every locally-defined option may define a -configuremethod; it is called when the option's value is set using the configure or configurelist methods. It is the named method's responsibility to save the option's value; in other words, the value will not be saved to the itcl_options() array unless the method saves it there.

  名付けられた手段は二つの引数を取らねばならない､指示項目の名前と､その新しい値である｡ 譬えば､この符号命令は configure の無為設定の処理を行うことと(遅くはあるが)等価である:　　　　　 The named method must take two arguments, the option name and its new value. For example, this code is equivalent to (though slower than) Itcl's default handling of configure:

      option -font -configuremethod SetOption
              method SetOption {option value} {
                  set itcl_options($option) $value
              }

  註意すべきは､一つの -configuremethod を共有する為に幾つでも指示項目ができることである｡ Note that it's possible for any number of options to share a single -configuremethod.

-configuremethodvar varName
  これは -configuremethod に非常に良く似ている､唯一の違いは､実行中に configuremethod を見付けるところで､変数を定義できることである｡　　　　　 That is very similar to -configuremethod, the only difference is, one can define a variable, where to find the configuremethod during runtime.

-validatemethod methodName
  全ての局所定義指示項目は -validatemethod を定義できる; それは､指示項目の値が configure か configurelist 手段を使って､(もし､ある場合には) -configuremethod の直前に､設定される時に呼ばれる｡ 指示項目の新しい値を検証することと､もし値が不適正である場合に不都合を発生すること､は名付けられた手段の責務である｡　　　　　　 Every locally-defined option may define a -validatemethod; it is called when the option's value is set using the configure or configurelist methods, just before the -configuremethod (if any). It is the named method's responsibility to validate the option's new value, and to throw an error if the value is invalid.

  名付けられた手段は二つの引数を取らねばならない､指示項目の名前と､その新しい値である｡ 譬えば､この符号命令は -flag の値が適正な論理値であるか否かを検証する: 　　　　 The named method must take two arguments, the option name and its new value. For example, this code verifies that -flag's value is a valid Boolean value:

      option -font -validatemethod CheckBoolean
              method CheckBoolean {option value} {
                  if {![string is boolean -strict $value]} {
                      error "option $option must have a boolean value."
                  }
              }

  註意すべきは､一つの -validatemethod を共有する為に幾つでも指示項目ができることである｡　　　　　　 Note that it's possible for any number of options to share a single -validatemethod.

-validatemethodvar varName
  これは -validatemethod に非常に良く似ている､唯一の違いは､実行中に validatemethod を見付けるところで､変数を定義できることである｡　　　　　　 That is very similar to -validatemethod, the only difference is, one can define a variable, where to find the validatemethod during runtime.

### KEYWORDS

option, widget, widgetadaptor, extendedclass
Copyright © 2008 Arnulf Wiedemann