• Call a method on caller form


    Sometimes you need to call a function on the calling form. You can use the following x++ code to achieve this.

    1)Form
    
    /*
    element.args().caller().<Method on caller form>();
    
    这个语句的意思代表打开当前这个对象的父对象的句柄。
    那么可以用if(element.args().caller())来检测当前对象是否是被其他对象调用而打开的。
    而且可以通过这个语句获得的句柄来调用父对象中定义的方法。
    
    For example
    
    element.args().caller().GS_Refresh();
    
    
    The problem with the code above is that you don't get any compilation errors if the method doesn't exist. To handle this problem, you can use the following code.
    
    */
    
    if (formHasMethod(element.args().caller(), identifierStr(GS_Refresh)))
    {
        element.args().caller().GS_Refresh();
    }
    
    2)Class
    
    //Class1中有两个方法:
    void hello()
    {
          print "hello world";
    }
    static void main(Args _args)
    {
          Class1 c1 = new Class1();
          ;
          _args = new Args();
          _args.object(c1);
          _args.caller(c1);
          Class2::Main(_args);
    }
    //在Class2中编写如下代码测试:
    static void main(Args _args)
    {
          _args.caller().hello();//这里在敲完caller()方法后的点后的方法列表中不会显示出hello这个方法,需要你手动的敲进去。
    }
    
    /*
    我们可以从以上示例可以看出,caller需要在父对象中方法中用args.caller(...)来指定。
    而这里,有一个特例那就是用menuitem button封装来打开的对象中的args.caller()对象缺省为那个承载menuitem button的formRun或者reportRun等对象。
    
    */
    
    
    

     

  • 相关阅读:
    第13讲——使用类
    第12讲——对象和类
    第11讲——面向对象编程
    第10讲——名称空间
    数论19——高斯消元
    贪心思想
    重要的转变(感觉自己最近堕落必读)
    java面试
    Java泛型
    系统设计
  • 原文地址:https://www.cnblogs.com/Fandyx/p/1920708.html
Copyright © 2020-2023  润新知