Подбросьте идейку, как сделать...

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

KonSer

Участник
Топикстартер
Сообщения
16
Реакции
0
Задача такая. Очистить поля от мусора.
В принципе, всё просто. Перебираем все ActiveSpread.PageItems, сравниваем их координаты с координатами текущей страницы и удаляем. В этом проблем нет.

Проблема в другом... Текстовые фреймы. А точнее, перетекание. Ведь нельзя удалять ПЕРВЫЙ фрейм в цепочке, если он лежит на полях: текст перетекает.

Однако надо удалять первый фрейм в цепочке (и всю цепочку), если она целиком на полях. И т.п.

У фрейма есть ссылки: TextFrame.LastFrame - последний в цепочке
TextFrame.FirstFrame - аналогично...
TextFrame.NextFrame и TextFrame.PreviousFrame - соответственно, следующий и предыдущий.

Так вот... Если перебирать фреймы методом
For each Frame in MySpread.PageItems
а внутри - шагать по чепочке (NextFrame...) и проверять всю эту байду, удаляя при необходимости - то это не только громадный геморрой, но еще так и не получится. Ведь... блин, мозги уже кипят...

Одним словом... Люди... Подбросьте просто идейку.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Ответ: Подбросьте идейку, как сделать...

Сергей, у textFrame есть parentStory, у которой в свою очередь, есть свойство textFrames. Я думаю, не составит труда перебрать все фреймы в цепочке связанных.
 

KonSer

Участник
Топикстартер
Сообщения
16
Реакции
0
Ответ: Подбросьте идейку, как сделать...

Вот за это большой спасиб :)
 

KonSer

Участник
Топикстартер
Сообщения
16
Реакции
0
Ответ: Подбросьте идейку, как сделать...

Блин, что-то я после работы под вечер торможу...
А как остановиться?... В смысле, ParentStory.TextFrames... Далее в цикле - NextFrame, NextFrame и т.п. Проверки и т.п. Это всё понятно. Но как остановиться? Сравнение фреймов, есессно, не работает... Есть ли у фрейма какой-нить ID ?
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Ответ: Подбросьте идейку, как сделать...

Во-первых, у коллекции фреймов есть свойство Count, поэтому вполне возможно обращение myStory.TextFrames.Item(Counter). Во-вторых, каждый фрейм имеет свойство index - номер в списке связанных.
 
Статус
Закрыто для дальнейших ответов.