Помогите разоьратся(Borland Delphi 5)

Автор it.chernov, 01.03.12, 15:54:55

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

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

it.chernov

Тыкнете носом библиотека компилируется, но при отрабатывание в компасе выплевывает ошибку "Access violation at address....». Что делать?Что ни так? Все перечитал все по SDK(

Обращаетесь к нулевому указателю, Вы его еще не получили или потеряли, но пытаетесь получить у него информацию.

it.chernov

А можете код посмотреть? Чето не совсем понял про нулевой показатель где это он у меня...
begin
  Kompas:=KompasObject(CreateKompasObject);
  if Kompas = nil then Exit;
  Forms.Application.Handle:=kompas.ksGetHWindow;
  Kompas.ksEnableTaskAccess(0);
  Form1:=TForm2.Create(Forms.Application);
  Form1.ShowModal;
  Form1.Free;
  Kompas.ksEnableTaskAccess(1);
  Forms.Application.Handle:=0; он?
  Kompas:=nil;

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

it.chernov

Run-Run Parametr указываю компас.ехе  пытаюсь пошагово, комп даже не запускается.Увы. Или как то можно по другому?

Скорее всего Kompas:=nil;, хотя нюансов внутри самой формы может быть много без отладки тяжело искать. В Run-Run Parametr указывайте полный путь к компас.ехе. 

Администратор

Уважаемый it.chernov!

Предупреждаю Вас о том, что следующие темы с неинформативными заголовками будут удаляться невзирая на наличие в них ответов.

Прошу соблюдать Правила Форума, с которыми Вы согласились при регистрации здесь.

Спасибо за понимание.

Cehhby

в procedure TForm2.Button1Click(Sender: TObject);
В первой строчке iDocParms := ksDocumentParam(iKompas.GetParamStruct(ko_DocumentParam));

iKompas у тебя нил(ты ж его только объявил в локальных переменных и нигде не инициализируешь!) от этого и падает, передай из входного модуля или снова получи.

it.chernov

iKompas:=KompasObject(CreateKompasObject);
if iKompas = nil then Exit;

УРААА))Спасибо))

it.chernov

А как же все таки настроить отладку? :(
Для тех кто начинает разбиратся так же как и я. Выкладываю Библиотека с формой с процедурой на кнопке создания демо чертежа.

it.chernov

lt_DocSheetStandart ,                        // 1- чертеж стандартный
        lt_DocSheetUser     :                        // 2- чертеж нестандартный
        begin
          NewStampEvents(pDoc);
          NewSelectMngEvent( pDoc );
          NewObj2DEvent(pDoc, ALL_OBJ );

Этим можно как то менять оформления листа или это не то?

it.chernov

Цитата: Cehhby от 02.03.12, 08:28:36
в procedure TForm2.Button1Click(Sender: TObject);
В первой строчке iDocParms := ksDocumentParam(iKompas.GetParamStruct(ko_DocumentParam));

iKompas у тебя нил(ты ж его только объявил в локальных переменных и нигде не инициализируешь!) от этого и падает, передай из входного модуля или снова получи.

Как передавать из входного модуля, а то каждый раз получать как то не правильно или все равно?
Форма чуть подправил, работа с чертежом и штампом. Может кому понадобится)

Администратор

it.chernov, Вы решили ВСЕ свои самые разнообразные вопросы задать в одной теме с бестолковым названием? Зря.

Для каждого отдельного не обсуждавшегося ранее вопроса надо создать отдельную тему с информативным заголовком. Если вопрос уже обсуждался ранее — присоединить свои сообщения к уже существующей теме.

Спасибо за понимание.