1、2009-10-15:w_main主窗体是mdi类型,在这个上面放了一个dw控件,做导航用。
w_main的resize里调整了位置,但是效果不是很理想,而且还有很奇怪的现象
resize事件:
integer li_height,li_width,li_x,li_y
li_height = this.workspaceHeight()
li_width = this.workspaceWidth()
li_x=workspaceX()
li_y=workspaceY()
string ls_now
ls_now = string(now(),'hh:mm:ss fff')
messagebox('1-'+ls_now,'x='+string(workspacex())+'y='+string(workspacey())+'w='+string(li_width)+'h='+string(li_height))
dw_group.x=workspaceX()
dw_group.y=workspaceY()
dw_group.height = li_height - 10
mdi_1.x = li_x + dw_group.x+dw_group.width
mdi_1.y = li_y + 4
mdi_1.height = dw_group.height
mdi_1.width = li_width - dw_group.width - 8
messagebox('2-'+ls_now,'x='+string(mdi_1.x)+'y='+string(mdi_1.y)+'w='+string(mdi_1.height)+'h='+string(mdi_1.width))
解决:从PB11.5-EBF16640-3127升级到pb11.5.1 -EBF17123- 4566后,界面显示问题好了,可是问什么messagebox的顺序还是不正成呢,这个虽然不影响什么,但是我还是比较疑惑这个问题。 而且,在opensheet时的窗口在cs运行时可以最大化,bs却不能最大化,只有在打开第二opensheet时才最大化,很是疑惑。
2、2009-10-16:sheet窗口打开是不能根据设置实现最大化,而需要打开第二个sheet才可以最大化.
( 2009-10-22: 更正一下,由于之前看不出来是否最大化了,经过仔细观察,窗口可以最大化,但是窗口上的控件没有调整。)
解决:在open中写入
this.width= parentwindow ( ).dynamic wf_getmdiwidth()
this.height = parentwindow ( ).dynamic wf_getmdiheight()
wf_getmdiwidth()和wf_getmdiheight() 分别是mdi frame窗口的mdi大小
3、2009-10-21:sheet窗口的resize时调整其中控件的大小,
通常在cs程序开发时用newwidth和newheight来调整即可,而在bs中需要用workspacewidth() 和workspaceheight()。
(2009-10-22:更正一下,经过反复测试调整,发现出现滚动条的问题可能和多窗口是出现了tab有关系,于是反复测试得出resize时要把宽和高缩小一点就可以,我测试缩小了30就行了)
原因看下图。前两个是bs的,后一个是cs的,标题栏newwidth和newheight,messagebox是workspacewidth() 和workspaceheight()。
4、2009-10-28:datawindow中getfocus、losefocus的问题,直接看图片吧
5、2009-10-30:dynamic的问题。
a、 //菜单重置
wf_menu_reset(menuid,false,true)
这样调用没有问题
//菜单重置
dynamic wf_menu_reset(menuid,false,true)
这样调用报出null object reference的错误
b、在datawindow的rowfocuschanged事件里调用也是不能加dynamic
wf_qx_window(this.dataobject)