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

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

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

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

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

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

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

Не удаётся получить указатель на интерфейс строки при работе со штампом.

Автор opti, 04.10.04, 22:18:39

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

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

opti

Не удаётся получить указатель на интерфейс строки при работе со штампом.
Вот код:

if ( kompas ) {
    ksDocument2DPtr doc = kompas->ActiveDocument2D();
    ksStampPtr stamp;
    if  ( doc ) {
     stamp = (IDispatch*)doc->GetStamp();
     if(stamp->ksOpenStamp()){
       long numb;
       ksDynamicArrayPtr DArr;
       ksTextLineParamPtr parLine;
       char buf[128];
       int i=0,count,k;
       //в цикле будем брать все существующие графы

      while(DArr = stamp->ksGetStampColumnText(&numb)){
       for (int i=0,count=DArr->ksGetArrayCount();iksGetArrayItem( i, parLine)) != 0)//просмотреть все строки!!!
         kompas->ksMessage(WideString(i).c_bstr());// сообщение никогда не  выдаётся.
       }
       DArr->ksDeleteArray ();
      }
      stamp->ksCloseStamp();
    }else
      kompas->ksError (WideString("Штамп не найден").c_bstr());
    }
   }


opti

Немного косячно скопировался код в том месте где идёт цикл for...
на самом деле всё выглядит вот так:
for (int i=0,count=DArr->ksGetArrayCount(); i < count ; i++){
        //Тут касяк похоже! Функция никогда не возвращает указатель на интерфейс строки
        if ((DArr->ksGetArrayItem( i, parLine)) != 0)//просмотреть все строки!!!
         kompas->ksMessage(WideString(i).c_bstr());
       }