アドバイスをもとに、プログラムを書き換えてみました。
一応希望通りの動作はしています。
・・・が、読みづらい物になってしまった気がします。
もっとシンプルに記述できないものでしょうか?
以下、スクリプトです。
#module modname number,name
#modinit str _name
count++
number = count
name = _name
return
#modfunc SetMod int _number , str _name
number = _number
name = _name
return
#modfunc _GetNumber
return number
#modfunc _GetName
return name
#defcfunc GetNumber val m
_GetNumber m
return stat
#defcfunc GetName val m
_GetName m
return refstr
#deffunc DelModUp array m , int p1
repeat length(m)-p1-1 , p1
SetMod m(cnt) , GetNumber(m(cnt+1)) , GetName(m(cnt+1))
loop
delmod m(length(m)-1)
return
#defcfunc RenewList array m , local data
notesel data
foreach m
noteadd ""+GetNumber(m(cnt))+":"+GetName(m(cnt))
loop
noteunsel
return data
#global
con_name = ""
objsize 128,24
input con_name
button gosub "登録",*touroku
listbox con_list,,""
id_list = stat
button gosub "削除",*sakujo
stop
*touroku
if con_name = "" {
dialog "名前を入力してください"
} else {
newmod modvar,modname,con_name
objprm id_list,RenewList(modvar)
}
return
*sakujo
if con_list >= 0 {
DelModUp modvar,con_list
objprm id_list,RenewList(modvar)
}
return
これ以上シンプルにはできないようでしたら、しばらくしてから解決にさせていただきます。