For that specific line, I believe this will work the same:

  arguments = .array~new(n + 1)
  arguments[n + 1] = "nodeText"
  tc~sendWith('add', arguments)


Mark, I liked the idea of using sendWith so much that I went ahead and changed one of my classes to use this technique instead of interpret, but I can't get it to work. Input is data created by ooSQLite in OO_ARRAY_OF_ARRAYS format. The sendWith call generates the following syntax error with the sample program below, exactly the same that happens with my real program:

Error 88.907:  Argument 2 must be in the range -2147483648 to 2147483647; found "Row1Col2"

The sample program below builds an input array in the same format that ooSQLite would have done.

a=.lv~new
a~execute

::class lv subclass userdialog
::method init
forward class(super) continue
self~create(0,0,200,200)

::method defineDialog
forward class(super) continue
self~createListView(100,0,0,100,100,"REPORT")

::method initDialog
forward class(super) continue
lv=self~newListView(100)
d=.array~new
d[1]=.array~of("Col1","Col2","Col3")
d[2]=.array~of("Row1Col1","Row1Col2","Row1Col3")
d[3]=.array~of("Row2Col1","Row2Col2","Row2Col3")
d[4]=.array~of("Row3Col1","Row3Col2","Row3Col3")
i=0
loop col over d[1]~allItems
     lv~insertColumn(i,col,40)
     i+=1
end
do i = 2 to d~items
   lv~sendWith("add",d[i])
end
::requires "oodialog.cls"

I'm sure this is obvious, I just don't see it. Any ideas?

Staffan