声明1:以本人名义发布的消息从来都不代表易语言官方消息。其实这何需声明,明摆的事嘛,可是我被某些人吓怕了,诚惶诚恐,特此声明。
声明2:未经本人(liigo)同意,此文禁止转载。
Delphi 开发易语言支持库再获重大进展,支持窗口控件了
Delphi 开发易语言支持库再获重大进展,经初步研究已经可以支持窗口控件。
易语言将再次拥抱Delphi,拥抱VCL。
易语言之福,易友之福。
2008年4月3日,请记住这个节日。
众所周知,易语言支持库开发接口中,早已将窗口控件的数据类型固定为MFC中的 CWnd*,要用MFC之外的技术开发易语言窗口控件,有可能吗?很多人早已在潜意识中就否定了这种可能性。包括本人(liigo), 在三年前(2004.9)将易语言支持库C/C++开发接口转换为Pascal接口(第二版)时,就曾经写下这样一段话:“用Delphi编写带窗口组件的易语言支持库是几乎不可能的(我没有说的很死),……”现在我很庆幸当时用了括号,没有把话说绝,还留下了一丝可以回旋的余地,否则今日岂不无地自容?。“‘说不清’是一句极有用的话。……即使和讨饭的女人说话,也是万不可省的。”(鲁迅《祝福》)
下面是小道消息。
前天(2008年4月2日)晚上,吴涛再次提出封装VCL窗口控件的想法(上次提出封装VCL是在三年之前,当时想按照封装ActiveX的思路进行,未果),并给出了将VCL控件之外再套一个MCF窗口的实现思路。昨天(2008年4月3日),研究此思路是否可行的重任交到了海洋肩上。 在研究了一整天之后,终于得到了可喜的结果。最终结果与吴涛的思路完全契合,只是稍有变通:将VCL窗口控件直接创建到易语言的窗口或容器组件上,同时给该VCL窗口控件“伪造”一个 CWnd* 对象(这一功能由易语言核心库提供接口),让易语言窗口系统认为它也是一个“合法”的易语言窗口控件。在事件处理方面,我们发现,如果将VCL控件直接作为易语言窗口或控件的子窗口,则VCL控件有时不能触发其自身事件。这其实与Windows消息机制有关,有些消息并不是直接发送给窗口(HWND)自身,而是发送给其父窗口。解决办法也很简单,只要让“需要接收事件的VCL控件”不作为易语言窗口的“直接子窗口”就可以了。例如:要处理“VCL按钮”的被单击事件,需要先在易语言窗口(或其它容器窗口)上放一个“VCL面板”,再在“VCL面板”上放“VCL”按钮。反之,易语言窗口控件要接收事件的话也不能作为VCL窗口控件的直接子窗口。已经比较理想了,MFC和VCL混用,做到这一步,至少我(liigo)很满意。易语言的广大用户,能用上丰富多采的VCL控件,应该也会很满意吧?
吴涛不愧是易语言之父,别人不敢想的他敢想,别人做不了的他做了,技术嗅觉异常敏感。海洋不愧是最早的一批易友,易语言熟,C++熟,Delphi也熟,技术非常扎实,思路非常开阔。
现在感觉,我4年前(2003.5)定制的Delphi开发易语言支持库的框架,结构太丑陋,(为什么当时就认为比较理想呢?),尤其是支持库大了之后,代码堆积在一起不说,仅定义一个函数就要把代码分散在多处,难以维护。我希望能再找一段时间,把这个框架好好调整一下,至于能不能找到更好的结果……我“说不清”。“易语言.飞扬”的C/C++开发接口的定义形式值得参考,考虑到与Pascal语言的差异,也未必可以行得通,但不妨一试。
附,之前的Delphi的易语言支持库开发框架(部分代码):
相关推荐
易语言支持库开发官方手册: 00.易语言支持库开发包 01.支持库实际上是一个DLL动态连接库 02.支持库LIB_INFO数据结构 03.LIB_INFO成员详细说明 04.易语言的数据类型及数据存储方式 05.接收来自易语言的...
"185个易语言支持库打包下载" 提供了一套丰富的资源,帮助用户扩展易语言的功能,提高开发效率。这些支持库涵盖了各种功能模块,如数据处理、网络通信、图形用户界面等,极大地丰富了易语言的编程环境。 EClpData....
在易语言的开发环境中,组件和控件的丰富性是其一大亮点,尤其是对于处理表格数据的场景,易语言提供了超级表格控件支持库这一实用工具。这个支持库不仅提供了一套完善的表格处理机制,而且其源码的开放性允许开发者...
### 易语言支持库开发教程知识点详解 #### 一、易语言支持库概念与特性 易语言作为一种本土化的编程语言,其一大特色在于强大的可扩展性。这种扩展性主要通过支持库来实现。用户不仅可以根据自己的需求安装所需的...
易语言支持库大全是专为易语言编程环境设计的一套完整的辅助工具集合,旨在扩展易语言的功能和提高开发效率。这个完整版集成了多个不同功能的库,包括但不限于数据操作、菜单管理、网络服务、汉字处理、COM对象交互...
易语言支持库大全包含了各种类型的支持库,这些库在编程时可以被调用,大大提高了开发效率。例如,"支持库大全.exe"可能是一个集合了所有易语言支持库的应用程序,用户可以通过这个工具来查看、管理或安装这些库。它...
F:\ISO\=]易语言视频[=模块[=\易语言支持库\云外归鸟的MDI窗口支持库 (2.1#0版)静态库版.rar F:\ISO\=]易语言视频[=模块[=\易语言支持库\云外归鸟的PDF文档浏览器 (1.1#0版)支持伪静态库编译.zip F:\ISO\=]...
适用于新手学习编程,入门级学习资源
这是一个使用易语言模块“易写易库(EXEK)”开发的易语言支持库,可用于易语言3.x和4.x,作者liigo。 命令有图标支持库,顾名思义,其中有两个命令有图标(其中第一个命令有动态图标),第一个命令的两个参数也有...
英文关键字支持库,为易语言提供 if switch while for continue break return 等英文形式的流程控制语句,其功能和用法与易语言核心库中相关命令完全等同。使用本支持库编写的易语言程序,运行时不需要依赖本支持库...
易语言是一种简洁明了的中文编程语言,而Delphi则是一款强大的面向对象的 Pascal 编程工具。本话题聚焦于如何在Delphi中调用易语言编写的DLL,并读取其中的字节集,这涉及到跨语言的接口调用和数据类型转换。 首先...
"易语言支持库模块大全整合版"是一个专为易语言用户提供的资源集合,它包含了各种易语言模块和支持库,这些资源极大地丰富了易语言的可用功能,提升了开发效率。 首先,我们要理解易语言支持库的重要性。支持库是...
易语言eSkin.fne支持库中文名为易语言皮肤支持库,本易语言支持库是在Liigo换肤支持库基础上升级而成,封装的是VclSkin控件。易语言eSkin.fne支持库为一般支持库,需要易语言系统3.0版本的支持,需要易语言系统核心...
总体来说,"192个易语言支持库"集合是一个宝贵的资源,对于使用易语言进行软件开发的人员来说,能够快速集成常用功能,减少重复劳动,同时也可以作为学习易语言和扩展功能的参考。在实际开发中,根据项目需求选择...
3. **图形用户界面(GUI)库**:提供创建窗口、控件和图形界面的工具,使用户能够构建美观的交互式应用程序。 4. **数据库库**:用于连接和操作各种类型的数据库,如SQL Server、MySQL等。 5. **多媒体库**:支持...
易语言AcroPDFLib支持库是易语言生态中的一个重要组件,它极大地拓宽了易语言在PDF处理方面的应用领域,对于开发教育、办公、阅读等软件有着显著的价值。通过深入理解和使用这个支持库,开发者可以构建出更加丰富和...
易语言源码用易语言写的易语言支持库.rar 易语言源码用易语言写的易语言支持库.rar 易语言源码用易语言写的易语言支持库.rar 易语言源码用易语言写的易语言支持库.rar 易语言源码用易语言写的易语言支持库.rar ...
易语言支持库则是为了扩展其功能而开发的一系列工具集合,这些库为程序员提供了更多的功能模块,使得在易语言中实现特定任务变得更加便捷。 在“易语言支持库大全(1)”中,我们看到一系列的支持库,包括: 1. 数据...