开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4203|回复: 25
收起左侧

[火山PC分享] 从易到火山之以易语言角度理解火山视窗开发

[复制链接]
结帖率:100% (9/9)
发表于 2023-5-26 00:58:27 | 显示全部楼层 |阅读模式   湖南省郴州市
本帖最后由 fengyishen 于 2023-5-26 01:02 编辑

一、为什么写这篇博客?
1、本人有着易语言五年编写经验,大大小小写过项目几千个,算是对自己历程的1个小结。
2、经常从各种渠道看到反复的提问,通过分享经验让新手快速上手,壮大火山圈子,加速火山生态发展。
3、以自己的理解提出对火山代码的说明,让大家参与进来,共同讨论,共同提升。
二、火山视窗项目管理结构
1、结构层级关系
易语言:.e 源码 > 程序集(资源、类模块、数据类型、DLL声明等) > 代码 。
火山视窗:解决方案 > .vprj 项目 > .v 文件或 .wsv 文件(文本明文) > 代码。
2、解决方案
1)、 可以看到上面对应关系层级中,火山多了个解决方案。
好处 火山可以在1个窗口里管理多个源码,当你项目有多个EXE、多个DLL时,可以同时编写,可以一键编译多个源码,可以一键打开项目中用到多个源码 (因为所有源码在同1个解决方案中,不用担心哪个源码忘记放在哪里了)。
易语言则需要在窗口来回切换,挨个编译。
学习成本 多了一些编译、调试的操作,比如调试运行时,不按打开的源码运行,而是按设置为 活动项目 的源码运行等。
提示:火山编译与调试会自动保存,调试没有停止时,可以对源码进行修改但不会实时生效。
3、.e 源码 与 .vprj 项目
用过火山的小伙伴会发现,易语言的所有程序集在同1个源码中。火山的 .v文件或 .wsv文件则是独立的文件(默认在src文件夹中)。
好处 多个项目可以用同1份 .v 文件或 .wsv文件。比如,你写了一份通信加密算法在 C .v 。A 项目与 B 项目可以引用同1份 C .v 进行编译与调试。下次想更新算法时,只需要修改其中1个项目的 C .v 即可。
学习成本 易语言插入程序集,随便插入都不会乱。火山新建 .v 文件 的路径相对活动项目,.v 文件引用相对于解决方案选择的任意项目。
比如,如果你在所有项目都折叠起来的解决方案中选择了 A 项目,活动项目为 B 项目,这时你点击菜单 文件 > 新建 > 文件,此时文件放在 B 项目相对目录 src 文件夹中,在 A 项目中引用了此文件。
你会发现,你找不到刚才的新建的 .v 文件了。[滑稽]
火山的窗口、静态方法(易语言子程序)、类(易语言类模块)、文本资源、图片资源、常量、自定义数据类型(易语言叫法)、DLL声明(易语言叫法)等 更改 为表格属性中设置,可以在任意 .v 文件或 .wsv文件中编写。
4、程序集等子类别 与 .v 文件或 .wsv 文件
当你在实践上面 3 中学习成本一项时,也许发现了1个问题。易语言可以插入程序集、类模块、子程序、窗口等。火山却只能插入 .v 文件。 ???
因为火山的这些可以在任意 .v 文件中声明。在表格属性中设置对应的属性即可。

1)、易语言程序集:在火山类的表格中设置属性 @全局类 为 真 时。此类中的所有 静态方法 则可以像易语言程序集中的子程序一样调用。

2)、易语言子程序:在火山方法的表格中勾选 静态 时,此方法则可以像易语言子程序一样调用。参考上例的图示。

3)、易语言窗口:在火山类的表格中设置 基础类 为 窗口 时,则此类可以像易语言窗口一样设计组件,调用 取窗口句柄()等方法。
提示:图示中 @视窗.布局 在按快捷键 Ctrl + U 或 打开右键菜单选择 设计某某某的界面布局 打开 窗口设计器 后,在窗口设计器中点击 确定 后会自动生成。窗口设计器 只能在光标处于 基础类 为 窗口 或 父类 为 窗口 时(如何查看父类是什么在后面会讲)才能调用。

4)、易语言数据类型:在火山类中定义成员变量后,将成员公开,即可像易语言数据类型一样调用。
有时对于内嵌代码需要设置属性 @视窗.结构类 ,此时就相当于易语言在下图中所示。类型的成员S才是自定义数据类型。提供给封装用户进阶用法,不深入讨论。

5)、易语言全局变量:在火山类的表格属性设置 @全局类 为 真 ,将成员变量勾选公开和静态。即可像易语言全局变量一样调用。此时变量不再是线程安全,且变量数据不会自动释放。

6)、易语言DLL声明:在火山中可以直接调用C++的文件,很灵活!所以我们可以像C++代码一样引用头文件,直接内嵌代码调用,如果有 lib 的话,记得引用上 lib 。
我们可以不用任何声明调用绝大部分系统API和常量,因为基本模块中已经引用。比如MFC基本类,程序动态类等。
也可以像易语言一样用表格声明,非基本类型需要传递指针。比如下图中的文本型。文本型、字节集类等在火山不属于基本类型。

7)、易语言常量、图片资源、声明资源等:在火山类的表格属性设置 @全局类 为 真 ,将成员变量勾选公开。声明常量即可像易语言一样调用。
提示:某些情况需要使用非正常资源时,可以用 文件资源到字节集 转换到字节集后使用。可以定义成 字节集类 在 @视窗.值文件 里设置。

8)、易语言类模块:在火山中没有设置任何属性,即可像易语言类模块一样调用。
相对于易语言简陋的类模块,火山增加了以下几点:
# 勾选公开属性后,在子类引用输入字母时会弹出提示。易语言中虽然能调用,但输入字母时不会弹出提示框,需要自己输入完整名称。
# 成员变量公开后,在其它地方引用此类实例化的变量时,可以直接访问。
# 方法属性中新增 属性读 和 属性写 ,可以封装方法来读写类中数据。

发现了吗?火山是非常灵活的,这只是一个简单的示例。
还有类指针的调用,回调方法等也不再需要 汇编 或 置入代码 来实现。使用内嵌C++代码即可。
非封装用户用不到,这里就不深入讨论了!


你问我火山是个什么东西?
易语言写得了的代码,火山能写。
易语言写不了代码,火山也能写。
吴总出品,必属精品!这就是火山!

本来还想讲讲变量作用域、变量类型、火山使用技巧,比如搜索,帮助文档使用等等这些,整理了一下发现要讲很久,篇幅关系,写太长影响观感。下次有机会再讲吧~

评分

参与人数 1好评 +1 精币 +2 收起 理由
danshiyuan + 1 + 2 感谢发布原创作品,精易因你更精彩!

查看全部评分

发表于 2023-12-25 01:40:28 | 显示全部楼层   吉林省长春市
我想说你很牛的
回复 支持 反对

使用道具 举报

结帖率:67% (6/9)

签到天数: 3 天

发表于 2023-12-23 00:21:18 | 显示全部楼层   浙江省台州市
易语言的发展离不开小烦的超级模块开源,现在小烦离开了,谁来开源一下火山的模块,帮帮火山发展一下吧
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)
发表于 2023-11-27 07:52:53 | 显示全部楼层   山东省青岛市
daimmon 发表于 2023-10-11 08:02
按键精灵入门级别,现在想转其他语音   最近安装了火山软件

奈何教程太少  软件收费  想换Python了 ...

不收费,教程是少  不过可以找着易语言的改  很多相似的
回复 支持 反对

使用道具 举报

发表于 2023-11-25 04:52:52 | 显示全部楼层   辽宁省丹东市
333333333333333333333333
回复 支持 反对

使用道具 举报

发表于 2023-10-11 08:02:20 | 显示全部楼层   山东省烟台市
按键精灵入门级别,现在想转其他语音   最近安装了火山软件

奈何教程太少  软件收费  想换Python了
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 25 天

发表于 2023-10-10 10:21:11 高大上手机用户 | 显示全部楼层   山东省济南市
火山是挺好,就是教程挺操蛋,随便有点水平都开始收费
回复 支持 反对

使用道具 举报

发表于 2023-10-9 08:00:48 | 显示全部楼层   辽宁省大连市
好想学习火山,可惜没有系统的教学
回复 支持 反对

使用道具 举报

发表于 2023-9-6 17:39:33 高大上手机用户 | 显示全部楼层   陕西省西安市
支持支持支持支持支持
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2023-8-11 20:19:28 高大上手机用户 | 显示全部楼层   河北省石家庄市
你问我火山是个什么东西?
易语言写得了的代码,火山能写。
易语言写不了代码,火山也能写。
吴总出品,必属精品!这就是火山!
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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