Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Текст и объекты Range и Selection




Текст – это основа большинства документов. Его можно структурировать:

символ – слова – предложения – абзацы – параграфы и главы – страницы.

Коллекции Characters, Words, Sentences, Paragraphs позволяют работать с последовательностями (коллекциями) символов, слов, предложений, абзацев. Может показаться удивительным, но классов, соответствующих таким элементам, как символ, слово или предложение, нет. Элементом коллекций Characters, Words и Statements является объект класса Range. Это один из самых важных объектов, необходимых для понимания работы с текстами. Объект Range позволяет работать как с одним символом, так и с их последовательностью. Документы, поддокументы, абзацы, разделы – все они имеют метод или свойство Range, возвращающее объект Range, представляющий область, связанную с объектом, вызвавшим метод (свойство) Range. Эту область можно рассматривать как интервал, задаваемый первым и последним символом текста данной области. Поэтому работа с текстом, так или иначе, ведется через методы и свойства объекта Range.

 

Основной частью документа Word является, конечно, текст этого документа. Уже было сказано, как структурирован текст документа, рассмотрены коллекции Characters, Words, Sentences, Paragraphs, которые позволяют работать с символами, словами, предложениями и абзацами текста. Однако только этими коллекциями не обойтись, и необходим общий класс объектов, позволяющий задать произвольную область текста. Таковыми являются два важных класса – Range и Selection. Объекты этих классов широко используются при работе с текстом.

Документы, поддокументы, разделы, все вышеупомянутые коллекции, от Characters до Words, имеют метод, или свойство, Range, возвращающие в качестве результата объект Range.

Объект Range задает область определения некоторого объекта, включая текст и все объекты, связанные с ним – комментарии, ссылки и прочее.

Так, если некоторый объект вызвал метод Range, то возвращаемый объект Range будет содержать область определения объекта, вызвавшего метод.

Объект Selection представляет выделенную область.

Поскольку в каждом окне может быть только одна выделенная область, то одновременно может существовать несколько объектов Selection – по одному на каждое существующее окно или подокно. Заметим также, что объект Selection всегда существует в окне, даже если некоторая область явно и не выделена. В последнем случае объект Selection задает точку вставки, определенную позицией курсора.

Объект Document имеет метод Range, возвращающий объект Range, и метод Select, создающий объект Selection.

Метод Range – это функция, возвращающая в качестве результата объект Range (т.е. область определения некоторого объекта).

Метод Select – это процедура без параметров, которая создает объект Selection (т.е. выделенную область) в качестве второстепенного эффекта.

Методы Range и Select существенно отличаются друг от друга. В первом случае возвращается сам объект, поэтому можно запомнить возвращаемый объект и работать в программе одновременно с несколькими такими объектами. Когда вызывается метод Select, объект не возвращается, следовательно, запомнить его нельзя, что и гарантирует уникальность объекта Selection.

Объект Range имеет метод Select, выделяющий область объекта Range, и определяющий тем самым новый объект Selection. Симметрично, объект Selection имеет свойство Range, возвращающее объект Range, соответствующий выделенной области.

Объекты Range, Selection и Document схожи. Объекты Range и Selection столь же многообразны по своей структуре, как и объект Document. И даже большинство свойств у этих трех объектов одни и те же. Это понятно, так как большинство частей документа – предложения, абзацы, разделы, таблицы, рисунки, комментарии, ссылки и многое другое – может составлять любую подобласть документа, в том числе и выделенную. Значит, большинство ранее описанных частей документа являются и частями (свойствами) объектов Range и Selection.

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

ActiveDocument.Range.Sections(1).Range.Paragraphs(1).Range. _Sentences(1).Words(1).Characters(1)

Сколько объектов Range упоминается в этом предложении? Правильный ответ: 6, а не 3. В данном примере задается следующий объект Range: 1-я буква 1-го слова 1-го предложения 1-го абзаца 1-го раздела активного документа. Напомним: на нижнем уровне отсутствуют классы, определяющие символ, слово или предложение – все эти объекты принадлежат классу Range.

Для объекта Selection нельзя построить такую "хитрую" цепочку вложений – ведь метод Select не возвращает объект Selection. Но можно построить такую же "хитрую" последовательность операторов, которая задает сужающуюся область выделения:

Selection.Sections(1).Range.SelectSelection.Paragraphs(l).Range.SelectSelection.Sentences(1).SelectSelection.Words(1).Select



Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 452; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.