从其它平台迁移而来
前言
做为一个桌面应用开发者,工作中一直使用的是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序列化/反序列化的项目