下面的内容是从Delphi大富翁那里转过来的,更详细的你可以到这里去看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1290924
想用Delphi写出只有几十K的程序吗,想就往下看吧:)
注:下面的教程都是以Win2000Pro(SP3)+Delphi6(SP2)+KOL1.42+MCK1.42为平台讲解的。
一、KOL是什么?KOL能做什么? MCK是什么?MCK能做什么?
KOL是一套对象库,免费而且开放源代码,大家可以http://bonanzas.rinet.ru/去下载到
它。它能够使Delphi编出尺寸非常小的32位Windows图形用户界面的应用程序。
目前支持的Delphi版本:Delphi6,Delphi5,Delphi4,Delphi3和Delphi2。
使用KOL在D2-D5中编写的最小图形界面程序(只有一个窗体的空应用程序),只有13K左右。
在D6中为20K左右。
MCK一套以KOL为基础的可视化组件,用它就像用VCL一样的方便省事而且可以达到和KOL一
样的效果。
二、KOL和MCK的安装
1、http://bonanzas.rinet.ru/下载到KOL和MCK后,把它们解压到你自已想要的目录中。
把KOL中的kol.pas拷贝到MCK目录中。
2、运行Delphi选择Tools菜单->Environmaent Options...->Library页,选择"Library
Path"右边的按钮会弹出"Directories"对话框,然后添加KOL和MCK的路径。
3、打MCK目录中的包文件安装。
三、如何创建一个KOL工程
1、在Delphi中新建一个应用程序,然后保存(这一步一定要做),保存时工程名一定不要改
变,窗体名可以随便。
2、在控件面板KOL中放一个TKOLProject控件到窗体并设置projectDest属性为你想要的工
程名比如说是"KOLSample",再把dprResource属性设为真(这关系到你能不能用Project->
Options...中的设置设置你的程序图标以及程序的版本号)。
3、在控件面板KOL中放一个TKOLForm控件到窗体,这个控件和TForm差不多的,保存并关
闭当前工程。
4、这时候你就会在保存目录中发现一个名为"KOLSample"的工程,聪明的你可能会想到
Project1这个工程不再需要了,是的你可以毫不留情的删掉它(其它的就不要删了)。打
开KOLSample,运行它,看看生成的程序,怎么样?:)
注:其实在KOL的老家还有很多KOL爱好者写的第三方KOL可视化组件,如要传载请注明
出处。
待继......
SQUALL[S&A SSC]
2002.8.27
由于KOL的教程非常少,就连帮助都不是很全再加上我
也是刚开始使用它,我也是边编译帮助边加入我自已的
使用体会,如有不当多处,还请大家多多交流。
最酷的程序员用KOL
by Superpage
前言
VCL 库是Delphi程序员熟知的,她几乎成了Delphi RAD技术的代言人。
VCL拥有世界上最大最丰富的控件资源涵盖了软件开发的各个方面,远远超过其他开发
工具,是每个程序员所垂涎。VCL的优点不再多说,现在我要向各位Delphi兄弟介绍另
一套Delphi上的类库:KOL。
"没有一个字节的代码是废物"
(我写的第2个KOL程序,35K,Aspack压缩后28K,1个Exe不需要任何运行库)
现在的VCL应用程序虽然很优美,但还不够精简(a little oversized),一个空空
的GUI程序至少有270K(Delphi5),原因是Borland的编译器技术虽然精湛,具有
SmartLink技术(只把用到的代码连接到EXE),但对于很多面向对象编程钟采用了大量
的的方法继承,虚方法表,使得 SmartLink也无能为力。而且随着 Delphi 升级,基本
对象的方法和属性的代码也越来越大。采用分离的运行库编译虽然可以减小EXE,但要求客
户端安装VCL运行库是困难的,除非微软让步......(不说也罢)。不过总的说来,虽然基
于VCL的程序有冗余代码,但相对其他同类类库,EXE尺寸已经算很不错了,一般在数百K到
1、2M左右。
其实我们很早就听说直接用WinAPI可以创建很小的程序(有个著名的TestGUI.DPR),因此
有些程序员就打算自己建VCL以外的类库,具有VCL主要的功能,创造精简的程序。Delphi
上的非VCL类库目前我所见到的有3个,分别为 ACL,XCL/KOL 都出自俄罗斯(老毛子高人辈
出,而且是历史上很多革命的发源地)。其中最具有革命性的就属KOL库,作者 Vladimir Kladov
在1999年就开始设计 XCL,XCL出到1.86(2000年7月)特点是重写VCL,删除不必要使用很
少的对象属性和方法,其体系与VCL类似,也是对象继承方式。
到2000年,Vladimir Kladov 发现XCL虽然有效,但不能根本解决问题,或者说有可能重蹈
VCL库覆辙,于是他停下了XCL,推出了更大胆的计划KOL。其技术要点是设计了一个巨无霸对
象TControl,避免了对象继承,用不同的NewXXXX方法创建对象,使得编译器可以轻松的剔掉
冗余代码,另外还有替换System单元等多种手段。听起来很不可思议,是吧?哈哈,但我玩过
最新的KOL,发现它的确实厉害,KOL的目标并不是取代VCL,而是帮助我们完成一些功能齐全的
,尺寸紧凑的专用EXE(最小的KOL GUI 程序只有9.5k),这在我们将来设计一些通过网上分发
或嵌入设备程序会很有用。另外,KOL中重写了的TStrList、TList等大量对象比原来的VCL效
率更高。
KOL的程序设计难吗?
(以下部分内容据我今天(2001/5/14)刚从网上更新的0.74KOL,0.73MCK库而来,而KOL最近
更新很频繁,请大家关注其网站)早期的KOL的程序开发是完全"非可视"的,其标准例子可看出。
不过用KOL的程序员,绝非等闲之辈,相信 VC++/MFC的哥们也会很容易上手,因为和 WinAPI打
交道其实也很亲切,但KOL绝对是一个优越面向对象的类库,建新程序中自己手写的代码已经不算多了。
但Kladov又推出一个可视开发工具 MCK(镜象构件库),非常巧妙的利用了Delphi的IDE实现了可
视开发。当然很多人建议设计VCL工程翻译工具可能更方便,但现在还没人去做,毕竟是个革命性的
东西,需要更多人参与。我个人认为MCK还算个很好的思路,至少在新工程开发上不难。但传统的Delphi
程序员一定要有思想准备,你的第一个KOL程序花的时间肯定是你第一个VCL程序的数倍甚至更多(第一个
VCL程序只要按一下F9就行了,呵呵)将来的KOL会“可视”到什么程度,我的估计应该很乐观。现在KOL已
经有OLEdb 和 DBF 数据库的控件了,由于 VCL的控件大多源码开放,KOL的控件群出现指日可待。说到可
视化工具MCK,我真的很佩服Kladov的匠心独具,Kladov有一句话很有意思:
“KOL/XCL从一开始就没打算设计成可视化开发方式...我反复的告戒自己KOL可视化是不可能的,可是我熬
了4个通宵后,事情好象办成了...”
请看我制作的一个KOL程序:27k
Features:
1.执行程序大小 22k(用了 System.dcu 替换,StripReloc 和 UPX 压缩),无需任何外部运行库.
2.OLE DB 数据库访问,数据源设置.
3.HTTP 通讯演示。(用我的 Winettool.pas 单元)
4.使用了RichEdit
5.测试了窗口透明属性(需 Win2k支持)
最新进展
我已经把 KOL 运用到 ActiveX Control 上了,我写了个KOL的ActiveForm
编译出来有170k(Delphi 5最小的ActiveForm也要370k),但该OCX无法使用System.dcu 替换,StripReloc
和 UPX 等手段,我是用 aspack 压缩的,可以压到104k.
虽然未使用 Forms.pas,使用了 OLE系列单元,主要是VCL里OLE初始化对象的代码冗余比较大,所以应该还
可以继续优化。到100K以下应该没问题。
其他
最重要的:KOL主页上看看吧。
你写的第一个KOL Form 注意上的 defaultPosition defaultSize 属性请设为 False.
希望各位Delphi兄弟有空交流KOL开发经验。liwensong@hotmail.com