I suppose your right i just got back from vacation so i wasn't able to respond right away.
Yea the name DOSE sound tacky, however I never claimed to be a name specialist ^_^. I say we do this project in mostly DB as possible scripting can be done in DB quite well
see my RPGDTE "http://members.aol.com/ironhoof7/rpgdte2.exe"
it runs off nothing but external scripting

"and my script interpeter isnt nothing more than 12 lines of code!"
and its neither case nor space sensitive!
However still i think doing it in db alone proves impressiveness aswell as keeping standalone ability.
Your textbox support function should mold right into the K-frames libraries that way people can use it too when they visual build into the frame. Remember what I said earlier PACK function "that store more than 1 line of text" should share the allocatable ListStack$() array. "just like the listbox.kct" dose
Also I fixed a VERY minor bug in listbox.kct you can get the update right here: it would let you click below the last item listed in the list even before you scrolled it "You know 1 blank space down past the view port for the listbox" so i repaired it with a simple if MG+15>Y+Height then ExitFunction.
THE REPAIR FOR LISTBOX.KCT
function NewList(X,Y,Width,Height,FormNumber,ListNum,Pointer,Allocate)
set current bitmap FormNumber
ink WinColor(1),0:box X,Y,X+Width,Y+Height
ink WinColor(3),0:line X,Y,X+Width,Y:line X,Y,X,Y+Height
ink WinColor(2),0:line X+Width,Y,X+Width,Y+Height:line X,Y+Height,X+Width,Y+Height
ListBox(ListNum,0)=X:ListBox(ListNum,1)=Y:ListBox(ListNum,2)=Width
ListBox(ListNum,3)=Height:ListBox(ListNum,4)=FormNumber:ListBox(ListNum,5)=Pointer
ListBox(ListNum,6)=Allocate:ListBox(ListNum,7)=0
RefreshWindow(FormNumber)
endfunction
function AddItem(ListNum,Text$)
if ListBox(ListNum,7)=ListBox(ListNum,6) then added=0:goto done:
ListStack$(ListBox(ListNum,5)+ListBox(ListNum,7))=Text$
ListBox(ListNum,7)=ListBox(ListNum,7)+1:added=1
done:
endfunction added
function ListOffSet(ListNum,OffSet)
ListBox(ListNum,8)=OffSet:RefreshList(ListNum)
endfunction
function MoreList(ListNum)
Height=ListBox(ListNum,3):Allocate=ListBox(ListNum,6)
tmp=Height/15:temp=(Allocate+Pointer)-tmp
if temp<1 then temp=-1
endfunction temp
function RefreshList(ListNum)
X=ListBox(ListNum,0):Y=ListBox(ListNum,1):Width=ListBox(ListNum,2)
Height=ListBox(ListNum,3):FormNumber=ListBox(ListNum,4)

ointer=ListBox(ListNum,5)
Allocate=ListBox(ListNum,6):J=Y:set text font "fixedsys"
set current bitmap FormNumber
ink WinColor(1),0:box X+1,Y+1,X+Width-1,Y+Height-1:ink WinColor(2),0
for tmp=Pointer to (Allocate+Pointer)
strtmp$=ListStack$(tmp+ListBox(ListNum,8))
if len(strtmp$)*8>(Width-5) then b=(Width-5)/8:strtmp$=Left$(strtmp$,b)
if J<Y+(Height-10) then Text X+5,J,strtmp$
inc J,15
next tmp
RefreshWindow(FormNumber)
endfunction
Function OnListBox(MaxWindows,MaxLists,Cursor)
Yes=0:onform=0
for a=1 to MaxWindows
if MouseOver(a)=1 then onform=a
next a
if onform=0 then exitfunction
for a=0 to MaxLists
zax=ListBox(a,0)+sprite x(onform)+1:zay=ListBox(a,1)+sprite y(onform)+1
if mousex()>zax and mousex()<zax+ListBox(a,2) and mousey()>zay and mousey()<zay+ListBox(a,3) and onform=ListBox(a,4)
Yes=a:ListSel(onform,a,Cursor)
endif
next a
endfunction Yes
Function ListSel(FormNumber,ListNum,Cursor)
ty=mousey()-sprite y(formnumber)

ointer=ListBox(ListNum,5)
X=ListBox(ListNum,0):Y=ListBox(ListNum,1):Width=ListBox(ListNum,2)
Height=ListBox(ListNum,3):RefreshList(ListNum)
set current bitmap formnumber:set text font "fixedsys"
ty=ty-y:mg=ty/15:mg=mg*15:mg=mg+y
if MG+15>Y+Height then ExitFunction
ink WinColor(0),0:box X+2,Mg,X+Width-2,Mg+15
ink Wincolor(3),0:line X+2,MG,X+Width-2,MG
line X+2,MG,X+2,MG+15:ink WinColor(2),0:Line X+2,MG+15,X+Width-2,MG+15
Line X+Width-2,MG+1,X+Width-2,MG+15
strtmp$=ListStack$((ty/15)+ListBox(ListNum,8)+Pointer)
if len(strtmp$)*8>(Width-5) then b=(Width-5)/8:strtmp$=Left$(strtmp$,b)
ink Rgb(255,255,0),0:Text X+5,MG,strtmp$
RefreshWindow(formnumber):ListBox(ListNum,9)=(ty/15)+ListBox(ListNum,8)+Pointer
endfunction
-----\
There was a man on the stairs that wasn't there.
He wasn't there agian today I think he's from the CIA.