当前位置: 代码迷 >> PB >> PB7升级到PB8后运行程序提示数组越界(附出异常代码),请高手指导
  详细解决方案

PB7升级到PB8后运行程序提示数组越界(附出异常代码),请高手指导

热度:95   发布时间:2016-04-29 06:16:29.0
PB7升级到PB8后运行程序提示数组越界(附出错误代码),请高手指导
窗口的resize事件中如下代码,应该是调整各控件位置的。。错误提示是:
Error:Array boundary execeeded at line 9 in resize event of object w_parint_preview
在PB7中运行正常,升到PB8后出现的问题。。。

其中ir_x[],ir_y[],ir_width[],ir_height[]等是real型的窗口变量



代码如下:
integer li_i,li_count
li_count=upperbound(this.control[])
messagebox(string( li_count),string(li_count))
for li_i=1 to li_count
choose case this.control[li_i].typeof()
// messagebox(string(li_i),string(icb_obj))
case commandbutton! 
   icb_obj=this.control[li_i]
   icb_obj.x=newwidth*ir_x[li_i]
icb_obj.y=newheight*ir_y[li_i]
   icb_obj.width=newwidth*ir_width[li_i]
icb_obj.height=newheight*ir_height[li_i]

case datawindow!
   idw_obj=this.control[li_i]
   idw_obj.x=newwidth*ir_x[li_i]
idw_obj.y=newheight*ir_y[li_i]
   idw_obj.width=newwidth*ir_width[li_i]
idw_obj.height=newheight*ir_height[li_i]

case editmask!
   iem_obj=this.control[li_i]
   iem_obj.x=newwidth*ir_x[li_i]
iem_obj.y=newheight*ir_y[li_i]
   iem_obj.width=newwidth*ir_width[li_i]
iem_obj.height=newheight*ir_height[li_i]

case dropdownlistbox!
   iddlb_obj=this.control[li_i]
   iddlb_obj.x=newwidth*ir_x[li_i]
iddlb_obj.y=newheight*ir_y[li_i]
   iddlb_obj.width=newwidth*ir_width[li_i]
iddlb_obj.height=newheight*ir_height[li_i]

case statictext!
   ist_obj=this.control[li_i]
   ist_obj.x=newwidth*ir_x[li_i]
ist_obj.y=newheight*ir_y[li_i]
   ist_obj.width=newwidth*ir_width[li_i]
ist_obj.height=newheight*ir_height[li_i]

case checkbox!
   icbx_obj=this.control[li_i]
   icbx_obj.x=newwidth*ir_x[li_i]
icbx_obj.y=newheight*ir_y[li_i]
   icbx_obj.width=newwidth*ir_width[li_i]
icbx_obj.height=newheight*ir_height[li_i]

   end choose
next
------解决方案--------------------
分是我的.其它人都去过春节了.
------解决方案--------------------
春节快乐呀!
------解决方案--------------------
引用:
算了,找到问题所在了,原来是先触发了resize事件,导致窗口变量 没有赋值。。。哎。。。浪费20分啊,谁先回答就给谁了。。。。


呵呵,解决就好
  相关解决方案