На этом шаге мы рассмотрим еще несколько процедур, которые можно использовать при редактировании текста.
Можно упомянуть еще несколько функций, которые пригодятся любому программисту 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.
На следующем шаге мы рассмотрим создание и редактирование таблиц в документе Word.