递归火山软件开发平台

标题: [BUG]PC设计器常量类传值错误 [打印本页]

作者: 609177738    时间: 2023-2-28 00:15
标题: [BUG]PC设计器常量类传值错误
先上结论:
该BUG现象由用户"九哥"在使用Ex_DirectUI界面库时发现,本人排查原因得出的结论
该BUG并不影响调试和发布版的实际效果.

窗口组件的属性"文本对齐"属性的参数为: 常量类-整数 时
在设计器里传递的值并不是 常量名对应的值 ,而是"常量成员"在"常量类"里的顺序索引值,从0开始的
----
如图1和图2:   (, 下载次数: 74) (, 下载次数: 57)

在图2的情况下,我在 "文本对齐"属性写方法下 调试输出参数值 ,
用Dbgview软件查看输出值为3 ,正对应 "右边"在"EX文本对齐方式"的成员顺序索引3

然后为了验证, 如图3和图4  :
(, 下载次数: 65) (, 下载次数: 58)

我将"右边"常量成员放到最前面,重新编译界面插件,Dbgview输出0  
----
然后我又想,为什么至今无人发现(发帖)???  
我翻了翻WTL界面库 里面的组件,
例如滑块条,报表 相关参数类型为常量类-整数的,其常量成员值都是顺序从0值开始往下顺的........
------------------------------------------------------
@飞扬工作室
@飞扬工作室
@飞扬工作室


作者: 创世魂    时间: 2023-2-28 08:23
常量类咋可能有bug。。有bug早就被发现了。。已经广泛使用了。。


作者: dengzf    时间: 2023-2-28 08:36
创世魂 发表于 2023-2-28 08:23
常量类咋可能有bug。。有bug早就被发现了。。已经广泛使用了。。

再仔细看看楼主的分析,已经分析的很明白了
作者: 创世魂    时间: 2023-2-28 08:40
设计值设计的选项所对应的值肯定是按照常量值来的。不按照常量值来那不乱套了。

只是下拉选项的顺序才会按照变量顺序来,值是不会变的。。




作者: 609177738    时间: 2023-2-28 13:29
创世魂 发表于 2023-2-28 08:40
设计值设计的选项所对应的值肯定是按照常量值来的。不按照常量值来那不乱套了。

只是下拉选项的顺序才会按 ...

帖子分析的过程很明显了 而且说的不是常量类自身的bug  是设计器里参数类型为常量类的属性时 传值不对 这debug输出的是直接在 属性写方法下 直接output参数的   在软件正常调试发布时是正常使用的 没有问题的
作者: dingpengdhr    时间: 2023-2-28 14:34
有没有一种可能  就是说至今才被发现的原因是    用火山的人实在太少了?
作者: 609177738    时间: 2023-2-28 21:36
@飞扬工作室         回话呀
作者: 夏末雨蝉    时间: 2023-3-22 20:56
你好大佬,你的火山界面库有交流群嘛
作者: 4899    时间: 2023-5-24 16:30
@飞扬工作室 麻烦看一下这个问题,确实存在BUG
作者: 飞扬工作室    时间: 2023-5-24 18:18
该BUG并不影响调试和发布版的实际效果.

你的意思是这个问题在调试运行和编译时均不存在,只是影响在设计时的预览效果?


如果是这样的话,窗口属性中使用的常量类是必须要满足这个条件(从0开始顺序递增)的,你想一下,类似这样的常量类:


<火山程序 类型 = "通常" 版本 = 1 />

类 横向对齐模式 <公开 注释 = "提供各种横向对齐模式" @文档 = "category = \"其它\"" @常量类 = 整数>
{
    常量 左边 <公开 值 = @VHAM_LEFT>
    常量 居中 <公开 值 = @VHAM_HCENTER>
    常量 右边 <公开 值 = @VHAM_RIGHT>
}

它的值不是整数而是一个本地常量名称,如果常量值不能满足从0开始顺序递增,那么设计器是无法得知预览时需要传递过去的具体属性值的.


作者: 609177738    时间: 2023-5-24 22:12
飞扬工作室 发表于 2023-5-24 18:18
该BUG并不影响调试和发布版的实际效果.

你的意思是这个问题在调试运行和编译时均不存在,只是影响在设计时 ...

是的, 但是我的想法是  修改设计器相关代码:  下拉列表(也就是组合框) 是可以存储用户数据的, 在获取本地常量名的时候把对应值加进去,这样下拉选择的时候再取出对应数值传递就可以避免这样的情况了

作者: server    时间: 2023-5-24 23:01
错就认,挨打要立正。
改了就好了。
作者: 飞扬工作室    时间: 2023-5-25 16:11
609177738 发表于 2023-5-24 22:12
是的, 但是我的想法是  修改设计器相关代码:  下拉列表(也就是组合框) 是可以存储用户数据的, 在获取本地 ...

已经通过修正界面插件代码生成机制解决了此问题,请留意下一个更新包.
作者: htpmcj    时间: 2023-11-8 12:38
本帖最后由 htpmcj 于 2023-11-8 12:44 编辑
飞扬工作室 发表于 2023-5-25 16:11
已经通过修正界面插件代码生成机制解决了此问题,请留意下一个更新包.

自定义一个@窗口组件,内部一个写属性方法(参数是整数)加上@列表选择项,选项提供上边、下边、左边、右边,在界面设计器里点击选项的时候,只有最后一个右边有效果。该方法内已有分支判断0-3的代码,测试只有右边(3)有效果。
而不用@列表选择项,参数类型改成常量类,则在界面设计器里点击下拉选项则一切正常。我认为是界面设计器的Bug!!!
因为需要编译界面插件,不方便提供例子,请吴总排查一下!@飞扬工作室




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4