请教大虾们,如何实现窗口中的控件随着窗口的大小变化而变化?

itzhiren 2003-09-08 04:30:14
请教大虾们,如何实现窗口中的控件随着窗口的大小变化而变化?
...全文
80 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
itzhiren 2003-09-09
  • 打赏
  • 举报
回复
gaoxin(打掉牙,和吞血) :怎样继承和注册呀?
itzhiren 2003-09-09
  • 打赏
  • 举报
回复
对,我重建了一个窗口就可以了,但是改变的大小也不太理想,有一个更严重的问题:
就是窗口最小化以后,再打开,窗口上的控件就全不见了,不知道各位有没有出现过这个问题?
怎么解决呢?
珠海笨笨 2003-09-09
  • 打赏
  • 举报
回复
其实这样子写都不是很好,PB中有成熟的PFC,你只需继承并注册就可以啦,在我们的大型MIS都是这样做的,因为自己写代码会有意想不到的Bug
ltsiphon 2003-09-09
  • 打赏
  • 举报
回复
补充一下,用this.width代替newwidth也许更好用,用newwidth时,窗口多变动几次,控件
就变得很mini了。
ltsiphon 2003-09-09
  • 打赏
  • 举报
回复
ii_width是窗口改变大小前width,this.width是窗口改变大小后的width,不能改变。
那个newwidth总是this.width小一点,因此每次窗口改变大小,控件都变小。不过至于
为什么那个newwidth总是this.width小一点,我也搞不懂,还得请教其他的朋友帮忙了。

在open里
ii_width=this.width
ii_height=this.height
在resize里
long ll_value
dragobject lw_obj
for ll_value= 1 to upperbound(this.control[])
lw_obj=this.control[ll_value]
lw_obj.x=lw_obj.x*(newwidth/ii_width)
lw_obj.width=lw_obj.width*(newwidth/ii_width)

lw_obj.y=lw_obj.y*(newheight/ii_height)
lw_obj.height=lw_obj.height*(newheight/ii_height)
next
ii_width=this.width
ii_height=this.height
我试过,没什么问题,看看你其他的代码是否影响到这段程序了。
或者新建个窗口试试。
itzhiren 2003-09-09
  • 打赏
  • 举报
回复
直接改成this.width倒是没有判断为零那个错误了,但是窗口大小变化时,窗口上的控件没有按比例变化位置和大小,每次窗口改变大小,控件都变小,这是怎么回事儿呢?
liyx326 2003-09-09
  • 打赏
  • 举报
回复
pfc里面的 objectname.of_register()

pfc里面又现成的啊,何必自寻烦恼那?
runsoft 2003-09-08
  • 打赏
  • 举报
回复
你直接把II_WIDTH 修改成 this.width 看看
itzhiren 2003-09-08
  • 打赏
  • 举报
回复
对呀,我就是找不到这个ii_width为什么是零的原因,我在open事件里,有代码如下:

ii_width=this.width
ii_height=this.height

这样的话,ii_width,ii_height不就有值了吗?怎么还是判断他们为零呢?
ltsiphon 2003-09-08
  • 打赏
  • 举报
回复
那是说你的代码的第六行,被除数为零,检查一下吧。看看是不是那个ii_width?
itzhiren 2003-09-08
  • 打赏
  • 举报
回复
我写的代码如下:窗口的resize事件里,可是运行的时候却不对,错误提示:
devide by zero at line 6.......

long ll_value
dragobject lw_obj
for ll_value= 1 to upperbound(this.control[])
lw_obj=this.control[ll_value]
lw_obj.x=lw_obj.x*(newwidth/ii_width)
lw_obj.width=lw_obj.width*(newwidth/ii_width)

lw_obj.y=lw_obj.y*(newheight/ii_height)
lw_obj.height=lw_obj.height*(newheight/ii_height)
next
ii_width=this.width
ii_height=this.height
cnlyh 2003-09-08
  • 打赏
  • 举报
回复
估计大家都要在该窗口的resize事件里写入相关的控件大小控制代码?

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧