Код для массового перименования позиций

Автор Sprinter500, 22.03.13, 20:25:41

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

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

Проверки на nil делать и в отладчике смотреть, где появляется проблема.

Sprinter500

да в отладчике и определил - уже выше написал где. И через as пробовал и так. можно даже закомментировать то что ниже все равно ошибка. Может я принципиально неправильно делаю?

Sprinter500

pStamp остается nil после pStamp:= pLayoutSheet as IStamp;


Sprinter500

так тоже делал, может проблема выше:

pLayoutSheet:=pLayoutSheets.ItemByNumber[1];   В том что для оформления с номером 1 нет штампа?

Sprinter500

Попробуй у себя весь код процедуры с  pStamp:= pLayoutSheet.Stamp; Будут у тебя ошибки или нет? Она же короткая и времени много не отнимет.

Гаданием на кофейной гуще я заниматься не хочу, у Вас есть код и есть отладчик, если pLayoutSheets=nil, то дальше код не актуален, если pLayoutSheet=nil, тоже самое.

Sprinter500

Так я не знаю что делать чтобы nil не было. Ладно если ужа так не получается, тогда как сделать так чтобы API5 и API7 могли существовать одновременно? По API5 есть рабочий пример.

Что равно nil самое первое из всей цепочки?
Почему не сделать, так pLayoutSheet:=pLayoutSheets.Item[0]; - ?

Sprinter500

Вот на скрине:

Должен возвращать. Вы писали, что пробовали, что то под девятый Компас, он у Вас стоит?

Sprinter500

Уже несколько лет как не стоит 9-й, а после переустновки винды только 13-й.

Всё прекрасно получается.

Sprinter500

Повезло Вам, а вот что у меня с изменениями в коде чтобы вашему скриншоту соответствовало:

Sprinter500

Похоже это еще одна проблема похожа на проблему с IKompasDocument2D1. Что интересно оба этих интерфейса IStamp
и IKompasDocument2D1 появились в 12-й версии Компаса. Хотя такая у меня вообще не стояла. Похоже Delphi рассматривает библиотеки как на 11-ю версию или ранее и считает что этих интерфейсов там нет.