Шаг 225.
Создание пользовательской библиотеки (окончание)

    На этом шаге мы рассмотрим пример использования созданной библиотеки.

    Используя перечисленные функции, которые собраны в модуле, сформируем простой документ на основе шаблона - текст на почтовом конверте. Следующая процедура формирует этот документ.

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.
Текст этого приложения вместе с модулем и шаблоном документа можно взять здесь (11,7 Кб).

    Мы создали, а затем и использовали в своем приложении библиотеку процедур и функций, позволяющую работать с документами Word. Аналогичным образом создается библиотека для работы с рабочими книгами Excel. Далее рассмотрим создание динамической библиотеки DLL на базе созданного модуля.

    На следующем шаге мы рассмотрим создание DLL.




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