Не могу сгруппировать две линейки

Статус
Закрыто для дальнейших ответов.

alex_medvedev

Участник
Топикстартер
Сообщения
3
Реакции
0
CS2 PC
Visual Basic из Visual Studio 2005

Есть две линейки:

Dim myNewLineGray = myPage.graphicLines.add()
Dim myNewLineBlack = myPage.graphicLines.add()


Рисую их во втором слое. Пытаюсь сгруппировать:

Dim myGroup = myPage.Groups.Add(myDocument.Layers.Item(2), Array(myNewLineGray, myNewLineBlack))


в ответ пишет:

'Array' is a type and cannot be used as an expression.

Конструкция типа :
Dim myGroup = myPage.Groups.Add(myNewLineGray, myNewLineBlack)

Дает ошибку:

Invalid value for parameter 'Layer' of event 'Add'. Expected Layer, but received GraphicLine.

Где ошибка?
 
Ответ: Не могу сгруппировать две линейки

Для создания группы нужно получить
список объектов (то есть переменную типа PageItems),
а не массив.
Если надо сгруппировать все объекты на первой странице
пишем на VBS:

Set myInDesign = CreateObject("InDesign.Application.CS2")
Set myDocument = myInDesign.ActiveDocument
Set myPages = myDocument.Pages
Set myPage = myPages.Item(1)
Set myPageItems = myPage.PageItems
Set myGroups = myPage.Groups
Set myNewGroup = myGroups.Add(myPageItems)
 
Ответ: Не могу сгруппировать две линейки

ок. Как сгруппировать все объекты на странице я понял. Но мне нужно сгруппировать два объекта и я не могу понять как это сделать.
 
Ответ: Не могу сгруппировать две линейки

Если эти два объекта выделены, то myDocument.Selection
даст требуемый список.

Можно объектам присвоить одинаковые метки.
При выборе по метке тоже получится список.

Может есть другие способы, но я их не нашел.
 
Ответ: Не могу сгруппировать две линейки

Ага, спасибо. Заработало:

myNewLineGray.Label = "Group"
myNewLineBlack.Label = "Group"
Dim myPageItems = myPage.PageItems
Dim myGroups = myPage.Groups
Dim myTMP = myPageItems.item("Group")
Dim myNewGroup = myGroups.Add(myTMP)
myNewLineGray.Label = ""
myNewLineBlack.Label = ""
 
Статус
Закрыто для дальнейших ответов.