Autor Beitrag
Jukka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 107

Win XP Pro
Delphi 7
BeitragVerfasst: So 27.08.06 22:33 
Hallo,
Ich hab ein Problem. Undzwar lad ich den Text in ein SynEdit Feld ohne irgendwas und das geht ja ganz normal Ohen fehler.
Nun wollte ich den text Highlighten mit der SynUniSyn Komponente des Unihiglighters. Ich habe es nach dem Beispielcode gemacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
{...}
    Edit: TSynEdit;
    SynUniSyn: TSynUniSyn;
{...}
procedure TForm1.Button2Click(Sender: TObject);
var kw:TSynSymbolGroup;
begin
        SynUniSyn.MainRules.Reset;
        Edit.Highlighter:=nil;

          kw:=TSynSymbolGroup.Create('',TSynHighlighterAttributes.Create(''));
          kw.Attribs.Foreground:=clRed;
          kw.KeywordsList.Add('<?');
          kw.KeywordsList.Add('?>');
          SynUniSyn.MainRules.AddSymbolGroup(kw);

          Edit.Highlighter:=SynUniSyn;
          edit.Refresh;
end;


die beiden <? und ?> werden rot hervorhehoben wie es auchs ein soll, nur macht der highlighter aus dem letzten word (bzw zeichen) 2, also:

aus ; wird ;;
aus ) wird ))
aus aa wird aaaa
usw ...




usw ..

Kann mir da jemand helfen?

Edit: ich habe schon versucht mit stringreplace das zu beheben, dies geht aber nicht. Kopier ich den text (mit den fehlern) aus den SynEdit Feld in ein Memo feld ist der text ganz noramal im Memo Feld