TCustomRichView.DeleteItems

<< Нажмите, чтобы показать Содержание >>

TCustomRichView.DeleteItems

Удаляет Count элементов из документа, начиная с элемента с номером FirstItemNo.

procedure DeleteItems(FirstItemNo, Count: Integer);

Элементы пронумерованы от 0 до ItemCount-1. Элементы поддокументов (ячеек таблиц) не включены в диапазон элементов основного документа; для ячеек используйте Cell.GetRVData.DeleteItems.

Тип метода: viewerstyle быстрое изменение документа.

Осторожно: этот метод может создавать некорректные документы.

Пример 1: удаление пустых строк

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)>=0and 

      (RVData.GetItemTextW(i)=''and (RVData.ItemCount>1and

      ((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

Пример 2: удаление пустых строк в конце документа

procedure DeleteTrailingBlankLines(RVData: TCustomRVData); 

var i: Integer; 

begin 

  for i := RVData.ItemCount-1 downto 1 do 

    if RVData.IsParaStart(i) and (RVData.GetItemStyle(i)>=0and 

     (RVData.GetItemTextW(i)=''then 

      RVData.DeleteItems(i,1

    else 

      break; 

end;

 

См. также:

DeleteSection;

DeleteParas.