下载:
https://sourceforge.net/projects/lazarus/files/
最新版3.2.2的fpc,3.2的lazarus
sourceforge默认下载慢,选择auto-select能够选择近的镜像站点,还不行的话也能够motrix下载会自动更换域名
linux的qrencode安装是 sudo apt install qrencode
设置 lazarus
启动先安装gif控件,重启后在wile64控件组里有
然后软件包启用dock相关三个组建,分散式ide变成一体化ide
工具 选项 :编辑器 显示 右边线 从80改为120 字体更新为 dejavu sans mono 这样中英文在一起等高更好看些
豆沙绿 RGB值为199, 237, 204,lazarus显示 颜色把默认文本背景色更新为钱绿
工具 选项 :环境 对象查看器 背景也更新为 钱绿 不同值背景色 更新为银白 值更新为紫红 参考 更新为紫
窗体编辑器 网格把黑色改为中灰 其他设计器背景色 更新为 银白
给lazarus工程信息文件lpi创建了图标/usr/share/mime/packages/lazarus.xml
<generic-icon name="lazarus"/>这一行指定图标
linux用的图标主题boom
将文件放到 /usr/share/icons/bloom/mimetypes/48/lazarus.svg
linux下lazarus代码不能输入中文,尝试增加宏定义WITH_GTK2_IM失败
采用老办法 https://www.cnblogs.com/qiufeng2014/p/15640889.html
给/usr/share/lazarus/3.2.0/ide/sourceeditor.pp 和 sourceeditor.lfm增加写权限
procedure InsertKeyword(const AKeyWord: string);procedure TSourceEditor.InsertKeyword(const AKeyWord: string);beginif ReadOnly then Exit;FEditor.InsertTextAtCaret(AKeyWord);end;
procedure TSourceNotebook.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);var _sIns:String;beginif (ssCtrl in Shift) and (key=13) thenbeginkey:=0;_sIns:=trim(InputBox('输入待插入中文字符','',''));if _sIns<>'' thenbeginGetActiveSE.InsertKeyword(_sIns);FocusEditor;end;end;end;
然后重新编译lazarus,如果失败就用sudo启动lazarus编译,如果使用中有破坏了lazarus,清空home下.lazarus,就可以继续使用,只不过自定义的一堆要重来一遍
新建lazarus项目界面上一个gif控件一个普通控件,一个输入文本框,一个执行按钮,一个退出按钮,界面很简单,下面是业务代码备用
unit Unit1;
{$mode objfpc}{$H+}
interface
usesClasses, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,GifAnim, Process;
type{ TForm1 }TForm1 = class(TForm)Button1: TButton;Button2: TButton;Edit1: TEdit;GifAnim1: TGifAnim;Image1: TImage;Label1: TLabel;Timer1: TTimer;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject);privatepublicend;
varForm1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure convertimg(Source: string);
varProcess: TProcess;
beginif (length(Source) > 0) thenbeginForm1.label1.Caption := '开始执行了...';Process := TProcess.Create(nil);tryProcess.InheritHandles := False;Process.Options := [];//Process.ShowWindow := swoShow;Process.Executable := 'qrencode';Process.Parameters.Add('-l');Process.Parameters.Add('L');Process.Parameters.Add('-v');Process.Parameters.Add('1');Process.Parameters.Add('-s');Process.Parameters.Add('11');Process.Parameters.Add('-o');Process.Parameters.Add('output.png');Process.Parameters.Add(Source);Process.Execute;Form1.label1.Caption := '已经执行了';excepton E: EOSError doForm1.label1.Caption := '请检查文件路径是否有空格';end;Process.Free;end;
end;
procedure TForm1.Button1Click(Sender: TObject);
beginClose();
end;procedure TForm1.Button2Click(Sender: TObject);
beginGifAnim1.FileName := 'loading.gif';GifAnim1.Visible := True;convertimg(Edit1.Text);Timer1.Enabled := True;
end;procedure TForm1.Timer1Timer(Sender: TObject);
beginTimer1.Enabled := False;if FileExists('output.png') thenimage1.Picture.LoadFromFile('output.png');GifAnim1.Visible := False;
end;end.