На этом шаге мы рассмотрим пример использования созданной библиотеки.
Используя перечисленные функции, которые собраны в модуле, сформируем простой документ на основе шаблона - текст на почтовом конверте. Следующая процедура формирует этот документ.
procedure TForm1.Button1Click(Sender: TObject); var document:variant; f:boolean; begin //Открываем приложение и визуализируем его f:=CreateWord; f:=VisibleWord(True); // Создаем новый документ по шаблону document:=AddDoc(ExtractFileDir(Application.ExeName)+ '\Конверт.dot'); MessageBox(handle,'Шаблон почтового конверта создан!', 'Внимание!',0); //Подставляем адрес FindAllAndPasteTextDoc(document,'###индекс&','350049'); FindAllAndPasteTextDoc(document,'###адрес&', 'Краснодар, ул. Севастопольская, д.3, кв.123'); FindAllAndPasteTextDoc(document,'###получатель&', 'Иванов Иван Иванович'); //Обратный адрес FindAllAndPasteTextDoc(document,'###обратный индекс&','198005'); FindAllAndPasteTextDoc(document,'###обратный адрес&', 'Санкт-Петербург, Измайловский пр., д.29, кв.111'); FindAllAndPasteTextDoc(document,'###отправитель&', 'Петрова Светлана Ивановна'); end;
Результат ее работы представлен на рисунке 1.
Рис.1. Результат работы приложения
Приведем полный текст приложения.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MSWORD, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Function FindAllAndPasteTextDoc(document:variant; findtext,pastetext:string):boolean; const wdReplaceAll=2; wdFindContinue=1; begin FindAllAndPasteTextDoc:=false; try document.Parent.Selection.Find.Forward:=true; document.Parent.Selection.Find.Text:= findtext; document.Parent.Selection.Find.Replacement.Text:=pastetext; document.Parent.Selection.Find.Wrap:=wdFindContinue; if document.Parent.Selection. Find.Execute(Replace:=wdReplaceAll)then FindAllAndPasteTextDoc:=true; except FindAllAndPasteTextDoc:=false; end; End; procedure TForm1.Button1Click(Sender: TObject); var document:variant; f:boolean; begin //Открываем приложение и визуализируем его f:=CreateWord; f:=VisibleWord(True); // Создаем новый документ по шаблону document:=AddDoc(ExtractFileDir(Application.ExeName)+ '\Конверт.dot'); MessageBox(handle,'Шаблон почтового конверта создан!', 'Внимание!',0); //Подставляем адрес FindAllAndPasteTextDoc(document,'###индекс&','350049'); FindAllAndPasteTextDoc(document,'###адрес&', 'Краснодар, ул. Севастопольская, д.3, кв.123'); FindAllAndPasteTextDoc(document,'###получатель&', 'Иванов Иван Иванович'); //Обратный адрес FindAllAndPasteTextDoc(document,'###обратный индекс&','198005'); FindAllAndPasteTextDoc(document,'###обратный адрес&', 'Санкт-Петербург, Измайловский пр., д.29, кв.111'); FindAllAndPasteTextDoc(document,'###отправитель&', 'Петрова Светлана Ивановна'); end; end.
Мы создали, а затем и использовали в своем приложении библиотеку процедур и функций, позволяющую работать с документами Word. Аналогичным образом создается библиотека для работы с рабочими книгами Excel. Далее рассмотрим создание динамической библиотеки DLL на базе созданного модуля.
На следующем шаге мы рассмотрим создание DLL.