vtcl and ActiveTcl 8.5 on XP

Help
2008-01-31
2013-05-08
  • norbi_acony

    norbi_acony - 2008-01-31

    is it possible yo work with vtcl and ActiveTcl8.5.0?

    i've got an error:

    "bad variable name "vTcl(w,opt,-background)": upvar won't create a scalar variable that looks like an array element" if i try to open a widget.

    i uninstalled the 8.4 version before installing the new stuff and i'm useing the cvs-version of vtcl.

    cu
    norbi

     
    • Ken Parker

      Ken Parker - 2008-02-01

      I will take a look at this.

       
    • Don Rozenberg

      Don Rozenberg - 2008-07-04

      I ran into the same problem on Linux.

      My kluge to get it past that point was to change the global statement in proc vTcl:prop:new_attr in propmgr.tcl to the following.

          global vTcl
      #    global $variable        Rozen deleted so that program would run on 8.5
          global options
          global specialOpts
          global propmgrLabels

      It appeared that variable was one of the values of vTcl which already is a global so it didn't appear that one needed to make $variable a global.

      Got me on to the next problem.  Appears to be other problems with 8.5.

      Don

       
    • hutt1

      hutt1 - 2008-08-01

      I had a similar problem with TCL 8.5.3.
      The error message said that TCL version had to be exactly 8.5.
      I found the cause of this error - in the file tkcon.tcl in the lib directory, the line:
      package require Tk -exact $tcl_version
      caused the error. Removed the -exact and launched correctly.

      Unfortunately, Vtcl V1.6.1a1 has mojor other problems with TCL V8.5.3.
      When I tried to load vtcl created (using tcl V8.4.5) gui file, got an error:
      "missing value to go with key"
      and couldn't load the file. Therefore, vtcl, to me, is unusable with TCL V8.5.3. Also vtcl V1.6.1a1 does not have the extra standard widgets that are available in TCL V8.5.3 (eg. ttk::combobox and ttk::progressbar to name a few).
      I had to revert back to V8.4.5
      Does anyone have any idea when vtcl will be updated to use TCL V8.5.3?
      Thanks

       
    • Don Rozenberg

      Don Rozenberg - 2008-08-16

      I experienced the same problem with the "missing value to go with key" when loading a vtcl generated file.

      It seems that the statement

              set cop [namespace eval $context {info procs}]

      in vTcl:source fails when context has the value "::tcl::dict". So I added the test

      if {$context == "::tcl::dict"} { continue } ahead of the set cop [name... statement and the loading worked fine.

      Note that dict is a tcl command added in 8.5 and my guess is that this is a tcl bug.  My bigger question is what are they trying to do with this sequence of code???

      I am making some progress in adding support for the ttk widgets but it is slow because vtcl is nearly devoid of documentation and very cleverly programmed. (Prayer: God protect us from the clever programmer, especially if he is too lazy to document his work.) I am currently toiling with ttk::notebook.

       
    • hutt1

      hutt1 - 2008-08-18

      Thanks Don.
      I included the code:
      if {$context == "::tcl::dict"} { continue }
      set cop [namespace eval $context {info procs}]

      I assume it is in the file.tcl in the lib directory (that's where I found it).

      It loaded my previously create file about 1/3 of the way and still got the same message.

       
      • Don Rozenberg

        Don Rozenberg - 2008-08-18

        Sorry I wasn't more clear.  Just a few lines down in the proc vTcl:source the same construct is repeated and so I have a second

        if {$context == "::tcl::dict"} { continue }

        So look for the second foreach in that proc and put in the test.  

        Hope it works better for you.

        Don

         
    • hutt1

      hutt1 - 2008-08-20

      Yes, it now loads correctly. But, unfortunately, when I click on any of the widgets in the window being developed there is an error. Unlike the required response.

      Something else is wrong more deeply inside.

       

Log in to post a comment.