Delphiプラグインを使用してDelphiコードをRAD Studioで強調表示しようとしています。 私はOpentoolsAPIを使ってコードをエディタから取り出します。その後RAD StudioのDelphiコードの強調表示
EditorServices := BorlandIDEServices as IOTAEditorServices;
Buffer := EditorServices.TopBuffer;
Editblock := EditorServices.TopView.GetBlock;
Buffer.EditPosition.Move(1,1);
Editblock.BeginBlock;
Editblock.Extend(10,5);
、カスタムのハイライトを使用するように私に指示FAQオープンツール。 私はここからカスタムのハイライターをコピーしました:http://www.delphi-central.com/syntax_highlighting.aspx
しかし、ドキュメントは非常に限られており、私はこのカスタムハイライターを使用する方法を考え出すことができません。
HighlightServices := BorlandIDEServices as IOTAHighlightServices;
SimpleHighLight := TSimpleHighlight.Create;
HighlightServices.AddHighlighter(SimpleHighLight);
Text := Editblock.Text; //string
StartClass := 1; //integer
SyntaxByte := SyntaxOff; //byte
SyntaxCode := @SyntaxByte; //POTASyntaxCode
SimpleHighLight.Tokenize(StartClass,Addr(Text),Text.Length, SyntaxCode);
しかし、それはデモのコード行でアクセス違反エラーが発生: 私は現在試みていることは以下のとおりです。
FillChar(HighlightCodes^, LineBufLen, $E);
誰かが私に右の実装の例を与えることができます?または私が間違っていることで私を助けてください?
コードを見ると、SysntaxByte(SyntaxCode経由)は少なくともテキストと同じくらい長くなければならず、そうではありません。なぜそれがすべきかについては、わかりません。私はこれが文字で元のテキスト文字にフォーマットコードを適用すると推測しています。 – Dsm
あなたはどちらのDelphiのバージョンを使用していますか? – dummzeuch
10.2東京版 –