Шаг 113.
Автоматизация Microsoft Word. Программирование свойств MS Word. Коллекция диалогов (окончание)

    На этом шаге мы закончим изучение основных методов коллекции диалогов.

    Метод Show отображает диалог, выполняет заданные в нем действия и возвращает значение, связанное с нажатием кнопок диалога.

    Метод Display отображает диалог, но не выполняет заданные в нем действия и возвращает значение, связанное с нажатием кнопок диалога. Возвращаемые значения:

    Метод Update вызывается для гарантированной установки значений элементов диалога. Перед вызовом диалога или по окончании вызова мы можем установить значения некоторых визуальных элементов диалога или получить их значения, введенные или измененные пользователем. В качестве примера рассмотрим следующую процедуру и результат ее выполнения. Данный пример можно использовать, когда требуется задать в качестве имени файла определенное значение, отличное от значения по умолчанию.

procedure TForm1.Button3Click(Sender: TObject);
//Пример изменения значения элемента диалога до его выполнения
const
  wdDialogFileSaveAs=84;
var
  myDialog:variant;
begin
  myDialog:=W.Dialogs.Item(wdDialogFileSaveAs);
  myDialog.Name:='Подставляем свое имя файла';
  myDialog.Display;
end;

    Результат выполнения данной процедуры представлен на рисунке 1.


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

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

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

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

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Word и его визуализация
begin
  W:=CreateOleObject('Word.Application');
  W.Visible:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
//Открытие файла без отображения диалогового окна
const
  wdDialogFileOpen=80;
var
  MSD:Variant;
begin
  MSD:=W.Dialogs.Item(wdDialogFileOpen);
  MSD.Name:=InputBox('Введите имя файла','','*.doc');
  MSD.Execute;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Пример изменения значения элемента диалога до его выполнения
const
  wdDialogFileSaveAs=84;
var
  myDialog:variant;
begin
  myDialog:=W.Dialogs.Item(wdDialogFileSaveAs);
  myDialog.Name:='Подставляем свое имя файла';
  myDialog.Display;
end;

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

    Из уже пройденных материалов нетрудно сделать вывод, что при умелом использовании можно с легкостью превратить приложение Word в инструмент для подготовки различных отчетных форм и использовать это в ваших приложениях, разрабатываемых в среде Delphi. Положительной особенностью здесь является тот факт, что при переходе от одной версии MS Word к другой не требуется вносить в разрабатываемые приложения какие-либо изменения, потому что новые версии MS Office поддерживают работу функций, используемых в предыдущих версиях. Для практики программирования панели в приложении Word немного изменим рассмотренный на 99 шаге пример.

    На следующем шаге мы рассмотрим пример использования изученного материала.




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