# linux下lazarus开发ide里 BGRAControls控件库comboBox示例
环境 fpc3.2.2 lazarus2.2.6
# 更高级美化控件库
lazarus默认控件是跟随系统,想用上更加个性调整控件可以考虑用bgracontrols这个库
示例代码来源 https://github.com/bgrabitmap/bgracontrols/tree/master/test/test_bccombobox
再lazarus里在线安装bgracontrols和bgrabitmap
lazarus默认输出可执行文件是有调试信息,可以调整 工程-》工程选项-》编译器选项-》调试-》勾选用外部调试文件,这样既有调试信息有缩小可执行文件,当然最后发布可以不要任何调试信息更小
# 下载开发工具
ftp://ftp.freepascal.org/pub/lazarus/releases/Lazarus%20Linux%20amd64%20DEB/Lazarus%202.2.6/
https://sourceforge.net/projects/lazarus/files/Lazarus%20Linux%20amd64%20DEB/Lazarus%202.2.6/
sourceforge下载可能比较慢,选择 下载有问题,然后auto 这样就会跳转国内镜像站点,飞快完成
先fpc-laz 再fpc-src 最后 lazarus-project - the IDE
# 下载后调整ide
依次点击[Tools]-->[Options] 然后弹出选项菜单,点击[Environment]下的[General],选择右侧的[Language]下的[Chinese],然后点击右下方的[OK]键即可修改成功!
重启进入就是中文
默认是停靠ide,软件包 -》安装卸载软件包-》选docker相关的3个【AnchorDocking anchordockingdsgn.lpk spara_DockedFormEditor】选择安装,然后保存重构ide,就能变为一体化ide
默认能看到对象查看器 代码编辑器/界面设计器 右边组件 下面输出信息,可以考虑 打开工程查看器,鼠标拖动粗线标题位置,到组件位置,这样就能看到工程里文件列表
# linux下lazarus源代码界面不支持中文输入
具体是如何实现上面的效果的呢?参见以下方法及代码:
(1)用Lazarus打开/usr/share/lazarus/2.2.6/ide/sourceeditor.pp
(2)在源码里面查找InsertCVSKeyword,会先找到这么一行:
procedure InsertCVSKeyword(const AKeyWord: string);
在这一行下面加上一行:
procedure InsertKeyword(const AKeyWord: string);
F3继续找其实现,找到以下代码:
procedure TSourceEditor.InsertCVSKeyword(const AKeyWord: string);
begin
if ReadOnly then Exit;
FEditor.InsertTextAtCaret('$'+AKeyWord+'$'+LineEnding);
end;
复制它们,在下面粘贴,并改成:
procedure TSourceEditor.InsertKeyword(const AKeyWord: string);
begin
if ReadOnly then Exit;
FEditor.InsertTextAtCaret(AKeyWord);
end;
这样,就给TSourceEditor增加了一个叫“InsertKeyword”的过程,作用是可以通过编程语句在光标所在位置添加指定字符串。
下面,要实现的就是Ctrl+Enter的功能,我们要在代码编辑器窗口的OnKeyDown事件中下手:
procedure TSourceNotebook.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var _sInS: string;
begin
if (ssCtrl in Shift) and (Key = 13) then begin
Key := 0;
_sInS := Trim(InputBox('插入文本', '', ''));
if _sInS<> '' then begin
GetActiveSE.InsertKeyword(_sIns);
FocusEditor;
end;
end;
end;
注:我在改的时候遇到的问题是SourceEditor.pp无法保存,提示说文件是只读属性,这个简单,把/usr/share/lazarus/2.2.6/ide/sourceeditor.pp鼠标右键,权限里把[只读]改成[读写]就能保存了。
改好代码保存就OK了,选工具 profile构建lazarus,将lazarus重新编译一下自动重启后,即可体验比较方便的中文输入方法了
# 更高效支持输入中文
https://www.cnblogs.com/qiufeng2014/p/15722762.html
lazarus/components/synedit/lazsyngtk2imm.pas
lazarus/lcl/interfaces/gtk2/gtk2globals.pp
lazarus/lcl/interfaces/gtk2/gtk2widgetset.inc
lazarus/lcl/interfaces/gtk2/gtk2proc.inc
这4个文件增加定义
{$ifdef linux}
{$define WITH_GTK2_IM}
{$endif}
lazarus/components/synedit/synedit.inc添加
{$ifdef linux}
{$define Gtk2IME}
{$endif}
然后用 工具 -》 profile 构建lazaruside
# lazarus默认用操作系统界面主题风格
比如linux用gtk2,在代码编辑器区域右键选项里还是能修改默认背景色,对象查看器属性的背景也能修改,选个浅绿更环保护眼