|
<< Нажмите, чтобы показать Содержание >> TCustomRichView.DeleteItems |
Удаляет Count элементов из документа, начиная с элемента с номером FirstItemNo.
procedure DeleteItems(FirstItemNo, Count: Integer);
Элементы пронумерованы от 0 до ItemCount-1. Элементы поддокументов (ячеек таблиц) не включены в диапазон элементов основного документа; для ячеек используйте Cell.GetRVData.DeleteItems.
Тип метода:
быстрое изменение документа.
Осторожно: этот метод может создавать некорректные документы.
procedure DeleteBlankLines(RVData: TCustomRVData);
var i,r,c: Integer;
table: TRVTableItemInfo;
begin
for i := RVData.ItemCount-1 downto 0 do
if RVData.IsFromNewLine(i) and (RVData.GetItemStyle(i)>=0) and
(RVData.GetItemTextW(i)='') and (RVData.ItemCount>1) and
((i = RVData.ItemCount - 1) or RVData.IsFromNewLine(i+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, не могут быть отменены пользователем. При вызове для редактора, эта процедура может испортить буфер отмены операций, поэтому вызовите ClearUndo.
Вызовl:
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;
См. также: