MyWebUniversity.com Home Page
 



Darwin Mac OS X man pages main menu
scope(n)                          [incr Tcl]                          scope(n)



NAME
       scope - capture the namespace context for a variable

SYNOPSIS
       scope name


DESCRIPTION
       Creates a scoped value for the specified name, which must be a variable
       name.  If the name is an instance  variable,  then  the  scope  command
       returns  a  string  of the following form: @itcl object varName This is
       recognized in any context as an instance variable belonging to  object.
       So with itcl3.0 and beyond, it is possible to use instance variables in
       conjunction with widgets.  For example, if you have an  object  with  a
       private  variable  x,  and  you  can  use  x  in  conjunction  with the
       -textvariable option of an entry widget.  Before itcl3.0,  only  common
       variables could be used in this manner.

       If the name is not an instance variable, then it must be a common vari-
       able or a global variable.  In that case, the scope command returns the
       fully qualified name of the variable, e.g., ::foo::bar::x.

       If  the name is not recognized as a variable, the scope command returns
       an error.

       Ordinary variable names refer to variables in the global namespace.   A
       scoped  value captures a variable name together with its namespace con-
       text in a way that allows it to be referenced properly  later.   It  is
       needed, for example, to wrap up variable names when a Tk widget is used
       within a namespace: namespace foo {
           private variable mode 1

           radiobutton .rb1 -text "Mode  #1"          -variable  [scope  mode]
       -value 1
           pack .rb1

           radiobutton  .rb2  -text  "Mode  #2"         -variable [scope mode]
       -value 2
           pack .rb2 } Radiobuttons .rb1 and .rb2 interact  via  the  variable
       "mode"  contained in the namespace "foo".  The scope command guarantees
       this by returning the fully qualified variable name ::foo::mode.

       You should never use the @itcl syntax directly.  For example, it  is  a
       bad  idea to write code like this: set {@itcl ::fred x} 3 puts "value =
       ${@itcl ::fred x}" Instead, you should always use the scope command  to
       generate  the  variable name dynamically.  Then, you can pass that name
       to a widget or to any other bit of code in your program.


KEYWORDS
       code, namespace, variable



itcl                                                                  scope(n)
Darwin Mac OS X man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™