|
最近本人在用Lazarus开发wince的程序。发现编译出来的程序个头大得吓人。搜索了一下解决方法,可以在工程选项里修改一下(具体修改方式可以找其他的帖子,这里不说了),这样个头缩小了很多,然后再用upx压缩一下,基本上能在1M以内。但即使是这样,还是大。后来发现可以用kol-ce。
于是下载kol-ce 2.80.3进行安装。结果发现安装不成功。编译始终出错!于是再次到网上搜索解决方法,发现是缺少了引用。方法是:
GetLookupRootForComponent 的问题在PropEditUtils.pas. 文件里 | 和mckToolbarEditor.pas in line 23增加 Buttons, PropEdits, PropEditUtils | 和 mckMenuEditor.pas in line 23增加 PropEdits, PropEditUtils |
于是根据方法加上引用。果然原来没有编译通过的地方,编译通过了。本以为可以顺利安装好了。谁知又出现在问题了。竟然报“”找不到。于是再一次利用搜索引擎,发现也有提到这个问题,而可气的是,解决的方法只是说了句:“SourceEditorWindow”你倒是说一下,怎么修改!竟然没有。害得我用搜索引擎找了半天也没有找到修改方法。为了这个事情郁闷了几天。
今天本人再次试着安装,问题依旧!试着用搜索引擎再次搜索,找到这样一个贴子,说:“先安装Lazarus、FPC,再安装KOL-CE,Cross-arm-wince-win32。大功告成”。于是试着卸载Lazarus,删除Lazarus安装目录,然后先安装Lazarus、FPC,再安装KOL-CE,Cross-arm-wince-win32。结果大失所望!问题依然!!!冷静下来后,本人试着用SourceEditorWindow为关键字搜索。终于在“Lazarus 0.9.30 release notes”中看到这样一段话: |
SrcEditorIntf:
Introduced TSourceEditorManagerInterface
Deprecated SourceEditorWindow, replaced by SourceEditorManagerIntf
Deprecated some methods on TSourceEditorWindowInterface, now available through TSourceEditorManagerInterface
迷题终于解开,原来在Lazarus 0.9.30版以后,已经用“ SourceEditorManagerIntf” 来替换“ SourceEditorWindow” 了。于是把“ SourceEditorWindow” 改成“ SourceEditorManagerIntf” ,当然相应的属性也要跟着修改,方法如下:
第3775行开始
if SourceEditorManagerIntf <> nil then begin
for i:=0 to SourceEditorManagerIntf.SourceWindowCount - 1 do
if AnsiCompareText(SourceEditorManagerIntf.SourceEditors.GetProjectFile.Filename, Path) = 0 then begin
Result:=SourceEditorManagerIntf.SourceEditors;
exit;
end;
end;
第15687行
S := SourceEditorManagerIntf.ActiveEditor.FileName;
这样修改完后,编译完全通过,然后试着安装,成功!!!
在这里,我想对某些人说:如果你知道方法,请详细说出你的方法,而不要象上面提到的那位这样半调子,这样别人还是解决不了问题! |
评分
-
查看全部评分
|