delphi - DScintilla 是否有语法突出显示的示例?

标签 delphi scintilla

我已经安装了DScintilla , Delphi VCL 包装器 Scintilla代码编辑组件,但我找不到任何如何使用它的基本示例。

您能否发布一些语法突出显示的基本代码示例或对其代码示例的引用?

最佳答案

非常有趣的库,但很难说你到底想用它做什么。 例如,这里是 Pascal 语法荧光笔的一些基本颜色设置的示例。请注意,您的项目文件夹(或应用程序查找它的文件夹)中需要有 SciLexer.dll 库。

这个库包装器提供了许多具有有意义名称的功能,因此我认为最好的是您自己浏览它们。

uses
  DScintillaTypes, DScintilla;

procedure TForm1.Button1Click(Sender: TObject);
var
  Scintilla: TDScintilla;
begin
  Scintilla := TDScintilla.Create(Self); // creating it dynamically, it's also available as a component, so you don't need to do this
  Scintilla.DllModule := 'SciLexer.dll'; // the syntax library
  Scintilla.Align := alClient;           // object alignment to the whole parent
  Scintilla.Parent := Self;              // setting up the parent
  Scintilla.SetLexer(SCLEX_PASCAL);      // and setting the syntax highlighter, see SCLEX_ types in DScintillaTypes.pas

  Scintilla.StyleSetBack(STYLE_DEFAULT, clBlack); // setting up the default background color
  Scintilla.StyleSetFore(SCE_PAS_DEFAULT, clWhite); // Pascal specific default fore color
  Scintilla.StyleSetBack(SCE_PAS_DEFAULT, clBlack); // Pascal specific default back color
  Scintilla.StyleSetFore(SCE_PAS_IDENTIFIER, clYellow); // Pascal specific identifier fore color
  Scintilla.StyleSetBack(SCE_PAS_IDENTIFIER, clBlack); // Pascal specific identifier back color
  Scintilla.StyleSetBold(SCE_PAS_IDENTIFIER, True); // Pascal specific identifier bold font style
  Scintilla.StyleSetUnderline(SCE_PAS_IDENTIFIER, True); // Pascal specific identifier underline font style
  Scintilla.StyleSetFore(SCE_PAS_COMMENT, RGB(243, 236, 255)); // etc.
  Scintilla.StyleSetBack(SCE_PAS_COMMENT, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_COMMENT2, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_COMMENT2, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_COMMENTLINE, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_COMMENTLINE, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_NUMBER, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_NUMBER, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_HEXNUMBER, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_HEXNUMBER, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_WORD, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_WORD, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_STRING, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_STRING, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_STRINGEOL, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_STRINGEOL, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_CHARACTER, RGB(243, 236, 255));
  Scintilla.StyleSetBack(SCE_PAS_CHARACTER, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_OPERATOR, clRed);
  Scintilla.StyleSetBack(SCE_PAS_OPERATOR, clBlack);
  Scintilla.StyleSetFore(SCE_PAS_ASM, clRed);
  Scintilla.StyleSetBack(SCE_PAS_ASM, clBlack);
end;

关于delphi - DScintilla 是否有语法突出显示的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812668/

相关文章:

delphi - 存储 Delphi 接口(interface)引用时出现奇怪的 AV

delphi - 如何防止delphi TWebBrowser窃取焦点

delphi - Delphi如何输入分数?

delphi - 创建类集合的最佳方法

c++ - 使用 CMake 查找 STC 模块 - C++/wxWidgets

c# - Winforms,Scintilla - 保存快捷方式插入 's' 给编辑的信

objective-c - 如何将 Scintilla 包含在 XCode 3.2.5 项目中?

Delphi 内存泄漏,指向 TStringList 的指针

scrollbar - Scintilla 滚动条中的标记?

html - 是否有包含 "style"(CSS) HTML 词法分析的 scintilla (scilexer.dll) 版本?