![]() |
SynEdit Highlighter
Ich arbeite für meinen HTML-Editor mit SynEdit und einem HTMl Highlighter. Soweit so gut. Nun ist es aber so, dass SynEdit immer nur einen Highlighter anzeigt. Also entweder HTML oder JavaScript.
Zum einen, ist das richtig, dass SynEdit nur einen Highleiter zulässt? Und zweitens, dachte ich, dem Benutzer die Möglichkeit zu geben, zwischen verschiedenen Highlightern zu wählen. Dafür würde ich die verschiedenen Highlighter in eine ComboBox laden und je nach Auswahl verändert sich der Text "farblich" Leider, habe ich keine Idee, wie ich das (wenn es überhaupt möglich ist) realisieren könnte. Wäre nett, wenn ihr mir da helfen könntet. Danke im Voraus. P.S.: TSynWebSyn habe ich schon probiert. Nur, falls einer von euch einen Tipp in diese Richtung geben wollte. |
Re: SynEdit Highlighter
Hi,
so ganz verstehe ich Dein Problem nicht! Du musst doch nur zur Laufzeit SynEdit einen neuen Highlighter zuweisen, und diese vorher in die ComboBox laden. z.Bsp.
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin case ComboBox1.ItemIndex of 0 : SynEdit.HighLighter := 1 : SynEdit.HighLighter := ... end; end; |
Re: SynEdit Highlighter
Du kannst den entsprechenden Highlighter doch auch dynamisch zuweisen.
Liste einfach alle gewünschten Highlighter in der ComboBox auf und bei der Auswahl wird der entsprechende dann zugewiesen, z. B. so:
Delphi-Quellcode:
ComboBox1Change(Sender: TObject)
begin if ComboBox1.Items.IndexOf('JavaScript') > -1 then SynEdit1.Highlighter := SynJScriptSyn1; ... end; |
Re: SynEdit Highlighter
Zitat:
Zum zweiten: Aufbau der Combobox (Items) HTML PHP JavaScript
Delphi-Quellcode:
Dazu die entsprechenden Uses:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin if (SynEdit1.Highlighter <> nil) then SynEdit1.Highlighter.Free; case Combobox1.ItemIndex of 0: SynEdit1.Highlighter := TSynHTMLSyn.Create(SynEdit1); 1: SynEdit1.Highlighter := TSynPHPSyn.Create(SynEdit1); 2: SynEdit1.Highlighter := TSynJScriptSyn.Create(SynEdit1); end; end;
Delphi-Quellcode:
SynEdit,
{Highlighters} SynEditHighlighter, SynHighlighterHtml, SynHighlighterPHP, SynHighlighterJScript; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz