Czemu przy kopiowaniu z RichEdit1 do innego gubi atrubuty?

0

Od razu zakładam że usilnie szukałem podoblego postu na 4programmers.net, ale nic takiego nie znalazłem.
W różnych wyszukiwarkasz szukałem, ale też nici.
Mam trzy pytania, co do RichEdit:

  1. Mam problem z przekopiowaniem całego tekstu z RichEdit1 wraz z
RichEdit1.DefAttributes.Style:=[fsbold];

czyli pogrubiony tekst i dodanie go do RichEdit2.

Używałem różnych funkcji:

1.   RichEdit2.Text:=RichEdit2.Text+RichEdit1.Text;
2.   RichEdit2.Lines.Text:=RichEdit2.Lines.Text+RichEdit1.Lines.Text; 
3.   RichEdit2.Lines.Add(RichEdit1.text);

Każda z nich kopiuje, ale wszystkie te polecenia gubią atrybuty

RichEdit1.SelAttributes.Style:=[fsbold];   

i po przekopiowaniu jest znów zwykły tekst bez Atrybutów.

  1. Czy się da w oknie RichEdit1 w jednej linii umieścić dwa różne słowa tak, aby jedno było pogrubione a obok tego był zwykły tekst.

Przykład: Test Test

Próbowałem z komendami:

RichEdit1.SelAttributes.Style:=[fsbold];
RichEdit1.Lines.Add('Test');
RichEdit1.SelAttributes.Style:=[];
RichEdit1.Lines.Add('Test'); 

Po przekompilowaniu wygląda to tak:
Test
Test
Czemu to jest pod sobą?? I czy jest jakaś inna możliwość dodawania tekstu do RichEdit?

I jeszcze na koniec Ostatnie pytanie!!!
Czy zmiany atrybutów(np. color, style) font'a tylko da się w RichEdit?? Bo raczej w Memo1 nie da się tego zrobić.

0

richedit.seltext - F1 się kłania

[dopisane]
ad 2. metoda Add dodaje do nowej linijki, poza tym wystarczyło wordpada odpalić - bazuje on na kontrolce richedit;

ad 3. to chyba nie potrzebuje komentarza?

p.s. tak, przyczytałem całego twojego posta, tylko że drugie pytanie wynika z pierwszego, a trzecie jest cokolwiek dziwne :>

0

richedit.seltext - F1 się kłania

To niby jak mam zmienic atrybuty tekstu za pomocą richedit.seltext??

I prosze od razu podać jakiś przykład:
I się jeszce zastanawiam czy tak naprawde przeczytałeś cały post.
Bo ja zadałem 3 pytania...

0
var
  s: TStringStream;
begin
  s := TStringStream.Create('');
  re1.Lines.SaveToStream(s);
  re2.Lines.LoadFromStream(s);
  s.Free;
end;

re1 i re2 to twoje richedity

re.SelText := 'Test';
re.SelAttributes.Style := [fsBold];
re.SelText := 'Test';

Nie sprawdzalem i nawet jesli zadziala to wrzuci ci tekt w miejsce kursora, ale wtesy wysrczy go dac na koniec przed wywolaniem (SelStart).

0

Wielkie dzięki za pomoc na temat atrubutów ale jeszcze mam kolejny problem:

var
  s: TStringStream;
begin
  s := TStringStream.Create('');
  re1.Lines.SaveToStream(s);
  s.Position := 0; tego chyba zapomniałeś :)
  re2.Lines.LoadFromStream(s);
  s.Free;
end; 

Ta procedura kopiuje cały tekst z RichEdit1 do RichEdit2, w wszystko co wcześniej było w RichEdit2 zostało skasowane. Moze jakieś inne rozwiązanie?
Czekam na propozycje...
Pozdrawiam. :)

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