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

    На этом шаге мы приведем общие сведения об объекте Selection.

    Oбъект Selection может обладать свойствами любого выделяемого объекта. В нашем случае выделен текст, поэтому было бы интересно для начала прочитать этот текст. Весь выделенный текст содержится в свойстве Text объекта Selection. Прочитаем этот текст, используя средства Delphi и ссылку W на объект Application. Разместим в нашей форме новую кнопку и напишем следующий фрагмент программы в процедуре обработки ее нажатия.

procedure TForm1.Button3Click(Sender: TObject);
//Чтение текста
var
  S: String;
begin
  S:=W.Selection.Text; 
  MessageBox (handle, pchar(S), 'Чтение текста из выделенного фрагмента!',0);
end;

    Оператор S:=W.Selection.Text; помещает выделенный текст в строковую переменную.

    Результат выполнения этой процедуры представлен на рисунке 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;
    procedure Button1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(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;

end.
Текст этого приложения можно взять здесь (6,2 Кб).

    Для чтения текста из документа можно воспользоваться не только объектом Selection, но и свойствами и полями объекта Range. Например, оператор S:=W.ActiveDocument.Range(l, 15).Text; поместит в переменную S текст с первого по пятнадцатый символ документа. Это справедливо, потому что объект Selection обладает свойствами и методами любых видимых элементов документа, в том числе и свойствами фрагмента текста. Конечно, можно напрямую работать с объектами документа, не выделяя их, но в некоторых случаях просто не обойтись без выделения, а также без свойств и методов объекта Selection.

    На следующем шаге мы продолжим знакомиться с объектом Selection.




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