Программирование свойств MS Word. Создание нового элемента управления

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

   
Все элементы управления любой панели собраны в коллекцию Controls. Данная коллекция не только
объединяет элементы и их свойства, но и обладает методами, позволяющими создавать или удалять элементы управления.
Рассмотрим два метода коллекции. Метод Add - создает новый элемент, метод Delete - удаляет
выбранный элемент. Причем метод Delete принадлежит элементу коллекции, а не самой коллекции
(как метод Add) и его нельзя применить к стандартным элементам коллекции, а только к пользовательским.

   
Рассмотрим синтаксис вызова метода Add. В справочной системе он выглядит так:

    Add(Type, ID, Parameter, Before, Temporary);

где

  • Type: Integer - тип объекта,
  • ID: Integer - идентификатор объекта,
  • Parameter: String - имя связанной с данным элементом команды,
  • Before: Boolean - признак разделителя,
  • Temporary: Boolean - признак создания временного элемента.

   
Примечание.
Значения идентификатора объекта (кроме 1) определяют кнопки, связанные с определенными командами Word.
Значение 1 определяет кнопку, не связанную с командой Word (т. е. пользовательскую кнопку).

   
Возможные типы создаваемых объектов указаны в таблице 1.

Таблица 1. Возможные типы создаваемых объектов

КонстантаЗначениеТип создаваемого объекта
msoControlButton1Кнопка
msoControlEdit2Поле ввода
msoControlDropdown3Раскрывающийся список
msoControlComboBox4Комбинированный список
msoControlPopup10Элемент меню

   
Создадим обычную кнопку на панели Стандартная. Используем метод Add, первый аргумент
которого (Туре) равен msoControlButton, а второй (ID) - единице. Установим значение надписи,
задав в свойстве Caption текст, выберем значок (свойство FaceId) и стиль кнопки (отображение и
значка, и надписи). Вот текст процедуры:

procedure TForm1.Button2Click(Sender: TObject);
//Создание кнопки
const
  msoControlButton=1;
  msoButtonIconAndCaption=3;
begin
  BTN:=W.CommandBars.Item['standard'].Controls.Add(
    Type:=msoControlButton, ID:=1);
  BTN.Caption:='Простая кнопка';
  BTN.Style:= msoButtonIconAndCaption;
  BTN.FaceId:=SpinEdit1.Value;
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;
    SpinEdit1: TSpinEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

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

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

procedure TForm1.Button2Click(Sender: TObject);
//Создание кнопки
const
  msoControlButton=1;
  msoButtonIconAndCaption=3;
begin
  BTN:=W.CommandBars.Item['standard'].Controls.Add(
    Type:=msoControlButton, ID:=1);
  BTN.Caption:='Простая кнопка';
  BTN.Style:= msoButtonIconAndCaption;
  BTN.FaceId:=SpinEdit1.Value;
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
//Изменение пиктограммы кнопки
begin
  BTN.FaceId:=SpinEdit1.Value;
end;

end.

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

   
Изменим стиль кнопки (отображение только значка или надписи), записав в свойство msButton.Style константу
msoButtonIcon или msoButtonCaption. Соответственно получаем результат, представленный на
рисунках 2 и 3.


Рис.2. Свойство msButton.Style имеет значение msoButtonIcon


Рис.2. Свойство msButton.Style имеет значение msoButtonCaption

   
В заключение перечислим возможные значения свойства msButton.Style.

Таблица 2. Значения свойства msButton.Style

КонстантаЗначение
msoButtonAutomatic0
msoButtonIcon1
msoButtonCaption2
msoButtonIconAndCaption3
msoButtonIconAndWrapCaption7
msoButtonIconAndCaptionBelow11
msoButtonWrapCaption14
msoButtonIconAndWrapCaptionBelow15

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий