从其它平台迁移而来
前言
做为一个桌面应用开发者,工作中一直使用的是Delphi(是语言,也是IDE,基于pascal语言),无论是经典的D7,还是现下最新的XE,都有着还算丰富的使用经验吧,虽然这两者都各有优缺点。做为团队开发成员之一,具体使用什么,几乎是没什么选择权的,毕竟公司有自己的技术栈,当然还有相应的技术债。
但是,做为一个个人开发者,还是比较喜欢严谨的pascal语言的(其实Go的一些语法就是借鉴pascal的,比如:类型在变量右侧),而且还有着那么多年的开发经验,理论上来说,写个小工具啊什么的,还是应该选择熟悉的Delphi才是,但是Delphi并不符合个人的选择条件:
不要太重量级
有当前比较流行的特性
有相对活跃的社区
D7以现在的眼光来看,绝对算是足够轻量级的,整个环境(不含三方组件)安装完还不到1G,但是是毕竟是二十年前的东西了,不说新特性,一些陈年bug就够喝一壶了。
相对来说,XE却是一直在更新着,新特性是有了,但是仅安装包就7~9G,只安装桌面开发必须的自带组件,安装完也有15G+,而且正版授权巨贵,社区版限制又巨多。
至于有相对活跃的社区这条,国外应该还行,但对英文渣渣来说还是有点难了;而国内,Delphi都是快绝迹的语言了,当我什么都没说吧。
所以,选来选去,也就只剩开源的Lazarus和CodeTyphon(基于Lazarus)了。原本是看中了CodeTyphon的,但是死活在Bug10上安装不成功,也就只能选Lazarus了,不过Lazarus倒也是越用越顺心了。
虽说Lazarus标榜的一次编写,到处编译,不过,实际用到的几乎都是windows平台,至于其它平台,有机会再说吧。
开发环境
以下以Lazarus 2.2.4为例。
安装IDE
Lazarus有32位版本和64位版本,而且都互相有对方架构的插件包,个人尝试后还是觉得分别安装两个版本比较合适(不要质疑,真的可以同时安装多个版本,不同架构、不同版本号都可以)。
由于Bug10不愧是Bug10,所以个人还是喜欢整成免安装版本,万一哪天Bug10作妖,就不怕重新折腾了。
-
在非系统盘下手动创建目录,比如
D:\lazarus和D:\lazarus\config,前者是IDE的安装目录,后者是IDE的配置目录 -
下载并运行安装包
-
在
选择目标位置这一步时,选择之前手动创建的安装目录,同时勾选创建一个新的第二的安装(不要质疑,哪怕是第一次安装),下一步 -
到
选择配置文件夹这一步,选择之前手动创建的配置目录,然后一路下一步 -
安装完之后,把安装目录备份一下,再把
IDE卸载了,然后把安装目录恢复了(当然,这一步也可以不做) -
运行
lazarus.exe,首次运行时(包括未来重装系统后)会弹出Welcom to Lazarus IDE的窗口,其中Fppkg项会有叹号(似乎是2.2版本之后才有的),点Restore Fppkg configuration,再点Write new configuration files,最后点Start IDE -
可以为
lazarus.exe创建快捷方式
至此,IDE就算是安装完了,需要的话可以把安装目录整个压缩备份,不过个人还是建议把IDE配置好了再备份
IDE配置
构建配置
由于Lazarus每次安装三方组件都要重新build,如果三方组件装得多了,IDE的exe会很大(不是你自己写的exe),而个人又是比较喜欢小巧的,所以这一步是少不了的。
-
菜单
Tools->Configure "Build Lazarus" -
Profile to build项选择Optimized IDE -
点
Build会立即重新构建IDE;点Save Settings仅保存配置,下次构建时生效
一体式窗口
安装完之后,IDE默认是D7那种分离式窗口,在小分辨率屏幕的时代很有用,不过现在嘛,个人感觉还是一体式窗口比较舒服。Lazarus已经提供了这样的包,只不过默认并没有启用。
-
菜单
Package->Install/Uninstall Packages ... -
右侧选择
AnchorDockingDsgn 1.0,点Install selection或双击 -
点
Save and rebuild IDE重新构建,IDE重启之后就是一体式的窗口了 -
拖动子窗口的标题,会自动吸附,调整为自己喜欢的布局,重启IDE即可
此时,若是不小心把布局调乱了,就不好恢复了,所以可以考虑把自动保存布局功能给关了:
- 菜单
Tools->Desktops ...,去掉Auto save active desktop的勾,关闭
其它配置
菜单Tools->Options ...是IDE集中的配置,可依自己习惯或喜好进行配置。不过,倒是可以分享些个人的配置及相应的考虑,以供参考:
-
默认英文界面就挺好,毕竟中文翻译不全,也不够精准,万一需要去泡一下官方社区了,至少英文界面还能知道具体说的是哪儿
-
Environment->IDE CoolBar,选择第一个工具条,点Configure,把File menu commands下的New ...添加上【理由:默认工具条上只有新建普通单元和窗体,新建工程、模块、Frame等还要去菜单里点,不够快捷】 -
Environment->Backup,两个都选.~pp【理由:不管是工程还是单元,统一后缀名,方便用脚本清理,也方便加入版本库的忽略列表】 -
Environment->Naming,Default Pascal extension项选择.pp【理由:方便与Delphi的源码文件做区分】 -
Editor->Display,设置Show line numbers后的值为1【理由:每行都显示行号,方便与人交流/讨论代码】 -
Editor->Display->Markup and Matches,勾选Matching Keywords下的Outline (global)【理由:代码块带上垂直线,方便区分嵌套关系】 -
Editor->Completion and Hints,勾选Auto remove empty methods【理由:保持代码整洁,减少误导】 -
JCF Format Settings->Clarify->Comments,不勾选Remove empty '//' comments【理由:相信我,你一定会用得上//空注释的】 -
Debugger->Debugger backend,如果经常编写、调试dll的话,选择Gdb会比较合适,否则保持默认【理由:目前FpDebug不支持dll的调试】
自带的第三方可选组件
上面的一体式窗口就是其中的一个组件包,其它组件包安装方法相同。这里简单介绍几个:
-
h2paswizard 0.0:需要把C/C++的.h头文件转为pascal的.pas单元文件时会用到,不过就个人而言还是喜欢手撸来得精准 -
LazActiveX 0.1:安装该包后才能安装基于ActiveX的组件,例如windows自带的TTS -
lazdeamon 0.9.9:编写windows 服务形式的应用了会用到 -
lazvlc 1.0:VLC播放器的组件包,编写播放视频的应用了会用到,需要手动下载V2以上版本的libvlccore.dll和libvlc.dll -
weblaz 1.0:fpweb的组件包,不安装直接引用相关单元也可以
官方远程仓库的第三方可选组件
菜单Package->Online Package Manager ...可以下载/安装官方远程仓库收录的第三方可选组件,需要联网才能使用。也简单介绍几个:
-
CEF4Delphi:谷歌浏览器内核,依赖DCPcrypt,同时需要手动下载版本号完全相同的一梭子二进制文件,所以还是直接去GitHub上下载吧 -
DBTreeViewAndDBCntrlGrid:可从数据集中把树型数据直接显示为树,可以算做Lazarus默认的数据感知组件的扩充 -
DCPcrypt:常用加密/解密算法包 -
Indy10:Delphi上默认的经典的网络通讯组件包 -
LNet:轻量级的网络通讯组件包,不过其UDP组件不能绑定发送端口,感觉莫名其妙 -
MORMot:一个很牛的pascal语言的ORM框架 -
PythonForLazarus:Python4Delphi的Lazarus版移植,懂的自然懂
其它开源仓库的第三方组件
开源的实在是太多太多了……这里就只说一个个人觉得巨实用的:
dataset-serialize:数据集与JSON序列化/反序列化的项目