Sign in Join
Wiki copytemporary

KOL-CE/zh CN: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: KOL-CE/zh CN

OldNewLine
1+## 介绍
2+
3+KOL-CE是由[Vladimir Kladov](http://f0460945.xsph.ru/rindex.htm) 开发的元件,在其他平台上为KOL跟MCK两组套件,现在则是将之移植到Free Pascal跟Lazarus上使用,关于它的授权,请参见: [wxWindow函式库授权](http://www.opensource.org/licenses/wxwindows.php).
4+
5+KOL-CE可以建立非常精简的Win32/WinCE图形界面程序(如果项目只包含一个空的视窗的话,建置出来的程序码大约只占40KB而已)。
6+
7+MCK则是让KOL-CE项目使用的一组Lazarus套件,KOL-CE的图形界面就是靠MCK来达成的。
8+
9+原本KOL-CE只是计划把KOL移植给[[WinCE port|WinCE]]使用而已,但后来开发的时候决定要把Win32的许多功能保留下来,并让FPC开发WinCE应用程序能够更顺利。原本KOL是为Delphi设计的,当时在FPC上面运作并不顺,而原始的MCK则是完全不能在Lazarus上面使用的。
10+
11+### 基本需求
12+
13+- Win32平台上的Free Pascal编译器2.2.0版或更新的版本。
14+- Win32平台上的arm-wince交叉编译器2.2.0或更新的版本(开发[[WinCE port|WinCE]]程序时会用到).
15+- Win32平台上的Lazarus 0.9.23版或更新的版本。
16+
17+### 能支援的平台
18+
19+- 所有32位元的Windows作业系统,从Windows 95到Vista都行。
20+- 使用[[WinCE port|Windows CE]]为作业系统的PocketPC跟手机。
21+
22+## 下载
23+
24+请从[这里](http://sourceforge.net/project/showfiles.php?group_id=188451)下载最新版的KOL-CE
25+
26+您也可以从SVN下载最新出炉的KOL-CE原始码,连结如下: <https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk>
27+
28+## 安装
29+
30+------------------------------------------------------------------------
31+
32+如果您正在使用Lazarus 0.25版或更新的版本,则您就需要先加入**`DisableFakeMethods`**这个设定,重新编译Lazarus,接着才能安装MCK套件。
33+
34+**注意:** KOL-CE 2.80.2 及以后版本不再需要定义 `DisableFakeMethods` 。
35+
36+如果您以前使用 KOL-CE 2.80.1 或更旧版本。在安装 MCK 包之前您需要**去掉** `DisableFakeMethods` 定义并重编译Lazarus。否则**event handlers(事件处理程序)无法工作**!
37+
38+步骤如下:
39+
40+1. 执行Lazarus.
41+2. 点选选单项目: **Tools \> Configure "Build Lazarus"...**
42+3. 在**Quick Build Options**分页上,点选**Clean Up + Build all**项目。
43+4. 开启**Advanced Build Options**分页,并在**Options**这个对话框里面加入**`-dDisableFakeMethods`**这个设定字符串。
44+5. 点选**Build**按键以重新建置Lazarus。
45+
46+------------------------------------------------------------------------
47+
48+<figure>
49+<img src="MirrorKOLPackage.png" title="MCK package" />
50+<figcaption>MCK package</figcaption>
51+</figure>
52+
53+1. 下载KOL-CE的原始码,并将之放在您的硬盘里(当然要解压缩)。
54+2. 执行Lazarus并点选选单项目**Components \> Open package file (.lpk)**,然后寻找到**MCK**套件所在的目录,并选择**`MirrorKOLPackage.lpk`**这个档案。
55+3. 套件视窗此时就会跳出来了,请按下**Install**按键。
56+4. Lazarus会将MCK套件进行编译,然后重新执行Lazarus IDE。
57+5. Lazarus IDE重新出现后,KOL分页就会在元件盘上面出现了。
58+
59+<figure>
60+<img src="KOLComponents.png" title="|KOL 元件盘分页" />
61+<figcaption>|KOL 元件盘分页</figcaption>
62+</figure>
63+
64+附注: 如果您没有在元件盘上面看到KOL分页的话,请把该视窗的高度拉大一点即可,您会看到元件盘的分页标签变成两排,KOL分页标签就会出现在第二排。(如上面的荧幕截图所示)
65+
66+MCK套件的升级非常简单,请直接用新版的KOL-CE原始码把旧版的覆盖掉,再次开启MCK套件(**`MirrorKOLPackage.lpk`**),然后按下**Install**按键,重新编译套件就行了。
67+
68+## 使用MCK
69+
70+### 建立MCK项目
71+
72+<figure>
73+<img src="MCKForm.png" title="MCK form" />
74+<figcaption>MCK form</figcaption>
75+</figure>
76+
77+1. 启动Lazarus并点选表单来新增一个应用程序项目:**File \> New...**。
78+2. 新增项目以后不要急! 千万不要在这个时候放任何元件上去,请先把项目存档,点选目录选项: **File \> Save All**,然后选择您要存放项目档案的目录即可。
79+
80+请注意!该项目的所有档案,都必须存放在同一个目录里面。您可以随时变更表单的单元档档名,但请不要变更项目的名称,就用原来的`Project1.lpi`。
81+
82+1. 请拖拉一个**`TKOLProject`**元件放到表单上面。
83+2. 请设定**`ProjectDest`**这个属性,来变更MCK项目的名称(不用包含路径喔)。如果您输入了`MyKOLProg`,那么您的MCK项目名称就会自动变成`MyKOLProg.lpi`,而产生出来的执行档,也会被命名为`MyKOLProg.exe`。\
84+ ![\|ProjectDest property](/wiki-images/c/c2/KOLProjectDest.png)
85+3. 请把**`TKOLForm`**这个元件拖放到表单上面。
86+4. 把目前的项目存起来。
87+5. 请开启刚刚您在**`ProjectDest`**属性内设定的项目名称, (在刚刚的例子里面,应该是`MyKOLProg.lpi`,应该可以在同一个目录里面找到。然后,您就可以把`project1.*`给删掉了,以后不会再用到这些档案了。
88+6. 跟您的新KOL/MCK项目熟悉一下吧。(调整参数,放TKOL相关元件,编译,执行,侦错等等) 祝您玩的高兴啦!
89+
90+### 新增一个表单
91+
92+1. 点选目录选项: **File \> New form**
93+2. 把新表单跟项目存放在同一个目录里面。(如果项目档已经存档了的话,没存档的话请先把项目档存档)
94+3. 把**`TKOLForm`**元件拖拉到表单上面来。
95+4. 请确认在项目的主表单上面,已经有摆放了**`TKOLApplet`**这个元件。
96+5. 如果`AutoBuild`这个属性已经设定为关闭,请点选主表单上面的**`TKOLProject`**元件,并双击它的属性**`Build`**就可以建置该项目了,如果您双击**`Build`**没有动静的话,请按alt+Tab将视窗的焦点移到别的视窗上面,您就会发现有所动作了。
97+
98+### 撰写程序码
99+
100+请别使用RTL/FCL/LCL相关的单元,由其是SysUtils, Classes, Form这些单元,您需要的函式,应该在KOL, Windows, Messages这三个单元档里面找到,或者是由您自行撰写的。 当您在项目内撰写程序码的时候,请记得要放在事件处理函式内。您也可以自行撰写程序码,但不要动到程序原始码的开始部分,也就是LCL表单的宣告部分。 不要更改自动产生的inc档案,请记得,您在项目里面写的程序码,必须同时兼容于LCL跟KOL,当使用LCL建置的时候,宣告部分会使用LCL的相关单元档,项目会变成Win32兼容的应用程序,而使用KOL建置的时候,则会使用KOL的相关单元档,建置出来的则是WinCE兼容的应用程序。
101+
102+### 重点
103+
104+为了解决KOL跟LCL对关键字的冲突: `LCL.Self`跟`KOL.@Self`,所以要特别使用`Form`这个栏位,在LCL里面,`TKOLForm`元件的`Form`属性,将会回传`Self`这个属性,也就是表单本身的意思,而在KOL里面`Form: PControl`则是物件的属性之一,包含了表单元件。也因为这一点,要变更表单的属性,就要这么写:
105+
106+`Form.Caption := 'Hello!'; `
107+
108+(原来的写法,是写成Caption := 'Hello!';即可,当在使用LCL对本项目进行编译的时候,这样是完全没问题的,但以KOL编译时则会出错) 但上述讨论的关键字`Form`只能使用到表单这个属性,无法使用到表单上面的控制项。您要使用子控制项跟表单的事件处理函式时,请依照原来的方式即可,例如: Button1.Caption := 'OK';
109+
110+`Button1Click(Form);`
111+
112+### 在执行时期动态建立表单
113+
114+在执行时期,同一个表单是可以建立出多个实体的,只要把表单的属性”AutoCreate”设定成不要自动建立,然后在需要的时候再透过程序码来建立表单即可。要动态建立表单,请使用全域函式`NewForm1`:
115+
116+`TempForm1 := NewForm1( Applet );`
117+
118+要让这个动作能够执行,请别在建立表单实体的时候使用单元档里面的全域变量来承接建立出来的表单,除非您知道您为何要那么作。
119+
120+## WinCE
121+
122+#### 设定
123+
124+![arm-wince target](/wiki-images/5/5e/Arm-wince-target.png) 您需要在您的系统中安装Win32版本的arm-wince交叉编译器,以建立WinCE的应用程序,请从[这里](http://www.freepascal.org/download.var)下载。
125+
126+要编译arm-wince的应用程序,您必须先设定项目的编译器属性,请点选选单项目: **Project \> Compiler options...**,点选**Code**分页,并把target platform改变为arm-wince,如附图所示。
127+
128+**附注:** 在编译您的WinCE应用程序时,IDE可能会回报以下的错误讯息:
129+
130+`Compiling resource KOL-CE.rc`\
131+`arm-wince-windres.exe: no resources`\
132+`KOL.PAS(57901) Error: Error while linking`\
133+`KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping`
134+
135+此时,您需要编辑Windows的环境变量**PATH**,把Win32平台FPC的编译器路径加进去。\
136+如果您不知道要加入哪个路径,请点选Lazarus选单项目: **Environment options**,然后看compiler path这个栏位的资料就是了。\
137+**别变动Lazarus里面的PATH,离开Lazarus**.\
138+用鼠标右键在”我的计算机”图示上面点击,选择目录里的’’’内容’’’,再点选内容视窗里面的**进阶**分页,再点选**环境变量**这个按键就可以编辑**PATH**这个环境变量了。
139+
140+#### 提示与注记
141+
142+- 要建立大多数Pocket PC上的全荧幕应用程序,请别变更表单的位置跟大小,如果表单的大小跟位置被变动了,则该表单就会看起来象是有标题栏的对话视窗,当然也包含标题栏的关闭程序按钮。在MCK里面把TKOLForm元件的**defaultSize**跟**defaultPosition**这两个属性设定为”True”就能让表单全荧幕显示了。
143+
144+#### 已知的问题
145+
146+- 下列两个元件目前不支援: RichEdit, TrayIcon.
147+- 目前只支援gsVertical, gsHorizontal 这两种panel样式。
148+
149+## 说明文件
150+
151+- 您可以从KOL官方网站找到KOL跟MCK的官方文件跟相关信息: <http://kolmck.ru>
152+- 请务必阅读MCK目录里面的**KOLmirrorReadme.txt**这个档案,这是MCK的说明文件。
153+
154+## 实际用KOL-CE制作的应用程序
155+
156+- [XP Mobile密码管理员](http://www.cp-lab.com/windows-mobile.html)
157+- [ChARMeD 反组译程序](http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html)
158+- [WMWifiRouter无线网络路由器](http://www.jongma.org/WMWifiRouter/)
159+
160+## 相关连结
161+
162+- [KOL&MCK官方网站](http://f0460945.xsph.ru/rindex.htm)
163+- SourceForge 网站上的KOL-CE网页 <http://sourceforge.net/projects/kol-ce/>
164+- [[WinCE port/zh TW|将WinCE移植给Free Pascal用]]
165+- [[Windows CE Interface/zh TW|Windows CE程序界面]]
166+- [[Windows CE Development Notes/zh TW|Windows CE开发笔记]]
167+
168+## 历史与联系
169+
170+请将您遇到的问题透过这个SourceForge的网址进行回报: <http://sourceforge.net/projects/kol-ce/>
171+
172+以上页面转换自[[KOL-CE/zh TW]],欢迎补充。
173+
174+---
175+*From the Free Pascal wiki, page "KOL-CE/zh CN", as it stood on 2021-04-29 after a change by Seenkao, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
176+Category: zh

Back to history