|
本帖最后由 mdyblog 于 2014-7-11 07:58 编辑
关于88.02版的 窗口初始化指令【CALL @】
目前建议在脚本开始加一行 “CALL @” (不含引号)
原因:
有些命令 如 WAIT 、 MSTR 、FILE 等,不需要窗口环境。
但是 EXEC != PECMD WAIT 5000
或BAT中 PECMD WAIT 5000
这样 或引起 窗口 闪一下。
88.02就是解决这个问题, 不闪了。
默认是不开窗口的。 只有CALL @。。。 MESS 。。。时才开窗口系统。
这样纯WAIT,FILE。。。的PECMD进程就不会闪了。
但是, 这样就可能和原有的设计不兼容。
问题1: 有些命令不执行: 原来的设计某些命令统一检查是否为窗口环境。新版本需要甄别一下,但是还没找全。
如 ENVI @@Visable--------------7.11 已经修正。
问题2: 访问内存错误: 非窗口环境,访问空的窗口指针。新版本需要仔细判断空窗口指针一下,但是还没找全。
脚本 还没有子进程(或没开或都已结束) 的 情况下,调用【 CALL @】
一般在脚本的开始。
这样就保险了。和原来版本一样。
调用窗口, MESS 是自动初始化 窗口系统。 不需要再单独 【CALL @】。
随着时间的延长, 估计这2个问题都能解决------扎样一般不需要【CALL @】。
下面测试代码, PECMD很旧.78.21.05C.EXE效果如图:- ENVI^ EnviMode=1
- WIN1
- _SUB WIN1,W289H159,测试窗口抖动%&PECMDVER%,
- ITEM ITEM1,L99T67W60H30,测试,OnTEST,
- LABE -center LABE1,L54T19W138H30,,,
- _END
- _SUB OnTEST
- ENVI @ITEM1.Enable=0
- ENVI I=6
- LOOP #%I%>0, TEAM CALC I=%I% - 1| ENVI @LABE1=%I%...| EXEC =!"%MyName%" WAIT 6000
- ENVI @ITEM1.Enable=1
- _END
复制代码 开始:
启动子进程PECMD马上变灰了:
88.02没问题。
|
|