Jak zmienic programowo wybrana linie w RichEdit.
Tzn wiem jak sie zmienia jej kolor i wiem ze jest SelStart i SetLength ale jakos nie umei sobie poradzic zeby zaznaczyc cala linie.
Nie ma czlowieka ktory zna odpowiedz na to pytanie ?????????
Jak zmienic programowo wybrana linie w RichEdit.
Tzn wiem jak sie zmienia jej kolor i wiem ze jest SelStart i SetLength ale jakos nie umei sobie poradzic zeby zaznaczyc cala linie.
Nie ma czlowieka ktory zna odpowiedz na to pytanie ?????????
(niedziwne, że nikt nie odpowiada - jak taki avatar zobaczyłem, to na balkon uciekłem...)
definiuj Linia;
definiuj iteracja;
definiuj start = 0;
dla iteracja < Linia - 1 rób iteracja = iteracja + 1; start = start + dlugosc(RichEdit1.Lines.Strings[iteracja]);
RichEdit1.SelStart = start;
RichEdit1.SelLength = dlugosc(RichEdit1.Lines.Strings[Linia])
Powinno po przetłumaczeniu na Delphi być dobrze... (RichEdit1.Lines.Strings[iteracja] jet to odwołanie się do określonego elementu tablicy)
Ale chodzi Ci o linie jako fragment tekstu oddzielony #10#32, czy linie jako jedną linijke tak jak widać w richedit ? (chodzi o zawijanie wierszy)
A do gotowców nie łaska zajrzeć?
procedure SelectLine(Memo:TCustomMemo; Row: Integer);
begin
Memo.SelStart := Memo.Perform(EM_LINEINDEX,Row, 0);
Memo.SelLength:=Length(Memo.Lines[Row]);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SelectLine(RichEdit1, StrToIntDef(Edit1.Text,0));
RichEdit1.SelAttributes.Color:=clRed;
end;
mam pytanko dodatkowe. jestem w srodku tekstu, powiedzmy ze w lini 4, chcialbym teraz wstawic nowy tekst jako 5 linie, ale nie zastepujac stara lecz dodajac nowa
(wiem ze banalne:))
// mowilem ze banalne :)
RichEdit1->Lines->Insert(int, const AnsiString) //tak to wygląda w BCB
Przypuszczam, że w Delphi podobnie (w końcu VCL)... Więc rozejrzyj się za funkcją [code]RichEdit1.Lines.Insert[/code]
Juz sobie poradzil wczesniej ale dzikei za opowiedzi.
ps
Krecik za to ty masz najlepszy avart a ksywka jeszcze bardziej masz wyjebana [krzyk]