捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
我写的一个超小型的对象库 v0.2
关键字:TinyAVL ActiveX 超小型 对象库
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:高级 完成时间:2007/12/4
发布者:takashiki 发布时间:2007/12/4
编辑器:DELPHI7 语  种:简体中文
分 类:杂项 下载浏览:1682/12213
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
闲来没事,自己写来玩玩的。

本库特别对ActiveX进行了精简,我的Demo程序中含有两个ActiveX控件,一个是WebBrowser,并且Sink了它的OnTitleChange事件。另一个则简单了,只是放了一个Flash控件。编译环境是Delphi7,采用了KOL的单元替换,使用了UPX压缩,最终程序大小是12.5K。
==========
如果您的程序已经超过了30K,那么请不要使用本库。那时,您需要使用的应该是KOL!

==========
经过了那么长时间的休养生息了,我的TinyAVL终于有发布新版本了,版本代号暂定为0.2,哈哈。与前一版本相比,差别还是十分大的。本版本不再对System单元进行最小化处理了,麻烦,我直接使用了KOL的单元替换了,本单元替换使得OleVariant和Variant无法使用。我同时也提供了一个替代方案。

本库以最小化为目标,但是也没有做到所有的函数都采用汇编书写,有的地方也是直接抄袭了Inprise和KOL。主要是AcitveX的事件处理,直接派生自TObject,从而使得代码量猛增。本Demo程序事实上含有三个程序,分别采用两个编译开关编译。详见TinyAVL.dpr单元。

本库以最小化为目标,不仅仅是程序体积,同时也体现在内存占用上面。虽然现在这两项指标已经不值一哂了,但是,小总是比较好的。因此本人也保留了。这里我卖个关子,真的是非高手莫看啊!因为与VCL、KOL的时间处理都不一样,大概类似于MFC或WTL的宏的方式了,比较复杂了吧?但是库本身可以提供相当简单的接口和处理过程,同时也使得ActiveX控件的事件可以通用。大家随便拖个VCL或KOL的TWebBrowser,再看看大小,然后比较一下我的12.5K的Demo程序,这下你总该明白了些什么吧。

所有控件的事件处理均为 XXControl.OnXXEvent := AssignEvent(YYY)的方式,类里面事件的定义均不占用任何内存。而是直接采用如下方式定义的:
    property OnClick: TMethod       index WM_LBUTTONUP      read GetEvents write SetEvents;
嘿嘿,是不是太奇怪了?

AVL.pas中使用了基本的控件以及消息处理,对Form的处理比较奇怪,直接盗用了微软的对话框,没有测试到底有没有节省体积。
AxCtrls.pas则封装了ActiveX控件,采用的方式是直接应用ATL.dll。哈哈,这就是我的ActiveX为什么那么小的原因!这里一共有好多个控件呢,连HTML的元素的事件都已经Sink了,至于怎么用,高手一看就明白。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
我写的一个超小型的对象库 v0.2
takashiki 2007/12/4 下+1682/浏+12214 评+5
我写的一个超小型的对象库
takashiki 2006/8/12 下+1316/浏+12092 评+12
相关评论
共有评论5条 当前显示最后5条评论
zxyzxy123 2007/12/4 21:06:55
支持,顶一下:)
zhahongyi 2007/12/4 23:14:42
高手哦!俺抬头仰望。这东西实在看不懂......
ccdos 2007/12/5 13:23:21
真正的高手

只能仰望了
ruralboy 2007/12/11 2:16:29
汇编能手,顶一下表示支持!

这东西做起来不容易,不过有些极端.个人认为 exe 文件长度无所谓.严谨和人性化的程序才是最好的:) 

粗陋之见,不足挂齿!

PS: 

不解事件为何定义为  Object,去掉 of object 代码不是更自由.
sun_catboy 2009/3/23 15:52:04
定义Object是有原因的,不是随便改的,这个涉及到了Delphi的编译器的问题
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表