Шаг 55.
Автоматизация Microsoft Word. Создание простого документа. Метод Move объекта Selection

    На этом шаге мы рассмотрим метод Move объекта Selection.

    Рассмотрим метод Move(Unit, Count) объекта Selection. Он позволяет перемещать курсор на определенное количество символов, слов, предложений или абзацев, в конец или начало документа, а также по ячейкам таблицы. Этот метод позволяет достичь начала или конца документа, если вызывать его неоднократно (до тех пор, пока возвращаемое им значение не равно 0). У метода есть два аргумента (таблица 1): первый определяет выполняемое действие, а второй - величину и направление перемещения курсора (при отрицательном значении курсор перемещается по направлению к началу текста).

Таблица 1. Действия метода Move при разных значениях аргументов
Значение аргумента 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.
Текст этого приложения можно взять здесь (7,0 Кб).

    Задавая разные значения первого аргумента (см. таблицу 1), можно проверить работу этого метода и на более сложных документах, содержащих таблицы, рисунки и т. п.

    На следующем шаге мы рассмотрим другие методы объекта Selection.




Предыдущий шаг Содержание Следующий шаг