loops - Install4j 的默认后退按钮行为与循环不兼容。解决方法是什么?

标签 loops install4j

有人可以阐明 Install4j 的后退按钮的实际工作原理吗?此时我应该注意,我使用的是 install4j Multi-Platform Edition 5.1.2(build 5492)。

循环示例

此示例基于包含 2 个屏幕(“屏幕 1”和“屏幕 2”)的屏幕组。

  1. 开始屏幕
  2. 屏幕 1(在循环组中)
  3. 屏幕 2(在循环组中)
  4. 结束画面

屏幕组属性:

  • 循环索引开始:0
  • 循环索引步长:1
  • 循环表达式:(Integer)context.getVariable("i") < 2
  • 循环索引变量名:i

正如预期的那样,重复点击下一步会导致以下屏幕流程:

  1. 开始屏幕
  2. 屏幕 1 (i=0)
  3. 屏幕 2 (i=0)
  4. 屏幕 1 (i=1)
  5. 屏幕 2 (i=1)
  6. 屏幕 1 (i=2)
  7. 屏幕 2 (i=2)
  8. 结束画面

我希望后退按钮在上面列出的历史记录中向后退一步。然而,实际行为如下:

  1. 结束画面
  2. 屏幕 2 (i=3)
  3. 屏幕 1 (i=3)
  4. 屏幕 1 (i=3)
  5. 屏幕 1 (i=3)
  6. 开始屏幕

显然,这不是任何理性用户所期望的。更复杂的是,change Log Install4j for 5.1 Build 5435包括以下内容:

Fixed wrong behavior when going back in the screen history where screen loops were present

这个例子中提出的另一个问题是,你如何在后退时减少循环计数器?在使用循环屏幕组时,似乎没有可行的方法来执行此操作。

如果是这种情况,实现可以向后逐步执行的循环的唯一方法是实现您自己的屏幕以覆盖 previous() .副作用是您必须手动编写屏幕代码才能获得正确的循环后退按钮行为,这看起来很荒谬。

有没有其他人找到解决这个问题的合适方法? install4j 手册非常蹩脚,因为“历史”一词只出现一次。没有关于后退按钮如何工作的规范。

最佳答案

这是一个错误,将在 5.1.4 中修复。请联系 support@ej-technologies.com 以获取已修复的当前版本。

The other issue raised in this example, is how do you decrement the loop counter when stepping backwards? It would appear there's no practical way of doing this when using a looped screen group.

这将在 5.1.4 中自动运行。

关于loops - Install4j 的默认后退按钮行为与循环不兼容。解决方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204298/

相关文章:

java - 如何从主类设置 Install4j 变量?

通过另一个向量中包含的字符串动态引用向量名称

java - 使用 install4j api 以编程方式下载并安装更新

java - install4j:如何在版本8上创建跨平台jre包?

java - Install4j 使用正则表达式和 xpath 表达式更新 XML 文件

install4j - 如何在自定义代码或 API 中检查 32 位或 64 位

python - 为什么循环中只有一个警告?

c++ - bool 表达式的顺序在 while 循环中重要吗?

.htaccess - .htaccess 会导致循环吗?

Python 循环中字符串比较