递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 514|回复: 4
打印 上一主题 下一主题

[视窗] [PC]连续赋值的实现

[复制链接]

28

主题

226

帖子

3519

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3519
跳转到指定楼层
楼主
发表于 3 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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 不支持问题


连续赋值.rar

14.44 KB, 阅读权限: 10, 下载次数: 3

回复

使用道具 举报

220

主题

1671

帖子

6966

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
6966
QQ
沙发
发表于 前天 08:06 | 只看该作者
支持
火山视窗封装视频教程
回复

使用道具 举报

12

主题

316

帖子

2946

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2946
板凳
发表于 前天 08:44 | 只看该作者
一直有个疑问,易语言底层也是C,既然能封装,火山为啥不封这个命令。感觉还是火山限制太狠了,导致不灵活了。
回复

使用道具 举报

75

主题

1119

帖子

5058

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5058
地板
发表于 前天 11:37 | 只看该作者
易语言怎么可能是c, 易和c的唯一共性也就是都是面向过程了
回复

使用道具 举报

5

主题

146

帖子

2810

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2810
5#
发表于 前天 11:55 | 只看该作者

支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-4-9 19:31 , Processed in 0.084914 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表