Шаг 94.
Автоматизация Microsoft Word. Работа с объектом WordBasic. Поиск и редактирование текста в документе Word (окончание)

    На этом шаге мы рассмотрим еще несколько процедур, которые можно использовать при редактировании текста.

    Можно упомянуть еще несколько функций, которые пригодятся любому программисту Delphi, решившему использовать WordBasic в своей работе. Это функции выделения всего документа, копирования в буфер обмена, вставки из буфера обмена в документ и разрыва страницы. Рассмотрим следующие процедуры.

procedure TForm1.Button8Click(Sender: TObject);
//Выделение всего текста и помещение в буфер обмена
begin
  WB.EditSelectAll;
  WB.EditCopy;
end;

procedure TForm1.Button9Click(Sender: TObject);
//Вставка из буфера обмена
begin
  WB.EditPaste;
end;

    Первая процедура выделяет весь текст документа и копирует его в буфер обмена, вторая - вставляет текст из буфера обмена на место положения курсора или вместо выделенного текста.

    Результат их работы изображен на рисунке 1:


Рис.1. Результат работы приложения

    Следующая процедура вставляет в текст символ конца страницы, после которого начинается следующая страница.

procedure TForm1.Button10Click(Sender: TObject);
//Вставка разрыва страницы
const wdPageBreak=7;
begin
  WB.InsertBreak(Type:=wdPageBreak);
end;

    Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  WB: Variant;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта WordBasic
begin
 WB:=CreateOleObject('Word.Basic');
end;

procedure TForm1.Button2Click(Sender: TObject);
//Показать окно Word
begin
 WB.AppShow;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Открыть документ Word
begin
  if OpenDialog1.Execute then
     WB.FileOpen(OpenDialog1.FileName);
end;

procedure TForm1.Button4Click(Sender: TObject);
//Перемещение курсора в начало документа
begin
  WB.StartOfDocument;
end;

procedure TForm1.Button5Click(Sender: TObject);
//Перемещение курсора в конец документа
begin
  WB.EndOfDocument;
end;

procedure TForm1.Button6Click(Sender: TObject);
//Поиск фрагмента текста в документе
var
  t: String;
begin
  t:=InputBox('Введем фрагмент текста для поиска','','');
  WB.EditFind(t);
  if WB.EditFindFound then
      ShowMessage('Фрагмент текста '+''''+t+''''+ ' найден.')
  else
      ShowMessage('Фрагмент текста '+''''+t+''''+ ' не найден.')
end;

procedure TForm1.Button7Click(Sender: TObject);
//Вставка текста в документ
var
  t: string;
begin
  t:=InputBox('Вставляем текст в документ','','');
  WB.insert(t);
end;

procedure TForm1.Button8Click(Sender: TObject);
//Выделение всего текста и помещение в буфер обмена
begin
  WB.EditSelectAll;
  WB.EditCopy;
end;

procedure TForm1.Button9Click(Sender: TObject);
//Вставка из буфера обмена
begin
  WB.EditPaste;
end;

procedure TForm1.Button10Click(Sender: TObject);
//Вставка разрыва страницы
const wdPageBreak=7;
begin
  WB.InsertBreak(Type:=wdPageBreak);
end;

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

    На следующем шаге мы рассмотрим создание и редактирование таблиц в документе Word.




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