| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1942 人关注过本帖
标题:表单 init中用数组做参数?
取消只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:20 回复次数:1 
表单 init中用数组做参数?
表单 init中用数组做参数?
我在表单的 INIT中用数组做参数,
*表单 init
PARAMETERS laTabNm,laTabTb,laTabYb,lcTxt
if type("laTabNm",1)="A" and type("laTabTb",1)="A" and type("laTabYb",1)="A"
   *由于这些参数laTabNm,laTabTb,laTabYb,lcTxt,好像不能用在表单的其他地方去
   *定义另外的参数来代替他们
   n=alen(laTabNm)
   public aSqlNm(n),aSqlTb(n),aSqlYb(n)
   for i=1 to n
      aSqlNm(i)=laTabNm(i)
      aSqlTb(i)=laTabTb(i)
      aSqlYb(i)=laTabYb(i)
   endfor
endif
以上代码,单独运行 这个表单时,是可以正常运行的。
但奇怪的是,编译时,报错:
  未知的 LATABNM - 未定义
  未知的 LATABTB - 未定义
  未知的 LATABYB - 未定义
为了对付他,我只好在LOAD 中
*表单 LOAD
PUBLIC laTabNm[1],laTabTb[1],laTabYb[1]
就可以编译了,也能正常运行
但觉得怪怪的,,
调用这个表单时
DIME ary1(2),ary2(2),ary3(2)
ary1(1)="a1"
ary1(2)="a2"
ary2(1)="b1"
ary2(2)="b2"
ary3(1)="c1"
ary3(2)="c2"

DO FORM loadbar.scx WITH ary1,ary2,ary3

      


搜索更多相关主题的帖子: public 
2016-04-16 15:59
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用吹水佬在2016-4-16 22:07:34的发言:

编译时与运行时不同,编译时解释不了未定义的数组。
如:
 
DIMENSION bb[1]
bb[1] = "bbbbb"
ff(@bb)
RETURN
 
FUNCTION ff(aa)
    MESSAGEBOX(aa[1])
ENDFUNC
 
显然 aa 数组是未声明定义,编译时解释不了aa[1]会提示“找不到未知的AA”,忽略就可以,运行时调用ff(@bb)是能正常解释执行的。
 
奇怪,函数中用数组参数,是要要@,但我测试了,在表单中INIT参数,加@会出错。
只能
DO FORM loadbar.scx WITH ary1,ary2,ary3 &&不出错,也能正确传参数进去

DO FORM loadbar.scx WITH @ary1,@ary2,@ary3 &&出错





2016-04-16 23:23
快速回复:表单 init中用数组做参数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055382 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved