2017-06-02 3 views
-2

Ich habe im Internet gesucht, wie dies zu tun ist, aber ich kann nicht finden, wie.C++ Builder Syntax Textmarker

brauche ich bestimmte Wörter in RichEdit, wie die Worte false und true.

+0

Pro-Tipp: google Ihre Betreffzeile (nach korrekter Schreibweise). –

+0

Abgesehen von dem, was Jesper zu sagen hatte, sollten Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) bereitstellen, wenn Sie Fragen zu einem Coding-Problem stellen. Wenn Sie bisher noch keinen Code ausprobiert haben, stellen Sie Ihre Frage etwas zu früh. –

+0

@SierraMountainTech Ich wollte etwas besser als Memo Editor, also brauchte ich die volle Kontrolle über gerenderte und editierte Sachen, so habe ich meine eigene Text-Editor-Klasse, die Bitmap (und fängt Maus-und Tastaturereignisse) und imitiert Borland IDE-Editor Funktionen (rechteckige Auswahl enthalten). Ich stelle Syntax-Highlight wie folgt dar: [fehlende Syntax-Hervorhebung für x86-Assembly] (https://meta.stackoverflow.com/q/348110/2521214) Also, wenn Sie es auf eigene eigene ähnliche Tabellen erstellen möchten, dann dekodieren welche Art von String Sie erhalten haben und welche Farbe er für das Rendering verwendet – Spektre

Antwort

1

TRichEdit ist nicht gut geeignet für Syntax farbliche Hervorhebung (verwenden etwas mehr wie SynEdit statt), aber es kann erfolgen. Grundsätzlich müssen Sie den gewünschten Text markieren und dann die Attribute des ausgewählten Texts, wie Farbe und Formatierung, festlegen. Sie können dies mit den Eigenschaften TRichEdit::SelStart, TRichEdit::SelLength und TRichEdit::SelAttributes tun. Oder Sie können die entsprechenden Win32 API EM_EXSETSEL und EM_SETCHARFORMAT Nachrichten direkt verwenden.

Siehe Robert Dunns exzellenter Artikel zu diesem Thema: "Faster Rich Edit Syntax Highlighting". Die Original article erschien zuerst in der C++Builder Journal im Oktober 1999 und ist auch available for download auf Roberts "Yet Another Code Site" Website (die auf meiner Website archiviert ist).