Программирование свойств 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. Возможные типы создаваемых объектов

Константа Значение Тип создаваемого объекта
msoControlButton 1 Кнопка
msoControlEdit 2 Поле ввода
msoControlDropdown 3 Раскрывающийся список
msoControlComboBox 4 Комбинированный список
msoControlPopup 10 Элемент меню

   
Создадим обычную кнопку на панели Стандартная. Используем метод 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

Константа Значение
msoButtonAutomatic 0
msoButtonIcon 1
msoButtonCaption 2
msoButtonIconAndCaption 3
msoButtonIconAndWrapCaption 7
msoButtonIconAndCaptionBelow 11
msoButtonWrapCaption 14
msoButtonIconAndWrapCaptionBelow 15

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



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

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