在lazarus使用中文變量等代碼補全功能基礎上,按以下方法就可以實現輸入中文拼音首字母就可以快速代碼補全功能。
代碼補全功能快捷鍵:Ctrl+w
代碼補全功能快捷鍵:Ctrl+w

修改步驟:
打開\lazarus\ide\wordcompletion.pp文件,修改以下2個位置,添加紅色代碼后,重新編譯lazarus就可以。
1、在uses添加getPinYinCodes,GetPinYinCodes單元在這下載:http://www.rzrgm.cn/qiufeng2014/p/18418176
unit WordCompletion; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, SynEdit,getPinYinCodes; type
2、找到 procedure AddIfMatch(const ALine, ALineUp:string; const AFirstPos, ALength: Integer);(lazarus 3.4在第145行)
procedure AddIfMatch(const ALine, ALineUp:string; const AFirstPos, ALength: Integer); var AAdd: Boolean; tmpstr:string; begin if FilterLen=0 then AAdd := True else begin AAdd := False; if CaseSensitive then begin if ContainsFilter then AAdd := MyPos(Filter, ALine, AFirstPos, AFirstPos+ALength-1)>0 else AAdd := strlcomp(PChar(@ALine[AFirstPos]),PChar(Filter),FilterLen)=0; end else begin if ContainsFilter then AAdd := MyPos(UpFilter, ALineUp, AFirstPos, AFirstPos+ALength-1)>0 else AAdd := strlcomp(PChar(@ALineUp[AFirstPos]),PChar(UpFilter),FilterLen)=0; end; end; tmpstr:=getPinYinCode(copy(ALine,AFirstPos, ALength),filter); if pos(UpperCase(filter),tmpstr)>0 then AAdd:=true; if AAdd then Add(Copy(ALine, AFirstPos, ALength)); end;

浙公網安備 33010602011771號