首页   |   IT资讯   |   综合资讯   |   开发   |   软件   |   问答   |   网络技术   |   网络综合
更多:
当前位置:首页 » 手机数码
文章正文

isvalid()问题

类型:转载   责任编辑:asp   日期:2007/03/01

    

我有一个窗口w_1是继承pfc_w_sheet的,w_1上放了一个数据窗口dw_1是继承u_dw的,  
  然而在打开w_1的情况下从别的窗口写代码isvalid(w_1)和isvalid(pfc_w_sheet)都是返回false。  
   
  我现在想在别的窗口上调用w_1窗口上dw_1的一个事件,这样写报错“null   object   reference”此代码是在窗口w_2上触发的,如下:  
   
  pfc_w_sheet   lw_sheet  
  lw_sheet   =   w_1  
  lw_sheet.dw_1.trigger   event   retrievestart()//这里报错  
   
  ///////////////////////////////////////////////////  
  这样写也不行:  
  w_1.dw_1.trigger   event   retrievestart()  
   
   
   
   
   
 

推荐阅读

  • 中美话费深度对比分析看电信黑不黑 [详细内容]
  • TV2.0挑战传统模式 以用户为中心电视时代到来 [详细内容]
  • 如何让V680显示来电姓名(修正版) [详细内容]
  • 网络未到手机先行 纯水货3G手机导购(图) [详细内容]
  • 卡片式DV 讯宜三种DV250摄像机分进合击 [详细内容]
  • T65升级后出现重启或死机的解决办法 [详细内容]
  • 谁动了你的奶酪?单功能机未来如何! [详细内容]
  • 网友回答:
    网友:thinkinger

    可能吗????

    网友:freeliu

    要想调用继承过来的代码,要用命令call。

    网友:thinkinger

    不应该这样声明:  
      w_1   lw_sheet         //这是重点!只有w_1中才有dw_1  
      lw_sheet   =   w_1  
      lw_sheet.dw_1.trigger   event   retrievestart()  
       
     

    网友:ropriest

    用call,如:  
      call   w_1.dw_1::itemchanged

    网友:tchatcha

    用call,如:  
      call   w_1.dw_1::itemchanged  
     

    网友:tuliplangel

    如果程序是mdi,程序是基于pfc的如下:  
      w_frame   lw_frame  
      window   lw_sheet  
      w_1   lw_parent  
      lw_frame   =   gnv_app.of_getframe()  
      lw_sheet=lw_frame.getactivesheet()  
       
        do   while   isvalid(lw_sheet)  
                if   lower(lw_sheet.classname())=w_1   then  
                          lw_parent=lw_sheet  
                                exit  
                end   if  
      lw_sheet=lw_frame.getactivesheet()  
        loop    
       
      if   isvalid(lw_parent)   then  
        lw_parent.dw_1.trigger   event   retrievestart()  
      end   if  
       
     

    网友:ropriest

    呵呵,窗口之间要有继承关系  
       
      楼主是不是想在打开别的窗口是判断该窗口是否已经打开,然后做相关的操作?  
      可以用一个global变量和一个全局函数来实现。

    网友:klbt

    试试:  
      w_1.dw_1.triggerevent(retrievestart)

    网友:ziphyr

    呵呵,pb已经提示的很清楚了,可你还是视而不见。null   object   referenced,就是空对象引用,你使用isvalid()函数也是同样的作用,即检查是否有空对象引用。isvalid返回false,你当然不能在继续了。其实如果你对java有点了解就知道,就是表示变量没有引用对象,所以不能对变量进行操作。比如:  
      w_1   mywindow  
      mywindow.dw_1.triggerevent()  
      嘿嘿,必然会空对象引用,因为mywindow根本就没有引用对象嘛,或者说,没有分配内存。要这样:  
      w_1   mywindow  
      mywindow   =   create   w_1  
      mywindow.dw_1.triggerevent()  
      这就可以了。可是这样分配内存导致窗口不可见。所以一般我们使用open系列函数,它在给mywindow变量分配内存(或称为分配引用)时使窗口可见。即  
      w_1   mywindow  
      open(mywindow)  
      mywindow.dw_1.triggerevent()  
      如果你不定义w_1类型变量而直接使用w_1也可以,而且更好,因为w_1被默认为一个全局变量。这样你不用分配内存就可以使用它了,而且也不用担心空对象的问题。呵呵,学过c吗?全局对象的内存分配在程序初始化前完成,用你的代码就没问题啦。  
       
     

    .
    站内导航:
    IT热门资讯:
      最佳浏览:1024X768 MSIE
    ©2007 jqmk.com.cn All Rights Reserved