<< Click to display table of contents >> TCustomRichView.DeleteItems |
Removes the specified number of items (Count) from the document, starting from the FirstItemNo-th item.
procedure DeleteItems(FirstItemNo, Count: Integer);
Items are indexed from 0 to ItemCount-1. Items of subdocuments (table cells) are not included in the items range of the main document; for items in cells, use Cell.GetRVData.DeleteItems.
Method type: viewer-style.
Be careful: this method can produce invalid document.
procedure DeleteBlankLines(RVData: TCustomRVData);
var i,r,c: Integer;
table: TRVTableItemInfo;
begin
for i := RVData.ItemCount-1 downto 0 do
if RVData.IsParaStart(i) and (RVData.GetItemStyle(i)>=0) and
(RVData.GetItemTextR(i)='') and (RVData.ItemCount>1) then
RVData.DeleteItems(i,1)
else if RVData.GetItem(i) is TRVTableItemInfo then
begin
table := TRVTableItemInfo(RVData.GetItem(i));
for r := 0 to table.RowCount-1 do
for c := 0 to table.ColCount-1 do
if table.Cells[r,c]<>nil then
DeleteBlankLines(table.Cells[r,c].GetRVData);
end;
end;
DeleteBlankLines cannot be undone/redone. If called for editor, the editor's undo buffer becomes incorrect, so call ClearUndo.
Call:
DeleteBlankLines(RichViewEdit1.RVData);
RichViewEdit1.ClearUndo;
RichViewEdit1.Format;
procedure DeleteTrailingBlankLines(RVData: TCustomRVData);
var i: Integer;
begin
for i := RVData.ItemCount-1 downto 1 do
if RVData.IsParaStart(i) and (RVData.GetItemStyle(i)>=0) and
(RVData.GetItemTextW(i)='') then
RVData.DeleteItems(i,1)
else
break;
end;
See also: