

| стрелялки |
| спорт |
| драки |
| стратегии |
| гонки |
| логические |
| азартные |
| аркады |
| эротические |
| фильмы онлайн |
| Область документа IRange, вставка и удаление текста |
|
Интерфейс IRange предоставляет доступ к определенной области документа, в которую мы имеем право вставлять текст и редактировать его. Для того чтобы добраться до интерфейса Irange, обратитесь к одноименному свойству документа (см. табл. 25.6). Кроме того, свойством Range снабжен еще ряд объектов документа, например абзац и таблица. В качестве области документа могут выступать один или несколько абзацев документа, предложение, слово в предложении, отдельный символ. Для определения диапазона необходимо указать его начало и окончание (обратите внимание, что параметры Start и End имеют тип Variant). function Range(Start, End : Variant) : IRange; ОМетод Range() применим только к объектам, описываемым интерфейсами IDocument, ICanvasShapes, IGroupShapes и IShapes. В следующем примере открывается документ, выделяется область с 5-го по 40-й символ и изменяется размер шрифта для этой области: var Doc, Range : OleVariant; Doc:=Documents.Open('C:\test.doc'); Range:=Doc.Range(5,40); Range.Font.Size:=30; Для выделения целых абзацев применяется немного другая конструкция: Range:=Doc.Paragraphs.Item(1).Range; В примере мы выделили первый абзац документа. Теперь включим в область три абзаца документа - с первого по третий: Range:=Doc.Range(Doc.Parag raphs.Item(1).Range.Start, Doc.Paragraphs.Item(3). Range.End); Для того чтобы узнать размеры описываемой интерфейсом IRange области, воспользуйтесь свойствами области Start и End: property Start : Integer; property End : Integer; Это соответственно индекс текстового символа начала и индекс символа окончания области. Содержащийся в области текст доступен из свойства: property Text : string; Для того чтобы удалить все, что находится в области, вызовите метод: procedure Delete; Для вставки текста в область обратитесь к методам: procedure InsertBefore(Text : string); procedure InsertAfter(Text : string); Первый метод вставляет текст перед областью, второй - после области. Doc:=Documents.ADD; Range:=Doc.Range; Range.InsertAfter('ABCDE'); Range.InsertBefore('abcde'); Ряд методов области предназначен для вставки нового абзаца в указанное место. Следующий метод заменяет указанную область пустым абзацем: procedure InsertParagraph; А следующие процедуры отвечают за вставку нового абзаца соответственно до и после области IRange: procedure InsertParagraphBefore; procedure InsertParagraphAfter; Для вставки целого текстового файла воспользуйтесь методом: function InsertFile(FileName : string; [ConfirmConversions, Link : Boolean]) : IRange; Здесь FileName - имя вставляемого файла; это обязательный аргумент, остальные аргументы необязательны. Параметр ConfirmConversions, установленный в false, отказывается от подтверждения о преобразовании файла при открытии. Параметр Link определяет, внедрять документ (false) в файл или просто установить с ним связь (true). Минимальный синтаксис требует передачи одного параметра - имени файла. Doc:=Word.Documents.Add; Doc.Range.InsertFile(Filename:='c:\Test.txt', ConfirmConversions:=false); При необходимости разорвать страницу, колонку или раздел используйте метод: procedure InsertBreak(Type : integer); Здесь Type - константа wdBreakType, которая может принимать следующие значения: для вставки новой страницы - wdPageBreak (значение 7); начало нового раздела со следующей страницы - wdSectionBreakNextPage (значение 2); разрыв колонки - wdColumnBreak (значение 8). |
