Объекты Range и Selection




Объект Document имеет метод Range, возвращающий объ­ект Range, и метод Select, создающий объект Selection. Метод Range — это функция, возвращающая как результат объект Range; метод Select — это процедура без параметров, которая создает объект Selection в качестве побочного эффекта. Объект Range имеет метод Select, превращающий область объекта Range в выделенную. Тем самым метод Select определяет но­вый объект Selection. Симметрично, объект Selection имеет свойство Range, возвращающее объект Range, соответствую­щий выделенной области.

Большинство ранее описанных частей документа являют­ся и частями (свойствами) объектов Range и Selection.

Объект Range напоминает матрешку: в каждую область вложена область поменьше. Вот пример корректного (хоть и не самого эффективного) задания объекта Range:

ActiveDocumsnt.Range.Sections (1).Range.Paragraphs (1).Range.Sentences (1). Words(1).Characters(1)

 

Работа с текстом

Объекты Range и Selection позволяют выполнять основ­ные операции над текстом: «выделить», «добавить», «заме­нить», «удалить». У наших объектов большой набор методов, позволяющих реализовать эти операции. Все рассматривае­мые здесь методы принадлежат обоим объектам, если не сде­лана специальная оговорка.

Выделение

Выделить некоторую часть текста по существу означает определить объект Range или Selection. Объекты задают неко­торую область в тексте документа, а их свойства Start и End позволяют установить начало и конец этой области. Меняя зна­чения свойства, можно задать нужную область выделения.

Move является основным методом перемещения точки вставки. Остальные методы этой группы — в той или иной сте­пени его модификации. Метод Move (Unit, count) сжимает об­ласть в точку, стягивая ее в начало или конец, а затем переме­щает точку вставки. Параметр Unit определяет единицы перемещения, a Count — количество этих единиц (по умолча­нию 1). Знак переменной Count задает направление стягивания и перемещения. Положительные значения этого параметра за­дают стягивание к концу и перемещение вперед, отрицатель­ные — стягивание в начало и перемещение назад. Чистое стя­гивание без перемещения точки вставки задается как переме­щение на одну единицу. Метод возвращает количество единиц, на которое фактически произошло перемещение, или 0, если оно не осуществлено. Параметр Unit принимает значения wdCha-racter (по умолчанию), wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow и wdTable.

Методы перемещения на сам текст не влияют — лишь из­меняют область, заданную объектами Range и Selection. Поэто­му эти методы применимы только к переменным типа Range, но не к фиксированным областям. Например, запись

ActiveDocument.Paragraphs(1).Range.Move

не имеет эффекта, поскольку область первого абзаца — вещь неизменяемая. Метод Move стягивает область в точку, которая и перемещается, поэтому после его выполнения область исче­зает, остается только точка вставки. Методы MoveStart и Мо-veEnd перемещают начальную или конечную точку области, обычно тем самым расширяя область.

Удаление текста

Метод Delete позволяет удалить текст. Вызванный без па­раметров, он удаляет вызывающий его объект Range или Se­lection. Если он применен в форме Delete(Unit,Count), удаляет­ся часть текста в указанной области. Параметр Unit задает еди­ницы, но при удалении возможны только два значения: wdWord и wdCharacter. Параметр Count задает количество удаляемых единиц. Если область стянута в точку, удаляются символы пе­ред точкой вставки или после нее в зависимости от знака пара­метра Count.

Вставка текста

Группа методов Insert объектов Range и Selection позволя­ет осуществлять вставки в документ. Для вставки текста ис­пользуются методы InsertBefore(Text) И InsertAfter(Text). Параметр Text типа String задает текст, вставляемый до или после области, заданной объектами Range или Selection. После вставки текста область автоматически расширяется, включая в себя добавляемый текст.

Свойство Text позволяет заменять текст в выделенной об­ласти, поэтому нет нужды вызывать метод Insert(Text). Мето­ды InsertBef ore и InsertAf ter безопасны, так как текст добав­ляется, не изменяя содержимого области. Совсем иное дело — методы вставки, которые далеко не безопасны. При вставке внутрь области, например при использовании метода Insert-Symbol или InsertParagraph, заменяется содержимое области.

Работа с буфером

Метод сору, не имеющий параметров, копирует объект (со­держимое области) в буфер. Метод Cut, действуя аналогично, должен бы заодно и удалять объект. Но сам объект не удаляет­ся — только стягивается в точку, так что над ним возможны дальнейшие операции.

Иногда в буфер копируют не текст, а его формат. Этим за­нимается метод CopyFormat, копирующий формат по первому символу объекта Selection. Если этот символ — метка абзаца, копируется формат абзаца. Методом CopyFormat обладает толь­ко объект Selection.

Метод Paste позволяет поместить («приклеить») содержи­мое буфера в область, заданную объектами Range и Selection. Эта операция опасна, так как происходит замена, а не добавле­ние текста. Поэтому обычно метод Paste применяется к объек­там Range и Selection, предварительно стянутым в точку встав­ки. Метод PasteFormat применяет форматирование, хранящее­ся в буфере, к объекту Selection.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: