德尔福 – SynMultiSyn荧光笔插入位置
发布时间:2020-12-15 09:45:37 所属栏目:大数据 来源:网络整理
导读:我有SynMultiSyn荧光笔(syn HTMLcomplex) 由HTML(synHTML)和 JavaScript(synJScript)组成 如下: synHTML : TSynHTMLSyn;synJScript : TSynJScriptSyn;synHTMLcomplex: TSynMultiSyn;// HTML complexwith SynHTMLcomplex do begin DefaultLanguageName:= 'HT
我有SynMultiSyn荧光笔(syn
HTMLcomplex)
由HTML(synHTML)和 JavaScript(synJScript)组成 如下: synHTML : TSynHTMLSyn; synJScript : TSynJScriptSyn; synHTMLcomplex: TSynMultiSyn; // HTML complex with SynHTMLcomplex do begin DefaultLanguageName:= 'HTML complex'; DefaultFilter := 'HTML complex (*.html; *.htm)|*.html; *.htm'; DefaultHighlighter := synHTML; with Schemes do begin Add.Index:= 0; with Items[0] do begin Highlighter:= synJScript; SchemeName := 'JavaScript'; StartExpr := '<script'; EndExpr := '</script>'; with MarkerAttri do Background:= clNone; end; end; end; 一旦进入SynEdit,是否有任何方法(属性或方法)知道光标(CaretY)是哪种Highlighter(synHTML或synJScript)? 有人可以帮忙吗? 解决方法
它可能但不是很容易实现.
下面的函数是Jan Fiala(PSPad editor的作者)使用的函数的改编. function TfrmEditor.GetCurrentHighLighter: TSynCustomHighlighter; var i : integer; seEditor: TSynEdit; begin if (sActiveEditor = 'synEditor') then seEditor:= synEditor else seEditor:= synEditor2; with seEditor do if Highlighter is TSynMultiSyn then begin i:= (Integer(TSynEditStringList(Lines).Ranges[CaretY - 1]) and $F) - 1; if (i < 0) then result:= TSynMultiSyn(Highlighter).DefaultHighLighter else result:= TSynMultiSyn(Highlighter).Schemes[i].Highlighter end else result:= Highlighter; end; 只要解释,Jan的原始功能就在下面. “ – 这是我返回当前荧光笔的功能: function TPSSynEdit.GetCurrentHighLighter: TSynCustomHighlighter; var i: Integer; begin if Highlighter is TSynMultiSyn then begin i := (Integer(TSynEditStringList(Lines).Ranges[CaretY - 1]) and $F) - 2; if (i > TSynMultiSyn(HighLighter).Schemes.Count - 1) or (i < 0) then Result := TSynMultiSyn(Highlighter).DefaultHighLighter else Result := TSynMultiSyn(Highlighter).Schemes[i].Highlighter end else Result := Highlighter; end; 我在TSynedit的后代有这个功能.你需要更换荧光笔,例如使用Editor.Highlighter和Lines with Editor.Lines或发送编辑器作为函数参数,并在开始之后添加: 简菲拉 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |