Шаг 211.
Автоматизация Microsoft Excel. Программирование свойств MS Excel.
Создание пользовательской панели или меню

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

    Для создания пользовательской панели используем метод Add коллекции CommandBars. У этого метода есть несколько аргументов. Синтаксис вызова метода Add:

    Add(Name, Position, MenuBar, Temporary);

где

    Используя данные аргументы и их комбинации, мы можем как создать обычную панель с кнопками или меню, так и заменить существующее главное меню приложения Excel. Любой из создаваемых компонентов коллекции CommandBars может быть создан как временный объект (на время одного сеанса работы приложения) или как постоянный объект. Рассмотрим создание новой панели в приложениях Delphi на примере следующей процедуры.

procedure TForm1.Button2Click(Sender: TObject);
//Создание пользовательской панели
const msoBarFloating=4;
var
  CB: Variant;
begin
  CB:=E.CommandBars.Add('Пользовательская панель',
        msoBarFloating, False, True);
  CB.Enabled:=True;
  CB.Visible:=True;
end;

    По конкретным условиям, задаваемым аргументами в данной процедуре, новая панель создается и отображается в центральной части главного окна. Результат выполнения процедуры представлен на рисунке 1. Поскольку на панели нет ни одной кнопки, ее размер задан по умолчанию.


Рис.1. Созданная пользовательская панель (уже перемещена)

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

unit Unit1;

interface

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

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

{$R *.dfm}

var
  E:variant;

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel и отображение окна
begin
  E:=CreateOleObject('Excel.Application');
  E.Visible:=True;
end;


procedure TForm1.Button2Click(Sender: TObject);
//Создание пользовательской панели
const msoBarFloating=4;
var
  CB: Variant;
begin
  CB:=E.CommandBars.Add('Пользовательская панель',
        msoBarFloating, False, True);
  CB.Enabled:=True;
  CB.Visible:=True;
end;


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

    Мы исследовали общие свойства панели, одинаково присущие как панелям с кнопками, так и меню. Чтобы понять отличия, необходимо рассмотреть содержание самих панелей.

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




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