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

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

    Рассмотрим еще один тип элементов управления в приложении Word - элементы, собранные в коллекцию Dialogs. У этой коллекции не очень много свойств. Нас интересуют два из них - количество элементов коллекции (свойство Count) и набор элементов коллекции Item(i:integer), где i - индекс диалога (диалогового окна) в коллекции. Чтобы ознакомиться со всем списком и значениями индексов и аргументов диалогов, достаточно обратиться к нужной странице справочной системы Word. Здесь мы рассмотрим только общие принципы вызова диалогов Word из программ, разработанных в среде Delphi, и несколько примеров использования диалогов. У каждого диалога есть методы и свойства. Есть общие свойства диалогов и свойства, присущие каждому отдельному диалогу. Например: свойство type: integer - тип диалога (это свойство совпадает с индексом диалога в коллекции и есть у каждого диалога); свойство Name: string - принадлежит диалогу, тип которого определяется константой wdDialogFileSaveAs, и не может принадлежать диалогу типа wdDialogConnect. Это нетрудно проверить - достаточно попытаться использовать свойство Name для диалога второго типа - сразу возникнет ошибка выполнения. Для каждого диалога есть четыре метода, предназначенных для запуска или отображения диалогового окна. Рассмотрим их.

    Метод Execute выполняет действия, связанные с диалогом, но без отображения самого диалога. Например, вызвав этот метод для диалога wdDialogFileOpen, можно открыть файл так же, как с помощью метода Open коллекции Documents. Вот пример процедуры.

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

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

    Заметим, что констант, определяющих тип диалога, достаточно много. В заключение перечислим некоторые значения этих констант.

Таблица 1. Константы, определяющие тип диалога
Константа Значение
wdDialogConnect 420
wdDialogCopyFile 300
wdDialogEditFind 112
wdDialogEditPasteSpecial 111
wdDialogEditReplace 117
wdDialogFileFind 99
wdDialogFileNew 79
wdDialogFileOpen 80
wdDialogFilePageSetup 178
wdDialogFilePrint 88
wdDialogFileSaveAs 84
wdDialogFormatAddrFonts 103
wdDialogFormatFont 174

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




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