Registriert seit: 15. Nov 2004
2.647 Beiträge
|
SynEdit: Alle Highlighter ändern
17. Feb 2009, 20:24
Hi,
ich habe mehrere verschiedene SynEdit-Highlighter auf einem Formular. Es gibt ein Optionsmenü, das die Farb- und Schriftstilinformationen aller Highlighter auf einmal ändern soll. Man wählt dann über eine ComboBox aus, welche Farben und Schriftstile man bearbeiten möchte (Assembler, Kommentar, Schlüsselwert, ...). Da dieses Optionsmenü einen OK-Button besitzt, sollen erst beim Klick auf den OK-Button alle Highlighter geändert werden. Daher müsste man die Werte alle zwischenspeichern und am Ende möglichst einfach auf die einzelnen Highlighter zuweisen. Jeder SynEdit-Highlighter ist von TSynCustomHighlighter abgeleitet. Allerdings besitzt TSynCustomHighlighter überhaupt keine Werte wie sie in den Highlightern selbst auftauchen. Nun müsste man beim Klick auf OK das Formular mit den Highlightern durchlaufen und alle Farben ändern. Das Durchlaufen ist noch einfach: Man prüft, ob die Komponente ein TSynCustomHighlighter ist. Aber nun stellt sich die Frage: Wie bekommt man die zwischengespeicherten Daten vom Optionsmenü in alle Highlighter rein? Zum Beisipel TSynCSSSyn ist nicht vergleichbar mit TSynPasSyn. Ein Cast ist daher nicht möglich. Wie würdet ihr das lösen ?
Was noch viel besser wäre: Man könnte jeden Highlighter einzeln setzen. Denn ich habe gerade festgestellt, dass die Highlighter sich teilweise so unterscheiden, dass die ComboBox alles andere als schön wäre und es übersichtlicher wäre, alle einzeln zu setzen. Wie könnte man das geschickt lösen ?
|