递归火山软件开发平台

标题: [PC]连续赋值的实现 [打印本页]

作者: 609177738    时间: 2025-4-6 21:37
标题: [PC]连续赋值的实现
本帖最后由 609177738 于 2025-4-7 23:47 编辑

众所周知,火山PC的连续赋值仅支持 "支持'='赋值的对象",   而火友呼吁声最大的就是不支持窗口组件属性写/普通方法:

例如 对一大批组件的标题进行赋值, 又或者是禁止, 等等.
------------------------------------------------
实际上很早之前 在
Ex_DirectUI界面库中 就提供了 一种以C++宏展开方式 来实现的 任意对象连续赋值操作,
为"连续执行1-4"), 并且封装了常用的 "连续赋值标题 " 函数.  
缺点是 支持的扩展变量个数有限,EXDUI中通过N行宏代码以支持到了可扩展100个变量,
简直是代码灾难(老太婆的裹脚布 , 跟 火山的模板类一样, 反馈都是石沉大海)


本文通过C++可变参数模板来实现以上功能,可扩展参数变量不再受限制.
函数名 "连续赋值自函数" :  至少需提供3个参数 , 每个参数对应要求具体看源码内备注
参数1: 真正执行赋值的静态方法
参数2: 传递到参数1所提供的方法中, 用于所欲赋予的值
参数3: (必须传引用)传递到参数1所提供的方法中, 所欲赋值到的变量, 可无限扩展


连续赋值组件标题例子:
连续赋值自函数 (_赋值标题, "连续赋值标题", 按钮4, 按钮2, 按钮3, 编辑框1)

// _赋值标题 静态函数只需实现一次即可
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 _赋值标题 <公开 静态 折叠>
  3. 参数 值 <类型 = 文本型 注释 = "@视窗.后缀文本 "&" 为可选,因为火山类自动传引用,基本数据类型一般无需传引用">
  4. 参数 变量 <类型 = 窗口组件 注释 = "基本数据类型 必须手动添加" 注释 = "窗口组件 为 火山的类 无需添加." "//@视窗.后缀文本" = "&">
  5. {
  6.     变量.标题 = 值  // 属性写 或 普通方法 也可以
  7. }
复制代码
其他的需求自行编写 属于自己的赋值静态方法来实现吧!

2025.4.7更新 解决x86 不支持问题



作者: 沉默流星    时间: 2025-4-7 08:06
支持
作者: fengyishen    时间: 2025-4-7 08:44
一直有个疑问,易语言底层也是C,既然能封装,火山为啥不封这个命令。感觉还是火山限制太狠了,导致不灵活了。
作者: hcwanz    时间: 2025-4-7 11:37
易语言怎么可能是c, 易和c的唯一共性也就是都是面向过程了
作者: aronshen    时间: 2025-4-7 11:55

支持




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