procedure TForml.BSaveClick(Sender: TObject); begin

// Диалог открытия файла Connect;
WordApplicationl.Dialogs.Item(wdDialogFileSaveAs).Show(EmptyParam);
end;
procedure TForml.BPrintClick(Sender: TObject);
// Печать begin Connect;
WordApplicationl.Visible := true;
WordApplicationl.Dialogs.Item(wdDialogFilePrint).Show(EmptyParam);
end;

procedure TForml.BPreviewClick(Sender: TObject); begin

// Предварительный просмотр Connect;
WordDocumentl.PrintPreview;
WordApplicationl.Visible := true;
end;
procedure TForml.BOpenClick(Sender: TObject);

// Открытие файла

begin

WordApplicationl.Visible := true; if WordApplicationl.Dialogs.Item(wdDialogFileOpen).Show(EmptyParam)

= -1

then Connect;
end;

Код содержит, на мой взгляд, достаточно подробные комментарии. Прежде всего, обратите внимание на оператор uses В нем подключаются к приложению модуль WordXP, что обеспечивает работу с Microsoft Office ХР. Если вы работаете с другой версией Microsoft Office, вам надо изменить имя этого модуля. Кроме того, подключается модуль Clipbrd. Этот модуль необходимо подключать вручную, чтобы в процедуре TForml.BlnDocClick можно было заносить в буфер обмена Clipboard изображение, передаваемое в документ. Помимо этого, в начиная с Delphi 6, необходимо включить в оператор uses модуль OleCtrls, в котором объявлена переменная EmptyParam. В Delphi 5 модуль OleCtrls подключать не требуется, но зато должен быть подключен модуль Word_97_SRVR.

В процедуре FormCreate в момент создания формы создаются объекты серверов. В процедуре FormDestroy память, отведенная под эти объекты, освобождается. Операторы обеих этих процедур поясняются в разд. 6.1.2.

Основная процедура кода - BlnDocClick, обеспечивающая передачу информации в активный документ. В начале этой процедуры производится обращение к процедуре Connect. Это вспомогательная процедура, введенная в программу для проверки наличия на сервере открытого документа и подключения к активному документу объекта WordDocumentl. В данном приложении этот объект используется только в процедуре BPreviewClick для предварительного просмотра документа.

Если вызов Connect прошел успешно, то далее в процедуре BInDocClick следует занесение в документ через буфер обмена изображения, хранящегося в Imagel. После этого методом Collapse снимается выделение, и в документ заносится требуемый текст из окна Memol с предварительной строкой обращения, в которой используется текст окна Editl. Весь этот текст оказывается выделенным. К этому выделению подключаются компоненты WordFontl и WordParagraphFormatl, через свойства которых осуществляется форматирование выделенного текста. Затем выделение снимается.

Остальные процедуры приведенного кода вряд ли нуждаются в дополнительных комментариях.

Ниже приведен код аналогичного примера, построенного на основе серверов автоматизации OLE.

uses ... ComObj, WordXP, Clipbrd;
var WordApplicationl: OleVariant;
WordDocumentl: OleVariant;
WordFontl: OleVariant;
WordParagraphFormatl: OleVariant;
procedure TForml.FormCreate(Sender: TObject);

begin // создание сервера


⇐ Предыдущая страница| |Следующая страница ⇒

Приемы программирования в Delphi на основе VCL



Новости за месяц

  • Февраль
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс