最近的应用,需要向一个内部窗口(internal window)传参,因为官方文档的说明较为宽泛,虽然结果只有两小段代码,但也费了很大的劲。把所有关于procedure的文档看一遍,又是重新学习了一遍C#的类与方法,才最终解决了这个问题。向内部窗口传参,有三个方法可以使用,我使用的是第三种方法,以下会重点说明第三种方法:

方法一:如果是动态标签页(Dynamic Tab)的内部窗口,可以通过TabOpen直接传参,这个和窗口传参的用法一样,如下:

TabOpen(TAB_Main, "Test of the new tab", IWIN_InternalWindow,"Param1","Param2")

方法二:如果是内部窗口控件的内部窗口,可以用方法二和方法三。方法二直接用函数ChangeSourceWindow来传递参数

方法三:因为我的应用不需要改变内部窗口,所以使用了procedure的方式来传递参数。步骤如下:

1、在内部窗口创建一个Local Procedure,如:

Procedure IWINParam(Param1,Param2)
//以下为代码块,Param1和Param2类似于行参

2、在放置内部窗口控件的父窗口,调用步骤1自建的过程函数,并将实参传递过去,如:

//其中IWCTRL_ControlName为内部窗口控件的名称,此处的Param1和Param2为实参

Param1 is string = "HI"
Param2 is int = 123 IWCTRL_ControlName.IWINParam(Param1,Param2)

两个步骤,即可完成参数传递,很简单。但因为官方文档说明的隐晦,却是让人想破了脑袋,直到重新学习了一次C#的类和方法,才推断官方文档中的说明,也许就是引用类方法的用法。事实证明,两者的相似性是非常大的。内部窗口相当于一个类,类的名称就是父窗口中内部窗口控件的名称,而在内部窗口中自建的Procedure,相当于类的一个方法,所以用类名.方法名的方式,可以直接调用这个方法。

windev的内部窗口传参方式及其与类的相似性的更多相关文章

  1. Python函数定义及传参方式

    主要内容:     1.函数初识     2.函数传参方式        (1)位置参数        (2)默认参数        (3)关键参数        (4)非固定传参 一.函数初识 1. ...

  2. angularjs简单实现$http.post(CORS)跨域及$http.post传参方式模拟jQuery.post

    1.开启angularjs的CORS支持 .config(function($httpProvider) { // CORS post跨域配置 $httpProvider.defaults.useXD ...

  3. react中的传参方式

    react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...

  4. Web API中的传参方式

    在Restful风格的WebApi的里面,API服务的增删改查,分别对应着Http Method的Get / Post / Delete /Put,下面简单总结了Get / Post /Delete ...

  5. jQuery对象初始化的传参方式

    jQuery对象初始化的传参方式包括: 1.$(DOMElement) 2.$(' ... '), $('#id'), $('.class') 传入字符串, 这是最常见的形式, 这种传参数经常也传入第 ...

  6. java 传参方式--值传递还是引用传递

    java 传参方式--值传递还是引用传递 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递.写它是为了揭穿普遍存在的一种神话,即认为 Java 应用程序按引用 ...

  7. mock和axios常见的传参方式

    第一次接手项目,传参方式还有些吃力,因此做一下总结. 首先我们需要会看swagger中的接口.里面写了某个接口需要接收什么样的值,前端怎么传递这个值 在mock中的传参方式: mock中传参的方式有两 ...

  8. $router和$route的区别,路由跳转方式name 、 path 和传参方式params 、query的区别

    一.$router和$route的区别 $router : 是路由操作对象,只写对象$route : 路由信息对象,只读对象 例子://$router操作 路由跳转 this.$router.push ...

  9. 指针数组的初始化和遍历,并且通过for循环方式、函数传参方式进行指针数组的遍历

    /************************************************************************* > File Name: message.c ...

随机推荐

  1. HashMap源码解析、jdk7和8之后的区别、相关问题分析(多线程扩容带来的死循环)

    一.概览 HashMap<String, Integer> map = new HashMap<>(); 这个语句执行起来,在 jdk1.8 之前,会创建一个长度是 16 的 ...

  2. ES6特性整理

    ESMAScript6.0 ES6 兼容 IE10+ .Chrome.Firefox 要想兼容IE10以下的有两种方法: 用 babel 工具 borwer.js ,在 script 标签里添加 ty ...

  3. Spring源码学习(六)-spring初始化回调方法源码学习

    1.spring官方指定了三种初始化回调方法 1.1.@PostConstruct.@PreDestory 1.2.实现 InitializingBean DisposableBean 接口 1.3. ...

  4. [Oracle/sql]查看当前用户名下有多少表 以及查看表字段信息

    SQL> select table_name from user_tables order by table_name; TABLE_NAME ------------------------- ...

  5. 20190919-02安装Xshell和CRT远程工具 000 008

    Linux远程登录及相关工具介绍 Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器.这时我们就需要远程登录到Linux服务器来管理维护系统. Linux系统中 ...

  6. Medium

    https://www.medium.com 破解阅读限制 https://medium-unlimited.ml/download/

  7. 说说ERP软件的系统设计--开源软件诞生8

    赤龙ERP系统设计篇--第8篇 用日志记录"开源软件"的诞生 赤龙 ERP 开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com ...

  8. NSOperation类

    NSOperation 抽象类 NSOperation 是一个"抽象类",不能直接使用 抽象类的用处是定义子类共有的属性和方法 在苹果的头文件中,有些抽象类和子类的定义是在同一个头 ...

  9. Vue elelment登录验证 简单版

    http.js import axios from 'axios' import { Message, Loading } from 'element-ui'; import router from ...

  10. Vue环境搭建、创建与启动、案例

    vue环境搭建 """ 1) 安装node 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ 2) 安装cnpm npm install - ...