Подсчёт символов в RichViewEdit

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Shouldercannon
Сообщения: 74
Зарегистрирован: 08 июн 2008, 15:49

С помощью данной функции я веду подсчёт всего содержимого RichViewEdit

Код: Выделить всё

function GetCharCount(RVData: TCustomRVData): Integer;
var
i, r, c: Integer;
table: TRVTableItemInfo;
begin
Result := 0;
  for i := 0 to RVData.Items.Count - 1 do
    if RVData.GetItemStyle(i) >= 0 then
      begin
        inc(Result, RVData.ItemLength(i));
      end
        else
          if RVData.GetItemStyle(i) = rvsTab then
            inc(Result)
              else
                if RVData.GetItemStyle(i) = rvsTable then
                  begin
                    table := TRVTableItemInfo(RVData.GetItem(i));
                      for r := 0 to table.Rows.Count - 1 do
                        for c := 0 to table.Rows[r].Count - 1 do
                          if table.Cells[r, c] <> nil then
                            inc(Result, GetCharCount(table.Cells[r, c].GetRVData));
                  end;
end;
Вот так я вывожу количество символов в Caption панели

Код: Выделить всё

r := GetCharCount(RichViewEdit1.RVData);
  Panel1.Caption := IntToStr(r);
Минус функции в том, что она не подсчитывает количество символов занимаемое при переводе каретки на новую строку с помощью Ctrl + Enter. Прошу помощи для испраления данной проблемы.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

А надо ли их считать? Такой перевод вроде не увеличивает количество символов?
Изображение
Shouldercannon
Сообщения: 74
Зарегистрирован: 08 июн 2008, 15:49

Код: Выделить всё

procedure TForm1.RichViewEdit1Change(Sender: TObject);
var
  r: integer;
begin
  r := RichViewEdit1.GetTextLen;
  Panel1.Caption := IntToStr(r);
end;
Ответить