• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Прикладная библиотека компаса на Делфи

Автор Санька_Грозный, 02.05.11, 15:26:49

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

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

Санька_Грозный

Доброго времи суток. :)
Следущая проблемма: Я пишу прикладную библиотеку На делфи для компас. Моя библиотека работает исправно, но есть одно но , сама библиотека состоит из основной формы, нескольких кнопок 3-4 текс-эдитки(она работает исправно), когда пытаюсь подключить к моей основной форме дополнительную форму(по средствам нажатия на новую кнопку), то тут то и вылетает ошибка. Если кто то знает в чем проблемма, то пожалуйсто найдите ошибку в моих исходниках:
http://download.files.namba.kg/files/2831871/myProject.rar?o3tgiCAxjpuAW6f%2FmF5hJerCQJFwC4ulZuTCGYnIvstUQQ%3D%3D

ДОБАВЛЕННО

Да и кстати проект делфи настроен на след. дирикторию :  c:\   , т.е для того что бы вам не пришлось перенатстраивать мой проект, а просто его запустить достаточно извлечь файлы из архива на диск С.

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;


procedure TGearsForm.Button3Click(Sender: TObject);
begin
     Form1.ShowModal; <- Здесь ошибка, где Вы создали форму Form1, чтобы её вызывать?
     Hide;
end;

Санька_Грозный

Sabahs, да:),  проблемма очевидна, но я не совсем понимаю как это сделать, програмирование прикладных библиотек в среде компас для меня впервой. Я малость код подредактировал, вроде все продумал, но опять таки не получается, может быть какие то настройки компаса не верны?, если кто знает, то пажалуйста поделитесь со мной, я буду очень рад получить любую помощь. Спасибо.

Вот измененные коды библиотеки: http://download.files.namba.kg/files/2842234/myProject.rar?o3tn8ZoanXPyh0uGIaeigkEeQuLDD0YIs7mQNQki8ZinrSo%3D

Вам нужно форму создать
Form1:=TForm1.Create(Application);
а потом выгрузить перед закрытием главной формы.
Form1.Free;

Санька_Грозный

Sabahs сделал как вы советуите, но к большому сожалению, проблемма остается актуальной.

procedure LibraryEntry(command: Word); pascal;
begin
  if GearsForm=nil then
   begin
    iKompas:=KompasObject(CreateKompasObject);
    if iKompas=nil then Exit;
    Application.Handle:=iKompas.ksGetHWindow;
    GearsForm:=TGearsForm.Create(Application);
    Form1:=TForm1.Create(Application);
    GearsForm.Show;
    iKompas.ksSystemControlStart('Остановить GearsForm');
    iKompas.ksSystemControlStop;
    iKompas:=nil;
    Form1.Free;
    Form1:=nil;
    GearsForm.Free;
    GearsForm:=nil;
   end else ShowWindow(GearsForm.Handle,SW_RESTORE);
end;

Санька_Грозный

Спасибо за помощь Sabahs, оказывается у меня просто компас глючил:)