Из предыдущей главы вы узнали, что для работы с текстом используется
объект Range, принадлежащий объекту-документу. В прошлый раз мы рас-
смотрели методы объекта Range, предназначенные для вставки фрагментов
текста в начало или конец или в определенную позицию документа. Так
можно создавать простой текст. Но чтобы создавать сложные документы с
определенной структурой, заполняемой при формировании документа, тре-
буются методы, позволяющие выделять фрагменты и работать с ними. Так-
же необходимы функции поиска фрагментов и подстановки текста, методы
для перемещения курсора в начало, конец или определенную позицию
документа. Все эти методы реализованы в объектах Range и Selection.
Selection — объект, ассоциированный с выделенным в данный момент вре-
мени объектом. Выделенным объектом может быть не только фрагмент тек-
ста, но и ячейки таблиц, таблицы целиком, надписи, рисунки и т. д. Исходя
из этого, объект Selection может обладать свойствами любого визуального
объекта, входящего в документ, и даже свойствами самого документа (если
он выделен полностью). Но сейчас нас интересует только текст, и мы будем
рассматривать Selection только применительно к нему.
Для того чтобы получить доступ к выделенному объекту, необходимо выде-
лить весь текст документа или его фрагмент. Выделим фрагмент текста. Для
этого можно использовать метод Select объекта Range. Рассмотрим два спо-
соба использования этого метода.
Выделение фрагмента текста в документе первый способ
var MyRange:variant;
start, end:integer;
...
MyRange: =W. Act iveDocument. Range (s tat r, end) ;
MyRange.Select;
Выделение фрагмента текста в документе (второй способ)
var statr, end:integer;
...
W.ActiveDocument.Range(statr, end).Select;
Результаты применения этих способов абсолютно идентичны и основаны на
функции Range(a, b), возвращающей усеченный объект Range. Иногда
удобно использовать первый способ, особенно если в дальнейшем предпо-
лагается работа с усеченным объектом.
Рис. 6.1. Результат использования метода Select
В следующем примере используется второй способ. Создадим форму и
кнопку, для которой в процедуре обработки нажатия разместим следующий
программный текст:
Процедура выделения фрагмента текста
procedure TForml.Button4Click(Sender: TObject);
begin
W.ActiveDocument.Range(1, 50).Select;
end;
Откроем любой документ и вызовем эту процедуру, нажав кнопку. Результат
ее выполнения отображен на рис. 6.1.
Таким образом, мы получили объект Selection. Пусть он содержит только
текст, но мы уже можем исследовать методы и свойства этого объекта. |