[Delphi] RichEdit

0

Czy ktoś mółby mi pomóc???? Jak zliczyć ilość słów w komponencie RichEdit???? Jak pobrać w którym wierszu i kolumnie znajduje się kursor RichEdit???? Z góry dzięki :)

0

policz spacje... nie napisze ci jak bo mi sie nie chce

0

VAR

a:integer;

BEGIN

a:=richedit.gettextlen;

A pozycji X,Y nie napisze bo nie pamiętam.

0

Dobra. Dzięki.
O pozycji kursora już wiem. Wystarczyło wpisać "RichEdit1.CaretPos.Y"

0

VAR
a:integer;
BEGIN
a:=richedit.gettextlen;
Przykro mi, ale to nie jest poprawna odpowiedź. To zwróci liczbę znaków w RichEdit, a nie liczbę słów.
Należy zrobić pętlę przechodzącą po wszystkich znakach po kolei i zwiększającą liczniek przy każdym napotkaniu spacji, TAB, CR lub LF (kody odpowiednio #32, #9, # 13 i #10) przy czym wielokorotne "znaki białe" (czyli właśnie te) są pomijane:

[b]var[/b]
j,
l: Integer; //liczba slow
ws: Boolean; //czy "znak bialy" - white space
[b]begin[/b]
ws := False;
l := 0;
[b]for [/b]j := 1 [b]to [/b]Length(RichEdit1.Text) [b]do[/b]
[b]case [/b]RichEdit1.Text[j] [b]of[/b]
#9, #10, #13, ' ': [b]if not [/b]ws [b]then[/b]
[b]begin[/b]
Inc(l);
ws := True;
[b]end;
else
begin[/b] ws := False;
[b] end;
end;[/b] {Jeżeli ostatni znak nie jest "znakiem bialym" to trzeba zwiększy licznik}
[b]if [/b]RichEdit1.Text[Length(RichEdit1.Text)] > ' ' [b]then [/b]//to powinien byc case, ale raczej slowa nie zawieraja znakow

0

albo zastosowac taką oto sztuczke:

Pos.Y := SendMessage(nota.Handle, EM_EXLINEFROMCHAR, 0,
nota.SelStart);
Pos.X := (nota.SelStart - SendMessage(nota.Handle,
EM_LINEINDEX, Pos.Y, 0));

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