На этом шаге мы рассмотрим метод Move объекта Selection.
Рассмотрим метод Move(Unit, Count) объекта Selection. Он позволяет перемещать курсор на определенное количество символов, слов, предложений или абзацев, в конец или начало документа, а также по ячейкам таблицы. Этот метод позволяет достичь начала или конца документа, если вызывать его неоднократно (до тех пор, пока возвращаемое им значение не равно 0). У метода есть два аргумента (таблица 1): первый определяет выполняемое действие, а второй - величину и направление перемещения курсора (при отрицательном значении курсор перемещается по направлению к началу текста).
Значение аргумента Unit | Выполняемое действие |
---|---|
WdCharacter=1 | Переход к следующему символу |
WdWord=2 | Переход к следующему слову |
WdSentence=3 | Переход к следующему предложению |
WdParagraph=4 | Переход к следующему абзацу |
WdSection=8 | Переход к следующему разделу |
WdStory=6 | Переход в следующую текстовую область документа |
WdCell=12 | Переход к следующей ячейки |
WdColumn=9 | Переход к следующему столбцу |
WdRow=10 | Переход к следующей строке |
WdTable=15 | Переход к следующей таблице |
WdLine=5 | Переход к следующей линии |
Если вызвать метод Move без аргументов, то по умолчанию его выполнение переместит курсор вперед по тексту на один символ.
Рассмотрим использование метода Move в синтаксисе языка Delphi. Создадим в форме кнопку и поместим в процедуру обработки ее нажатия следующий программный код.
procedure TForm1.Button8Click(Sender: TObject); //Метод Move const wdWord=2; begin W.Selection.Move(wdWord,3); end;
Результат работы приложения изображен на рисунке 1:
Рис.1. Результат работы приложения
Приведем полный текст приложения:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls; type TForm1 = class(TForm) Button1: TButton; CheckBox1: TCheckBox; OpenDialog1: TOpenDialog; Button4: TButton; Button2: TButton; Button3: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; procedure Button1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var W:Variant; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin W:=CreateOleObject('Word.Application'); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin W.Visible:=CheckBox1.Checked; end; procedure TForm1.Button4Click(Sender: TObject); //Открытие документа begin if OpenDialog1.Execute then W.Documents.Open(OpenDialog1.FileName); end; procedure TForm1.Button2Click(Sender: TObject); //Выделение текста begin W.ActiveDocument.Range(1,15).Select; end; procedure TForm1.Button3Click(Sender: TObject); //Чтение текста var S: String; begin S:=W.Selection.Text; MessageBox (handle, pchar(S), 'Чтение текста из выделенного фрагмента!',0); end; procedure TForm1.Button5Click(Sender: TObject); //Start и End begin W.Selection.Start:=13; W.Selection.End:=20; end; procedure TForm1.Button6Click(Sender: TObject); //В начало документа begin W.Selection.Start:=0; end; procedure TForm1.Button7Click(Sender: TObject); //В конец документа begin W.Selection.End := W.ActiveDocument.Characters.Count; end; procedure TForm1.Button8Click(Sender: TObject); //Метод Move const wdWord=2; begin W.Selection.Move(wdWord,3); end; end.
Задавая разные значения первого аргумента (см. таблицу 1), можно проверить работу этого метода и на более сложных документах, содержащих таблицы, рисунки и т. п.
На следующем шаге мы рассмотрим другие методы объекта Selection.