Запуск формы

Автор Glide, 21.08.07, 17:21:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Glide

Я использую  C++ Builder 6 и при попытке показать форму у меня вылетает компас
Form2->Show();

как вывести форму?

IronMaxxx

Смотри внимательно примеры из SDK. Там все подробно показано. Вот фрагмент на Delphi.

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;

sorockinalex

не работает! добавил в функцию в отдельном Unit, вызываемую из главного dpr

sorockinalex

Если кому-нибудь ещё понадобится, то вот код. Можно запихнуть в юнит с формой и вызывать из другого юнита как функцию:

interface
function ShowElectricaSUMainForm (iKompas:KompasObject;iDoc:ksDocument2D):Reference;

implementation
function ShowElectricaSUMainForm (iKompas:KompasObject;iDoc:ksDocument2D):Reference;
begin
  Forms.Application.Handle:=iKompas.ksGetHWindow;
  iKompas.ksEnableTaskAccess(0);
  Form3:=TForm3.Create(Forms.Application);
  Form3.ShowModal;
  Form3.Free;
  iKompas.ksEnableTaskAccess(1);
  Forms.Application.Handle:=0;
end;