Libreria molto interessante ma difficile da dire che cosa esattamente vuoi che tu faccia con esso. Qui, ad esempio, c'è l'esempio con alcune impostazioni di base per l'evidenziatore della sintassi di Pascal. Si noti che è necessario avere la libreria SciLexer.dll
nella cartella del progetto (o quella in cui l'applicazione lo cerca).
Questo wrapper di libreria offre molte funzionalità con nomi significativi, quindi il migliore che ritengo sarebbe di sfogliarli da soli.
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;
+1 per il collegamento di esempio cpp, ho avuto due buone risposte, ma sfortunatamente solo una può essere accettata. Grazie – beerwin