问题解答
在Dorado开发中,经常会升级dorado提供的jar包,或引入一些新的dorado add on,一般情况下升级jar都只要将工程lib下的jar替换就可以。
特殊情况
某个控件新增了几个新的属性,但是IDE的编辑器中无法看到;
dorado-core提供了新的控件,但是IDE中无法看到;
新引入的dorado add on的jar包自带了一些dorado控件,但是IDE中无法看到;
解决方法
更新Dorado的规则文件,Dorado的IDE是根据规则文件动态提供控件的编辑界面的,首先右键单击工程的根节点,找到其中的更新Dorado配置规则菜单,单击执行规则更新,规则文件的更新办法如下:
更新规则的时候,如果当前工作区有.view.xml视图已经被打开,则会出现如下的信息提示框;
确定后开始规则文件的更新,一般来说整个过程在30秒以内,更新成功后会出现如下的提示信息;
这样就完成了当前项目的规则文件的更新。
其他注意事项
如果更新规则出现问题,则会出现如下的提示信息:
这个时候就要注意查看控制台中的错误信息:
可以的,android中使用布局是为了加快开发,最终控件还是通过解析XML后,通过代码添加的。具体方法:
例如你的布局是一个Linearlayout linear上面有一本Button btn1
要删除这个btn1要做的就是 linear.removeView( btn1 )
动态添加也是一样的
linear.addView( btn2 )
要注意的是,Button btn2 = new Button( context )这时候控件是没有大小的,必须设置控件大小以后添加了才能看到。设置控件大小的方法是view.setLayoutParams()
希望能够帮到你。
例程:
import win.ui
/*DSG{{*/
wform = win.form(text="AddCtrl"right=880bottom=543max=false)
wform.add(
button={cls="button"text="开始"left=8top=189right=75bottom=247flat=1z=1}
map={cls="custom"text="自定义控件"left=0top=261right=876bottom=537bgcolor=15793151border=1z=2}
)
/*}}*/
var mpxy={}//x,y,width,height,text,indexId : {105,210,55,35,"M0101",1} //定义控件属性
var mcount=0//记录控件数量
var mxy={
{100,210,55,35},
{100,170,55,35},
{45,105,55,35},
{45,65,55,35},
{75,5,55,35}
} //定义控件起始显示区域
initmpxy=function(xy){
var d=0
var id=0
for(i=1141){
d=(i-1)*xy[1][3]
id++
table.push(mpxy,{xy[1][1]+d,xy[1][2],xy[1][3],xy[1][4],"M01"+string.right("0"+i,2),id})
id++
table.push(mpxy,{xy[2][1]+d,xy[2][2],xy[2][3],xy[2][4],"M02"+string.right("0"+i,2),id})
id++
table.push(mpxy,{xy[5][1]+d,xy[5][2],xy[5][3],xy[5][4],"M05"+string.right("0"+i,2),id})
}
for(i=1151){
d=(i-1)*xy[1][3]
id++
table.push(mpxy,{xy[3][1]+d,xy[3][2],xy[3][3],xy[3][4],"M03"+string.right("0"+i,2),id})
id++
table.push(mpxy,{xy[4][1]+d,xy[4][2],xy[4][3],xy[4][4],"M04"+string.right("0"+i,2),id})
}
mcount=id
}//初始化控件区域和位置
initmpxy(mxy)
wform.button.oncommand = function(id,event){
//在窗体上动态添加控件和事件
for(i=1mcount1){
var sc=mpxy[i][5]
wform.add( [sc]={cls="button"bottom=mpxy[i][2]+mpxy[i][4]right=mpxy[i][1]+mpxy[i][3]left=mpxy[i][1]top=mpxy[i][2]z=1text=mpxy[i][5]id=i+100autoResize=falsehide=1edge=1})//hide=1为默认隐藏,这样显示的时候不会闪烁
wform[sc].oncommand=function(id,event){
win.msgbox(sc,mpxy[i][6],0,0)
}
}
for(i=1mcount1){
wform[mpxy[i][5]].show()
}
//在可视控件内动态添加控件和事件
var bt=""
for(i=1mcount1){
bt=mpxy[i][5]
wform.map.addCtrl([bt]={cls="button"text=mpxy[i][5]left=mpxy[i][1]+1top=mpxy[i][2]right=mpxy[i][1]-2+mpxy[i][3]bottom=mpxy[i][2]+mpxy[i][4]id=i+300autoResize=false
oncommand=function(id,event){
win.msgbox(bt,"控件内:"+ mpxy[i][6],0,0)
}
})
}
}
wform.button.wndproc = function(hwnd,message,wParam,lParam){
//wform.cmdTranslate(hwnd,message,wParam,lParam)
}//新版的aardio 不用加这句也可以执行动态控件的事件
wform.show()
return win.loopMessage()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)