Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 | 3 |

 

  Вопрос: Последовательность чтения TextBox-рамок Добавлено: 05.10.07 16:24  

Автор вопроса:  ferico | Web-сайт: www.ricotech.ru

Ответить

  Ответы Всего ответов: 39  

Номер ответа: 16
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #16
Добавлено: 06.10.07 00:01
Сама база может сохраняться в XML-формате, что теоретически дает возможность самим делать всю процедуру и создавать нужную базу в нужном формате.

Но это уже другая работа, требующая более глобальных трудозатрат. Поэтому вариант с TXT-остается на самый крайний случай.

Поэтому пытаемся понять способ расстановки текстовых рамок.
Может быть существует скрытый или недокументируемый метод объекта:
1) метод объекта Shape для установки порядка следования.
2) метод объекта ShapeRange для сортировки порядка следования Shape-объектов
3) метод коллекции Shapes для той же сортировки, например, по имени.

Ответить

Номер ответа: 17
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #17
Добавлено: 06.10.07 00:07
Файл из-под контроля не совсем выходит. Перевод делается в Word, но с использованием панели инструментов того же Трaдocа, т.е. при переводе каждого предложения он его обрабатывает и что-то меняет.

Ответить

Номер ответа: 18
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #18
Добавлено: 06.10.07 00:15
Структура страницы следующая:
1) есть всего один пустой параграф (абзац) на каждой странице. После него сразу идет разрыв раздела с переходом на след. страницу.
2) на странице есть текстовые рамки, а якорь для каждой рамки соответсвенно висит на этом абзаце.
Т.е. все рамки на странице привязаны к одному параграфу.
3) смотрим в свойствах рамок (надписей):
вкладка Положение, обтекание - "Вокруг рамки". И стоит флажок "Разрешить перекрытие". Привязка не установлена.

Ответить

Номер ответа: 19
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #19
Добавлено: 06.10.07 00:18
____ То есть, можно попытаться зафиксировать состояние коллекций по каждому параграфу ActiveDocument.Paragraphs(номер).Range.ShapeRange(), а потом либо восстановить состояние, либо в txt выгрузить.
____ Раз Традос работает в рамках Word, скорее всего он использует объектную модель Word и именно поэтому весьма возможно, что в коллекциях происходит "перемешивание" рамок.

____ Попробуйте эксперимент из одного листа с несколькими рамками, но перед процессом в ручную поставьте якоря рамок на разные (последовательные) абзацы и посмотрите, нарушится ли потом порядок. Если всё будет в порядке, то можно далее думать.

Ответить

Номер ответа: 20
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #20
Добавлено: 06.10.07 00:19
Делаем пробный пример:
1) на пустой странице создаем несколько текстовых рамок (надписей). В цикле смотрим их последовательность - и запоминаем.
Затем начинаем их двигать, менять текст и т.д.
Повторяем цикл - последовательность уже другая.

Ответить

Номер ответа: 21
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #21
Добавлено: 06.10.07 00:20
Т.е. перемешивание происходит в Word во время перевода текста.

Ответить

Номер ответа: 22
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #22
Добавлено: 06.10.07 00:26
Если сделать несколько абзацев(для разных) якорей, то положение рамок начинает смещаться(хотя это исправимо программно).

Я сделал визуальное отображение потока текста в виде стрелок от одной рамки к другой. Очень получилось наглядно.

Своеобразное РЕШЕНИЕ нашлось такое:
устанавливаем в цикле для каждой текстовой рамки привязку (т.е. чтобы у каждого якоря появился замочек вверху справа):
ActiveDocument.Range.ShapeRange.LockAnchor = True


После этого проводим вышеупомянутый опыт с изменением рамок и их текста. Направление последовательности вроде бы сохраняется.

Ответить

Номер ответа: 23
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #23
Добавлено: 06.10.07 00:29
____ Я подумал, что если перемешивание происходит только в рамках коллекции одного абзаца (а не между абзацами, что вряд ли, потому как укорь не должен менять своего места), то можно перед началом процесса выполнить макрос с вводом на страницу необходимого количества "маленьких" абзацев и привязки рамок по одной к каждому. Однако это, видимо, сместит сами рамкина листе.

____ Поэтому мне думается лучше вариант — кнопочка "запомнить порядок рамок в абзацных коллекциях" и кнопочка "Восстановить порядок".

Ответить

Номер ответа: 24
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #24
Добавлено: 06.10.07 00:30
____ Ну, надеюсь помог, хотя бы сочуствием. :)

Ответить

Номер ответа: 25
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #25
Добавлено: 06.10.07 00:38
Но это решение не решает задачу для уже имеющихся текстов.

Полагаю, что перемешивание происходит из-за того,что рамки являются обтекаемыми и при наложении "как магниты" друг на друга вияют и меняются очередностью.

Думаю, что вариант
ActiveDocument.Paragraphs(номер).Range.ShapeRange() подходит для прочесывания отдельных параграфов, т.е. страниц в документе. Но как "потом восстановить состояние" коллекций в другом документе согласно первому?

Ответить

Номер ответа: 26
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #26
Добавлено: 06.10.07 00:42
В любом случае большое Вам спасибо за идеи.
Помощь есть уже в самом обсуждении, так как самостоятельные размышления не всегда быстро приводят к лаконичному решению.

Ответить

Номер ответа: 27
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #27
Добавлено: 06.10.07 00:48
Я могу взять порядок следования текстовых рамок из первого документа.

Но никак не могу представить, как этот порядок применить к рамкам в другом документе.

Имена рамок Name в обоих документах совпадают.

Ответить

Номер ответа: 28
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #28 Добавлено: 06.10.07 00:55
Слушай хватит черточки писать зодолбался уже удалять

Ответить

Номер ответа: 29
Автор ответа:
 ferico



Вопросов: 2
Ответов: 31
 Web-сайт: www.ricotech.ru
 Профиль | | #29
Добавлено: 06.10.07 00:58
Это мне?

Ответить

Номер ответа: 30
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #30 Добавлено: 06.10.07 01:04
ну посмотри кто тут больше всего черточек написал!

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам