Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Word Объединить параграфы


Автор: rith2 6.8.2009, 20:14
Привет

Пользователь выделяет блок текста и необходимо объединить все параграфы которые попали в этот блок. Делаю так

Код

procedure TWordPanelClass.UniteParagraphs(doc:_Document);
var
  i:integer;
  wdCharacterOle, CountOle_: OleVariant;
begin 
  wdCharacterOle:= wdCharacter; CountOle_:= 1;
  for i:=1 to Doc.Application.Selection.Characters.Count - 1 do
    begin
      if (Doc.Application.Selection.Characters.Item(i).Text = #13)or(Doc.Application.Selection.Characters.Item(i).Text = #17) then
          Doc.Application.Selection.Characters.Item(i).Delete(wdCharacterOle, CountOle_);
    end;
end;


В выделенном блоке просматриваются все символы в поиска кодов конца параграфа, которые удаляются при нахождении. Работает довольно медленно, есть другие методы? Пасибо!

Добавлено через 14 минут и 51 секунду
Пока что есть такая мысль....

 
Код

Doc.Application.Selection.Paragraphs.Item(i).Range.MoveEnd(wdStoryOle, CountOle_);

MoveEnd - Moves the ending character position of a range or selection. This method returns an integer that indicates the number of units the range or selection actually moved, or it returns 0 (zero) if the move was unsuccessful.
Типо сдвинутся в конец абзаца и там искать коды.. спать уже надо.. нет времени проверить..



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)