home   |   А-Я   |   A-Z   |   меню



Листинг 6.10. Вывод диалогового окна библиотеки

procedure LibraryEntry(command: WORD); pascal;

var GearsForm : TGearsForm;

begin

kompas := KompasObject(CreateKompasObject);

if (kompas = nil) then exit;

// получаем дескриптор главного окна КОМПАС

Application.Handle := kompas.ksGetHWindow;

// запрещаем доступ к главному окну

kompas.ksEnableTaskAccess(0);

// создаем объект диалогового окна

GearsForm := TGearsForm.Create(Application);

GearsForm.ks := kompas;

// выводим диалог на экран

GearsForm.ShowModal;

// удаляем объект

GearsForm.Free;

// возвращаем доступ к окну

kompas.ksEnableTaskAccess(1);

Application.Handle := 0;

kompas := nil;

end;

В приведенном фрагменте кода есть одна, на первый взгляд, непонятная строка – GearsForm.ks := kompas;. В действительности, здесь все просто. Поскольку обработка построения зубчатого колеса будет выполнена внутри класса формы TGearsForm, то для того, чтобы в нем не получать заново указатель на интерфейс KompasObject, этот указатель передается внешней переменной ks класса TGearsForm. Разумеется, эту переменную (типа KompasObject) необходимо предварительно добавить в раздел public описания класса формы. Перед этим подключите в разделе uses модуля BuildUnit следующие файлы (модули): ksTLB, ksAuto, ksConstTLB, LDefin3D, LDefin2D и math (последний не относится к КОМПАС API, это стандартный модуль математических функций Delphi).

Скомпилируйте проект и подключите полученную библиотеку Gears3D.rtw к КОМПАС. Запустите ее и убедитесь, что после выполнения ее единственной команды в центре главного окна появляется созданное нами диалоговое окно.

Перейдем к реализации обработчиков щелчка на кнопках. Начнем со второй (Отмена), поскольку ее обработчик чрезвычайно прост. Щелкните дважды в редакторе форм на кнопке Отмена и в обработчике, автоматически созданном в редакторе кода, введите всего одну строку, закрывающую форму (листинг 6.11).


Таблица 6.8. Настройка свойств формы диалогового окна библиотеки | КОМПАС-3D V10 на 100 % | Листинг 6.11. Обработчик щелчка на кнопке Отмена