CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  控件与界面

怎样能够动态的修改窗口中控件的大小(急!)

楼主jqka007(网侠)2003-06-03 22:42:27 在 PowerBuilder / 控件与界面 提问

当窗口的大小发生改变时,如何能够动态的改变窗口中控件的大小,是控件保持原有的比例(最好能提供代码) 问题点数:100、回复次数:9Top

1 楼liaolwj(风儿)回复于 2003-06-03 22:52:55 得分 10

你在窗口的resize事件中编写  
  dw_1.width   =   newwidth  
  ....Top

2 楼joss(季节...夏至)回复于 2003-06-03 22:58:01 得分 20

动态实现调整控件大实施步骤:  
   
  功能:  
    当窗口大小调整时,窗口内的控件包括Tab控件和UserObject控件内的控件将随窗口大小的变化按比例自动进行缩放。  
  设计说明:  
  提出问题    
    目前,为了通用性,大多数PB应用程序是在640x480或800x600显示分辨率模式下设计的,由于种种原因,用户经常使用其它的显示分辨率。当分辨率从640x480调整到800x600或1024x768时,应用窗口相对缩小,为了充分利用屏幕空间而将窗口最大化后,窗口内控件的尺寸、位置是固定的,并且集中到窗口的左上角,既不美观,又浪费了宝贵的屏幕空间。  
   
  了解控件    
    PowerBuilder是一种面向对象的开发工具,除SystemFunctions类外,所有对象均由祖先类PowerObject继承而来。PowerObject有九种子类,窗口内所有控件均继承自PowerObject\GraphicObject\WindowObject,该类派生出两种子类:DrawObject和DragObject。DrawObject类是画图对象,属于该类的控件有:线段、椭圆、矩形和园角矩形,其余控件均属于DragObject类。  
   
    由于DrawObject控件在应用程序中使用得比较少,因此,为了简化程序,本软件仅对DragObject控件进行自动缩放。  
   
  实现原理    
    PowerBuilder的窗口对象有一个非常重要的属性-control[]数组,存储了窗口内放置的所有控件。通过这个数组,可以访问各控件的属性。但窗口的control[]数组并不存储放在Tab控件和UserObject控件内部的控件,它们存储在Tab控件和UserObject控件各自的control[]数组中。  
    在窗口的open事件中,通过其control[]数组,找出在窗口内放置的全部DragObject类控件(当遇到Tab控件和UserObject控件时,继续通过它们各自的control[]数组,找出其内部的全部DragObject类控件),保存所有找到的控件的原始x、y、width和height属性数据与当前窗口原始宽度和高度的比例值。当窗口大小调整时,在resize事件中,根据保存的各控件的比例值重置控件的x、y、width和height属性,从而实现控件随窗口大小的变化自动按比例放大或缩小。  
   
  脚本写在窗口的resize事件中,也可以自定义事件在程序中动态调用!  
   
   
     
  Top

3 楼cyactiveboy((冷酷有情))回复于 2003-06-04 01:06:20 得分 10

先在OPEN事件里取出各个控件的比例,可以放在TAG中,做一个函数能对各种控件算出相应的高度和宽度,然后在RESIZE事件里调用该函数。具体的代码Top

4 楼cyactiveboy((冷酷有情))回复于 2003-06-04 01:12:17 得分 30

还好找到了以前的一些代码。  
  在RISIZE事件里写入:  
  Integer   li_controls,i  
  String   ls_xbl,ls_ybl,ls_wbl,ls_hbl  
   
  This.Setredraw(false)  
   
  li_controls=upperbound(This.Control[])  
  FOR   i=1   TO   li_controls  
  CHOOSE   CASE   This.Control[i].TypeOf()  
  CASE   checkbox!  
  icbx_obj=This.control[i]  
  of_getbl(icbx_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  icbx_obj.x=newwidth*real(ls_xbl)  
  icbx_obj.y=newheight*real(ls_ybl)  
  CASE   radiobutton!  
  irb_obj=This.control[i]  
  of_getbl(irb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  irb_obj.x=newwidth*real(ls_xbl)  
  irb_obj.y=newheight*real(ls_ybl)  
  CASE   commandbutton!  
  icb_obj=This.control[i]  
  of_getbl(icb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  icb_obj.x=newwidth*real(ls_xbl)  
  icb_obj.y=newheight*real(ls_ybl)  
  icb_obj.width=newwidth*real(ls_wbl)  
  icb_obj.height=newheight*real(ls_hbl)  
  CASE   picture!  
  ip_obj=This.control[i]  
  of_getbl(ip_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ip_obj.x=newwidth*real(ls_xbl)  
  ip_obj.y=newheight*real(ls_ybl)  
  ip_obj.width=newwidth*real(ls_wbl)  
  ip_obj.height=newheight*real(ls_hbl)  
  CASE   datawindow!  
  idw_obj=This.control[i]  
  of_getbl(idw_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  idw_obj.x=newwidth*real(ls_xbl)  
  idw_obj.y=newheight*real(ls_ybl)  
  idw_obj.width=newwidth*real(ls_wbl)  
  idw_obj.height=newheight*real(ls_hbl)  
  CASE   dropdownlistbox!  
  iddlb_obj=This.control[i]  
  of_getbl(iddlb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iddlb_obj.x=newwidth*real(ls_xbl)  
  iddlb_obj.y=newheight*real(ls_ybl)  
  iddlb_obj.width=newwidth*real(ls_wbl)  
  CASE   dropdownpicturelistbox!  
  iddplb_obj=This.control[i]  
  of_getbl(iddplb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iddplb_obj.x=newwidth*real(ls_xbl)  
  iddplb_obj.y=newheight*real(ls_ybl)  
  iddplb_obj.width=newwidth*real(ls_wbl)  
  CASE   listbox!  
  ilb_obj=This.control[i]  
  of_getbl(ilb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ilb_obj.x=newwidth*real(ls_xbl)  
  ilb_obj.y=newheight*real(ls_ybl)  
  ilb_obj.width=newwidth*real(ls_wbl)  
  ilb_obj.height=newheight*real(ls_hbl)  
  CASE   multilineedit!  
  imle_obj=This.control[i]  
  of_getbl(imle_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  imle_obj.x=newwidth*real(ls_xbl)  
  imle_obj.y=newheight*real(ls_ybl)  
  imle_obj.width=newwidth*real(ls_wbl)  
  imle_obj.height=newheight*real(ls_hbl)  
  CASE   editmask!  
  iem_obj=This.control[i]  
  of_getbl(iem_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iem_obj.x=newwidth*real(ls_xbl)  
  iem_obj.y=newheight*real(ls_ybl)  
  iem_obj.width=newwidth*real(ls_wbl)  
  iem_obj.height=newheight*real(ls_hbl)  
  CASE   tab!  
  it_obj=This.control[i]  
  of_getbl(it_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  it_obj.x=newwidth*real(ls_xbl)  
  it_obj.y=newheight*real(ls_ybl)  
  it_obj.width=newwidth*real(ls_wbl)  
  it_obj.height=newheight*real(ls_hbl)  
  CASE   groupbox!  
  igb_obj=This.control[i]  
  of_getbl(igb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  igb_obj.x=newwidth*real(ls_xbl)  
  igb_obj.y=newheight*real(ls_ybl)  
  igb_obj.width=newwidth*real(ls_wbl)  
  igb_obj.height=newheight*real(ls_hbl)  
  CASE   hscrollbar!  
  ihsb_obj=This.control[i]  
  of_getbl(ihsb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ihsb_obj.x=newwidth*real(ls_xbl)  
  ihsb_obj.y=newheight*real(ls_ybl)  
  ihsb_obj.width=newwidth*real(ls_wbl)  
  ihsb_obj.height=newheight*real(ls_hbl)  
  CASE   picturebutton!  
  ipb_obj=This.control[i]  
  of_getbl(ipb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ipb_obj.x=newwidth*real(ls_xbl)  
  ipb_obj.y=newheight*real(ls_ybl)  
  ipb_obj.width=newwidth*real(ls_wbl)  
  ipb_obj.height=newheight*real(ls_hbl)  
  CASE   listview!  
  ilv_obj=This.control[i]  
  of_getbl(ilv_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ilv_obj.x=newwidth*real(ls_xbl)  
  ilv_obj.y=newheight*real(ls_ybl)  
  ilv_obj.width=newwidth*real(ls_wbl)  
  ilv_obj.height=newheight*real(ls_hbl)  
  CASE   picturelistbox!  
  iplb_obj=This.control[i]  
  of_getbl(iplb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iplb_obj.x=newwidth*real(ls_xbl)  
  iplb_obj.y=newheight*real(ls_ybl)  
  iplb_obj.width=newwidth*real(ls_wbl)  
  iplb_obj.height=newheight*real(ls_hbl)  
  CASE   singlelineedit!  
  isle_obj=This.control[i]  
  of_getbl(isle_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  isle_obj.x=newwidth*real(ls_xbl)  
  isle_obj.y=newheight*real(ls_ybl)  
  isle_obj.width=newwidth*real(ls_wbl)  
  isle_obj.height=newheight*real(ls_hbl)  
  CASE   treeview!  
  itv_obj=This.control[i]  
  of_getbl(itv_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  itv_obj.x=newwidth*real(ls_xbl)  
  itv_obj.y=newheight*real(ls_ybl)  
  itv_obj.width=newwidth*real(ls_wbl)  
  itv_obj.height=newheight*real(ls_hbl)  
  CASE   userobject!  
  iuo_obj=This.control[i]  
  of_getbl(iuo_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iuo_obj.x=newwidth*real(ls_xbl)  
  iuo_obj.y=newheight*real(ls_ybl)  
  iuo_obj.width=newwidth*real(ls_wbl)  
  iuo_obj.height=newheight*real(ls_hbl)  
  CASE   vscrollbar!  
  ivsb_obj=This.control[i]  
  of_getbl(ivsb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ivsb_obj.x=newwidth*real(ls_xbl)  
  ivsb_obj.y=newheight*real(ls_ybl)  
  ivsb_obj.width=newwidth*real(ls_wbl)  
  ivsb_obj.height=newheight*real(ls_hbl)  
  CASE   graph!  
  igr_obj=This.control[i]  
  of_getbl(igr_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  igr_obj.x=newwidth*real(ls_xbl)  
  igr_obj.y=newheight*real(ls_ybl)  
  igr_obj.width=newwidth*real(ls_wbl)  
  igr_obj.height=newheight*real(ls_hbl)  
  CASE   olecontrol!  
  iole_obj=This.control[i]  
  of_getbl(iole_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iole_obj.x=newwidth*real(ls_xbl)  
  iole_obj.y=newheight*real(ls_ybl)  
  iole_obj.width=newwidth*real(ls_wbl)  
  iole_obj.height=newheight*real(ls_hbl)  
  CASE   richtextedit!  
  irte_obj=This.control[i]  
  of_getbl(irte_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  irte_obj.x=newwidth*real(ls_xbl)  
  irte_obj.y=newheight*real(ls_ybl)  
  irte_obj.width=newwidth*real(ls_wbl)  
  irte_obj.height=newheight*real(ls_hbl)  
  CASE   statictext!  
  ist_obj=This.control[i]  
  of_getbl(ist_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ist_obj.x=newwidth*real(ls_xbl)  
  ist_obj.y=newheight*real(ls_ybl)  
  ist_obj.width=newwidth*real(ls_wbl)  
  CASE   line!  
  iln_obj=This.control[i]  
  of_getbl(iln_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iln_obj.beginx=newwidth*real(ls_xbl)  
  iln_obj.beginy=newheight*real(ls_ybl)  
  iln_obj.endx=newwidth*real(ls_wbl)  
  iln_obj.endy=newheight*real(ls_hbl)  
  END   CHOOSE  
  NEXT  
   
  This.Setredraw(true)  
  需增加一个of_getbl()函数:  
  String   ls_bl[],ls_buff  
  Integer   li_len,i  
   
  IF   vs_blstr=''   OR   isnull(vs_blstr)   THEN   RETURN  
   
  i=1  
  ls_buff=vs_blstr  
  li_len=len(ls_buff)  
   
  DO   WHILE   Pos(ls_buff,'/')<>0  
  ls_bl[i]=Left(ls_buff,Pos(ls_buff,'/')   -   1)  
  i++  
  li_len=Len(ls_buff)  
  ls_buff=Right(ls_buff,li_len   -   (Pos(ls_buff,'/')))  
  LOOP  
   
  IF   Trim(ls_buff)=''   THEN  
  i=i   -   1  
  ELSE  
  ls_bl[i]=ls_buff  
  END   IF  
   
  rs_xbl=ls_bl[1]  
  rs_ybl=ls_bl[2]  
  rs_wbl=ls_bl[3]  
  rs_hbl=ls_bl[4]  
   
  RETURN  
  另外你在OPEN事件里取出各个控件的比例放在TAG中就可以了:  
  Top

5 楼peterlz(peter)回复于 2003-06-04 08:36:32 得分 0

在OPEN事件中  
  Integer   li_controls,i  
  Long   ll_width,ll_height  
  String   ls_xbl,ls_ybl,ls_wbl,ls_hbl  
   
  ll_width=this.workspacewidth()  
  ll_height=this.workspaceheight()  
   
  li_controls=upperbound(this.control[])  
  FOR   i=1   TO   li_controls  
  CHOOSE   CASE   this.control[i].typeof()  
  CASE   checkbox!  
  icbx_obj=this.control[i]  
  ls_xbl=string(round(icbx_obj.x/ll_width,3))  
  ls_ybl=string(round(icbx_obj.y/ll_height,3))  
  ls_wbl=string(round(icbx_obj.width/ll_width,3))  
  ls_hbl=string(round(icbx_obj.height/ll_height,3))  
  icbx_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   radiobutton!  
  irb_obj=this.control[i]  
  ls_xbl=string(round(irb_obj.x/ll_width,3))  
  ls_ybl=string(round(irb_obj.y/ll_height,3))  
  ls_wbl=string(round(irb_obj.width/ll_width,3))  
  ls_hbl=string(round(irb_obj.height/ll_height,3))  
  irb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   commandbutton!  
  icb_obj=this.control[i]  
  ls_xbl=string(round(icb_obj.x/ll_width,3))  
  ls_ybl=string(round(icb_obj.y/ll_height,3))  
  ls_wbl=string(round(icb_obj.width/ll_width,3))  
  ls_hbl=string(round(icb_obj.height/ll_height,3))  
  icb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   picture!  
  ip_obj=this.control[i]  
  ls_xbl=string(round(ip_obj.x/ll_width,3))  
  ls_ybl=string(round(ip_obj.y/ll_height,3))  
  ls_wbl=string(round(ip_obj.width/ll_width,3))  
  ls_hbl=string(round(ip_obj.height/ll_height,3))  
  ip_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   datawindow!  
  idw_obj=this.control[i]  
  ls_xbl=string(round(idw_obj.x/ll_width,3))  
  ls_ybl=string(round(idw_obj.y/ll_height,3))  
  ls_wbl=string(round(idw_obj.width/ll_width,3))  
  ls_hbl=string(round(idw_obj.height/ll_height,3))  
  idw_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   dropdownlistbox!  
  iddlb_obj=this.control[i]  
  ls_xbl=string(round(iddlb_obj.x/ll_width,3))  
  ls_ybl=string(round(iddlb_obj.y/ll_height,3))  
  ls_wbl=string(round(iddlb_obj.width/ll_width,3))  
  ls_hbl=string(round(iddlb_obj.height/ll_height,3))  
  iddlb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   dropdownpicturelistbox!  
  iddplb_obj=this.control[i]  
  ls_xbl=string(round(iddplb_obj.x/ll_width,3))  
  ls_ybl=string(round(iddplb_obj.y/ll_height,3))  
  ls_wbl=string(round(iddplb_obj.width/ll_width,3))  
  ls_hbl=string(round(iddplb_obj.height/ll_height,3))  
  iddplb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   listbox!  
  ilb_obj=this.control[i]  
  ls_xbl=string(round(ilb_obj.x/ll_width,3))  
  ls_ybl=string(round(ilb_obj.y/ll_height,3))  
  ls_wbl=string(round(ilb_obj.width/ll_width,3))  
  ls_hbl=string(round(ilb_obj.height/ll_height,3))  
  ilb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   multilineedit!  
  imle_obj=this.control[i]  
  ls_xbl=string(round(imle_obj.x/ll_width,3))  
  ls_ybl=string(round(imle_obj.y/ll_height,3))  
  ls_wbl=string(round(imle_obj.width/ll_width,3))  
  ls_hbl=string(round(imle_obj.height/ll_height,3))  
  imle_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   editmask!  
  iem_obj=this.control[i]  
  ls_xbl=string(round(iem_obj.x/ll_width,3))  
  ls_ybl=string(round(iem_obj.y/ll_height,3))  
  ls_wbl=string(round(iem_obj.width/ll_width,3))  
  ls_hbl=string(round(iem_obj.height/ll_height,3))  
  iem_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   tab!  
  it_obj=this.control[i]  
  ls_xbl=string(round(it_obj.x/ll_width,3))  
  ls_ybl=string(round(it_obj.y/ll_height,3))  
  ls_wbl=string(round(it_obj.width/ll_width,3))  
  ls_hbl=string(round(it_obj.height/ll_height,3))  
  it_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   groupbox!  
  igb_obj=this.control[i]  
  ls_xbl=string(round(igb_obj.x/ll_width,3))  
  ls_ybl=string(round(igb_obj.y/ll_height,3))  
  ls_wbl=string(round(igb_obj.width/ll_width,3))  
  ls_hbl=string(round(igb_obj.height/ll_height,3))  
  igb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   hscrollbar!  
  ihsb_obj=this.control[i]  
  ls_xbl=string(round(ihsb_obj.x/ll_width,3))  
  ls_ybl=string(round(ihsb_obj.y/ll_height,3))  
  ls_wbl=string(round(ihsb_obj.width/ll_width,3))  
  ls_hbl=string(round(ihsb_obj.height/ll_height,3))  
  ihsb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   listview!  
  ilv_obj=this.control[i]  
  ls_xbl=string(round(ilv_obj.x/ll_width,3))  
  ls_ybl=string(round(ilv_obj.y/ll_height,3))  
  ls_wbl=string(round(ilv_obj.width/ll_width,3))  
  ls_hbl=string(round(ilv_obj.height/ll_height,3))  
  ilv_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   picturebutton!  
  ipb_obj=this.control[i]  
  ls_xbl=string(round(ipb_obj.x/ll_width,3))  
  ls_ybl=string(round(ipb_obj.y/ll_height,3))  
  ls_wbl=string(round(ipb_obj.width/ll_width,3))  
  ls_hbl=string(round(ipb_obj.height/ll_height,3))  
  ipb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   picturelistbox!  
  iplb_obj=this.control[i]  
  ls_xbl=string(round(iplb_obj.x/ll_width,3))  
  ls_ybl=string(round(iplb_obj.y/ll_height,3))  
  ls_wbl=string(round(iplb_obj.width/ll_width,3))  
  ls_hbl=string(round(iplb_obj.height/ll_height,3))  
  iplb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   singlelineedit!  
  isle_obj=this.control[i]  
  ls_xbl=string(round(isle_obj.x/ll_width,3))  
  ls_ybl=string(round(isle_obj.y/ll_height,3))  
  ls_wbl=string(round(isle_obj.width/ll_width,3))  
  ls_hbl=string(round(isle_obj.height/ll_height,3))  
  isle_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   treeview!  
  itv_obj=this.control[i]  
  ls_xbl=string(round(itv_obj.x/ll_width,3))  
  ls_ybl=string(round(itv_obj.y/ll_height,3))  
  ls_wbl=string(round(itv_obj.width/ll_width,3))  
  ls_hbl=string(round(itv_obj.height/ll_height,3))  
  itv_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   userobject!  
  iuo_obj=this.control[i]  
  ls_xbl=string(round(iuo_obj.x/ll_width,3))  
  ls_ybl=string(round(iuo_obj.y/ll_height,3))  
  ls_wbl=string(round(iuo_obj.width/ll_width,3))  
  ls_hbl=string(round(iuo_obj.height/ll_height,3))  
  iuo_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   vscrollbar!  
  ivsb_obj=this.control[i]  
  ls_xbl=string(round(ivsb_obj.x/ll_width,3))  
  ls_ybl=string(round(ivsb_obj.y/ll_height,3))  
  ls_wbl=string(round(ivsb_obj.width/ll_width,3))  
  ls_hbl=string(round(ivsb_obj.height/ll_height,3))  
  ivsb_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   graph!  
  igr_obj=this.control[i]  
  ls_xbl=string(round(igr_obj.x/ll_width,3))  
  ls_ybl=string(round(igr_obj.y/ll_height,3))  
  ls_wbl=string(round(igr_obj.width/ll_width,3))  
  ls_hbl=string(round(igr_obj.height/ll_height,3))  
  igr_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   olecontrol!  
  iole_obj=this.control[i]  
  ls_xbl=string(round(iole_obj.x/ll_width,3))  
  ls_ybl=string(round(iole_obj.y/ll_height,3))  
  ls_wbl=string(round(iole_obj.width/ll_width,3))  
  ls_hbl=string(round(iole_obj.height/ll_height,3))  
  iole_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   richtextedit!  
  irte_obj=this.control[i]  
  ls_xbl=string(round(irte_obj.x/ll_width,3))  
  ls_ybl=string(round(irte_obj.y/ll_height,3))  
  ls_wbl=string(round(irte_obj.width/ll_width,3))  
  ls_hbl=string(round(irte_obj.height/ll_height,3))  
  irte_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   statictext!  
  ist_obj=this.control[i]  
  ls_xbl=string(round(ist_obj.x/ll_width,3))  
  ls_ybl=string(round(ist_obj.y/ll_height,3))  
  ls_wbl=string(round(ist_obj.width/ll_width,3))  
  ls_hbl=string(round(ist_obj.height/ll_height,3))  
  ist_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  CASE   line!  
  iln_obj=this.control[i]  
  ls_xbl=string(round(iln_obj.beginx/ll_width,3))  
  ls_ybl=string(round(iln_obj.beginy/ll_height,3))  
  ls_wbl=string(round(iln_obj.endx/ll_width,3))  
  ls_hbl=string(round(iln_obj.endy/ll_height,3))  
  iln_obj.tag=ls_xbl+'/'+ls_ybl+'/'+ls_wbl+'/'+ls_hbl  
  END   CHOOSE  
  NEXTTop

6 楼peterlz(peter)回复于 2003-06-04 08:37:25 得分 10

续上  
  在RESIZE事件中  
  Integer   li_controls,i  
  String   ls_xbl,ls_ybl,ls_wbl,ls_hbl  
   
  This.Setredraw(false)  
   
  li_controls=upperbound(This.Control[])  
  FOR   i=1   TO   li_controls  
  CHOOSE   CASE   This.Control[i].TypeOf()  
  CASE   checkbox!  
  icbx_obj=This.control[i]  
  of_getbl(icbx_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  icbx_obj.x=newwidth*real(ls_xbl)  
  icbx_obj.y=newheight*real(ls_ybl)  
  CASE   radiobutton!  
  irb_obj=This.control[i]  
  of_getbl(irb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  irb_obj.x=newwidth*real(ls_xbl)  
  irb_obj.y=newheight*real(ls_ybl)  
  CASE   commandbutton!  
  icb_obj=This.control[i]  
  of_getbl(icb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  icb_obj.x=newwidth*real(ls_xbl)  
  icb_obj.y=newheight*real(ls_ybl)  
  icb_obj.width=newwidth*real(ls_wbl)  
  icb_obj.height=newheight*real(ls_hbl)  
  CASE   picture!  
  ip_obj=This.control[i]  
  of_getbl(ip_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ip_obj.x=newwidth*real(ls_xbl)  
  ip_obj.y=newheight*real(ls_ybl)  
  ip_obj.width=newwidth*real(ls_wbl)  
  ip_obj.height=newheight*real(ls_hbl)  
  CASE   datawindow!  
  idw_obj=This.control[i]  
  of_getbl(idw_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  idw_obj.x=newwidth*real(ls_xbl)  
  idw_obj.y=newheight*real(ls_ybl)  
  idw_obj.width=newwidth*real(ls_wbl)  
  idw_obj.height=newheight*real(ls_hbl)  
  CASE   dropdownlistbox!  
  iddlb_obj=This.control[i]  
  of_getbl(iddlb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iddlb_obj.x=newwidth*real(ls_xbl)  
  iddlb_obj.y=newheight*real(ls_ybl)  
  iddlb_obj.width=newwidth*real(ls_wbl)  
  CASE   dropdownpicturelistbox!  
  iddplb_obj=This.control[i]  
  of_getbl(iddplb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iddplb_obj.x=newwidth*real(ls_xbl)  
  iddplb_obj.y=newheight*real(ls_ybl)  
  iddplb_obj.width=newwidth*real(ls_wbl)  
  CASE   listbox!  
  ilb_obj=This.control[i]  
  of_getbl(ilb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ilb_obj.x=newwidth*real(ls_xbl)  
  ilb_obj.y=newheight*real(ls_ybl)  
  ilb_obj.width=newwidth*real(ls_wbl)  
  ilb_obj.height=newheight*real(ls_hbl)  
  CASE   multilineedit!  
  imle_obj=This.control[i]  
  of_getbl(imle_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  imle_obj.x=newwidth*real(ls_xbl)  
  imle_obj.y=newheight*real(ls_ybl)  
  imle_obj.width=newwidth*real(ls_wbl)  
  imle_obj.height=newheight*real(ls_hbl)  
  CASE   editmask!  
  iem_obj=This.control[i]  
  of_getbl(iem_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iem_obj.x=newwidth*real(ls_xbl)  
  iem_obj.y=newheight*real(ls_ybl)  
  iem_obj.width=newwidth*real(ls_wbl)  
  iem_obj.height=newheight*real(ls_hbl)  
  CASE   tab!  
  it_obj=This.control[i]  
  of_getbl(it_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  it_obj.x=newwidth*real(ls_xbl)  
  it_obj.y=newheight*real(ls_ybl)  
  it_obj.width=newwidth*real(ls_wbl)  
  it_obj.height=newheight*real(ls_hbl)  
  CASE   groupbox!  
  igb_obj=This.control[i]  
  of_getbl(igb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  igb_obj.x=newwidth*real(ls_xbl)  
  igb_obj.y=newheight*real(ls_ybl)  
  igb_obj.width=newwidth*real(ls_wbl)  
  igb_obj.height=newheight*real(ls_hbl)  
  CASE   hscrollbar!  
  ihsb_obj=This.control[i]  
  of_getbl(ihsb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ihsb_obj.x=newwidth*real(ls_xbl)  
  ihsb_obj.y=newheight*real(ls_ybl)  
  ihsb_obj.width=newwidth*real(ls_wbl)  
  ihsb_obj.height=newheight*real(ls_hbl)  
  CASE   picturebutton!  
  ipb_obj=This.control[i]  
  of_getbl(ipb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ipb_obj.x=newwidth*real(ls_xbl)  
  ipb_obj.y=newheight*real(ls_ybl)  
  ipb_obj.width=newwidth*real(ls_wbl)  
  ipb_obj.height=newheight*real(ls_hbl)  
  CASE   listview!  
  ilv_obj=This.control[i]  
  of_getbl(ilv_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ilv_obj.x=newwidth*real(ls_xbl)  
  ilv_obj.y=newheight*real(ls_ybl)  
  ilv_obj.width=newwidth*real(ls_wbl)  
  ilv_obj.height=newheight*real(ls_hbl)  
  CASE   picturelistbox!  
  iplb_obj=This.control[i]  
  of_getbl(iplb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iplb_obj.x=newwidth*real(ls_xbl)  
  iplb_obj.y=newheight*real(ls_ybl)  
  iplb_obj.width=newwidth*real(ls_wbl)  
  iplb_obj.height=newheight*real(ls_hbl)  
  CASE   singlelineedit!  
  isle_obj=This.control[i]  
  of_getbl(isle_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  isle_obj.x=newwidth*real(ls_xbl)  
  isle_obj.y=newheight*real(ls_ybl)  
  isle_obj.width=newwidth*real(ls_wbl)  
  isle_obj.height=newheight*real(ls_hbl)  
  CASE   treeview!  
  itv_obj=This.control[i]  
  of_getbl(itv_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  itv_obj.x=newwidth*real(ls_xbl)  
  itv_obj.y=newheight*real(ls_ybl)  
  itv_obj.width=newwidth*real(ls_wbl)  
  itv_obj.height=newheight*real(ls_hbl)  
  CASE   userobject!  
  iuo_obj=This.control[i]  
  of_getbl(iuo_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iuo_obj.x=newwidth*real(ls_xbl)  
  iuo_obj.y=newheight*real(ls_ybl)  
  iuo_obj.width=newwidth*real(ls_wbl)  
  iuo_obj.height=newheight*real(ls_hbl)  
  CASE   vscrollbar!  
  ivsb_obj=This.control[i]  
  of_getbl(ivsb_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ivsb_obj.x=newwidth*real(ls_xbl)  
  ivsb_obj.y=newheight*real(ls_ybl)  
  ivsb_obj.width=newwidth*real(ls_wbl)  
  ivsb_obj.height=newheight*real(ls_hbl)  
  CASE   graph!  
  igr_obj=This.control[i]  
  of_getbl(igr_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  igr_obj.x=newwidth*real(ls_xbl)  
  igr_obj.y=newheight*real(ls_ybl)  
  igr_obj.width=newwidth*real(ls_wbl)  
  igr_obj.height=newheight*real(ls_hbl)  
  CASE   olecontrol!  
  iole_obj=This.control[i]  
  of_getbl(iole_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iole_obj.x=newwidth*real(ls_xbl)  
  iole_obj.y=newheight*real(ls_ybl)  
  iole_obj.width=newwidth*real(ls_wbl)  
  iole_obj.height=newheight*real(ls_hbl)  
  CASE   richtextedit!  
  irte_obj=This.control[i]  
  of_getbl(irte_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  irte_obj.x=newwidth*real(ls_xbl)  
  irte_obj.y=newheight*real(ls_ybl)  
  irte_obj.width=newwidth*real(ls_wbl)  
  irte_obj.height=newheight*real(ls_hbl)  
  CASE   statictext!  
  ist_obj=This.control[i]  
  of_getbl(ist_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  ist_obj.x=newwidth*real(ls_xbl)  
  ist_obj.y=newheight*real(ls_ybl)  
  ist_obj.width=newwidth*real(ls_wbl)  
  CASE   line!  
  iln_obj=This.control[i]  
  of_getbl(iln_obj.tag,ls_xbl,ls_ybl,ls_wbl,ls_hbl)  
  iln_obj.beginx=newwidth*real(ls_xbl)  
  iln_obj.beginy=newheight*real(ls_ybl)  
  iln_obj.endx=newwidth*real(ls_wbl)  
  iln_obj.endy=newheight*real(ls_hbl)  
  END   CHOOSE  
  NEXT  
   
  This.Setredraw(true)  
  代码经过测试.Top

7 楼langel(小白)回复于 2003-06-04 08:42:46 得分 10

用PFC吧,有专门的控件大小自动调整服务:Top

8 楼zapjenny(简爱)回复于 2003-06-04 09:17:51 得分 0

学习,,,Top

9 楼homeness(胡同里的小猫)回复于 2003-06-04 09:18:35 得分 10

代码肯定是要在resize上面写的  
  this.width=newwidth  
  this.height=newheight  
  this.x=oldx  
  this.y=oldy  
  不过我还是觉得pfc好用Top

相关问题

  • DELPHI中如何动态修改动态控件的CAPTION值
  • 如何在Delphi中实现在运行时动态用鼠标修改控件的大小,位置改变已经解决.高分!
  • 请问:1.如何使基于对话框的应用程序启动时即为最大化并禁止用户修改窗体大小;2.如何动态创建控件及修改其属性(如botton,editbox,特别是修改picture控件的大小)?谢谢,每题20分.
  • 怎样动态修改datareport里label控件的caption的值??????????
  • 动态修改控件名称,然后取值问题
  • 如何动态的修改HtmlInputFile控件的值?
  • 一个高深问题:如何动态修改控件类型
  • 怎么修改RTE控件的字体大小?
  • 怎样在程序运行是修改控件的大小.
  • 怎么外部修改IMAGE控件的大小

关键词

  • 控件
  • real
  • 属性
  • 代码
  • ybl
  • ls
  • 数组
  • xbl
  • icb
  • wbl

得分解答快速导航

  • 帖主:jqka007
  • liaolwj
  • joss
  • cyactiveboy
  • cyactiveboy
  • peterlz
  • langel
  • homeness

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo