Код: Выделить всё
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;
Код: Выделить всё
r := GetCharCount(RichViewEdit1.RVData);
Panel1.Caption := IntToStr(r);