Последовательный перебор открытых документов

Автор Sprinter500, 16.09.19, 11:57:38

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

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

Sprinter500

Добрый день! Для перебора открытых документов ранее в Delphi с SDK Компаса версии 15.2 использовал следующий код:

procedure WorkDocs();//Перебор документов
var
j: integer;
pDocuments :IDocuments;
ksDoc :IKompasDocument;
pKompasDocument2D : IKompasDocument2D;
begin
if Form1.CheckBox6.Checked then
  begin
    pDocuments:=KompasApi.Documents;
    for j := 0 to pDocuments.Count-1 do
      begin
        ksDoc:=pDocuments.Item[j];
        ksDoc.Active:=true;
        pKompasDocument2D :=  ksDoc as iKompasDocument2D;
        RENM();
      end;
  end
else RENM();
end;

И все прекрасно работало. Но теперь переходим на C# и СДК новой версии 18 и наметилась проблема:  у pDocuments пропало "Item[j]". Как решить проблему в новой версии СДК.

Примечание: пробовал вставить в проект папку Common с DLL от старой версии, но в проекте не получается обновить ссылки - вылазят ошибки.

once

IApplication kompas7 = kompas.ksGetApplication7();
Где kompas - это KompasObject
foreach(IKompasDocument doc in kompas7.Documents)
{
Работаем с doc
}

Можно и через обычный for
+ Благодарностей: 1

Sprinter500

Цитата: once от 16.09.19, 12:07:44
IApplication kompas7 = kompas.ksGetApplication7();
Где kompas - это KompasObject
foreach(IKompasDocument doc in kompas7.Documents)
{
Работаем с doc
}

Можно и через обычный for


Спасибо, помогло. 

Sprinter500


once

Documents - это массив, обычное обращение к i-му элементу массива Documents;
+ Благодарностей: 1

Sprinter500

Цитата: once от 16.09.19, 12:49:21
Documents - это массив, обычное обращение к i-му элементу массива Documents;


Спасибо. Все работает теперь