[Delphi] RichEdit, styl czcionki

0

Witam,
Mam problem z RichEdit. Wypełaniam szablon dokumentu przez zastępowanie, wszystko idzie fajnie tylko nie chce mi się zmieniać styl czcionki: [fsBold, fsUnderline] itp.

RichEdit1.SelAttributes.Style:=RichEdit1.SelAttributes.Style + [fsBold];
        //RichEdit1.SetFocus;
        SearchText:='tekst1';
        ReplaceText:='tekst2';
        SearchAndReplace(SearchText, ReplaceText);
        RichEdit1.SelAttributes.Style:=RichEdit1.SelAttributes.Style - [fsBold];
        //RichEdit1.SetFocus;

SetFocus zakomentowane ale z tym też nie działa. Czcionka w dokumencie zmienia się jedynie w ostatnim polu, jakie podmieniam w formularzu. W Delphi 7 nie ma nic w Help na temat metod RichEdit.
Próbowałem także zapisu:
RichEdit1.SelAttributes.Style:=[fsBold]
ale nie wiem jak później przejść do standardowego stylu.
Czy ktoś może podpowiedzieć jak to rozwiązać?

0

Skąd RichEdit1 ma wiedzieć, któremu fragmentowi tekstu zmienić atrybuty?

0

Na przykład z procedury SearchAndReplace().
Już sobie poradziłem...

0

U mnie nie mam tej procedury, ale...
też sobie poradziłem. :)
Pozdrawiam</image>

0

Może komuś się przyda, znalazłem gdzieś na necie:

procedure TForm1.SearchAndReplace(InSearch, InReplace: string) ;
var X, ToEnd : integer;
    oldCursor : TCursor;
begin
   oldCursor := Screen.Cursor;
   Screen.Cursor := crHourglass;
   with RichEdit1 do
   begin
     X := 0;
     ToEnd := length(Text) ;
     X := FindText(inSearch, X, ToEnd, []) ;
     while X <> -1 do
     begin
       SetFocus;
       SelStart := X;
       SelLength := length(inSearch) ;
       //tu wstawiłem zmianę stylu
       SelText := InReplace;
       X := FindText(inSearch, X + length(InReplace), ToEnd, []) ;
     end;
   end;
   Screen.Cursor := oldCursor;
end;
SearchText:='tekst';
ReplaceText:='tekst2';
SearchAndReplace(SearchText, ReplaceText);
0

Ach tak. A już myślałem, że Borland mnie nie doposażył. ;)

0

Zauważyłem, że czasem dziwnie wstawia tekst, tzn jest jedno słowo w pliku do zastąpienia a on potrafi wcisnąć słowo dodatkowo w połowie dokumentu, dziwne bo tam mam same spacje. Druga sprawa to to, że czasem pomija wstawianie, nie wiem od czego to zależy. Musze spróbować dać sleep po każdym przejściu pętli.

0

A co ma dać opóźnienie?

0
mousik2 napisał(a)

Druga sprawa to to, że czasem pomija wstawianie, nie wiem od czego to zależy. Musze spróbować dać sleep po każdym przejściu pętli.

poczytaj o debugowaniu

1 użytkowników online, w tym zalogowanych: 0, gości: 1