![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.08.2009
Сообщений: 22
|
![]()
Создаю три колонки. пишу в первой привет и ставлю column break. после этого хочу написать во второй колонке. но текст пишется в первой.
document->Sections->Last->PageSetup->TextColumns->SetCount(3); document->Paragraphs->Last->Range->PutText(L"privet"); VARIANT end; end.vt = VT_I4; end.lVal = document->Paragraphs->Last->Range->End - 1; Word::RangePtr range = document->Range(&end); range->InsertBreak(&columnBreak); document->Paragraphs->Last->Range->PutText(L"mir"); Помогите, пожалуйста. |
![]() |
![]() |
![]() |
#2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Дело в том, что разрыв колонки не создает нового абзаца. Нужно перед разрывом колонки ставить абзац, а уже после этого пустого абзаца вставлять разрыв.
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.08.2009
Сообщений: 22
|
![]()
Если пишу вот так:
document->Sections->Last->PageSetup->TextColumns->SetCount(3); document->Paragraphs->Last->Range->PutText(L"privet"); document->Paragraphs->Last->Range->InsertParagraphAfter(); document->Paragraphs->Last->Range->InsertBreak(&columnBreak); document->Paragraphs->Last->Range->InsertParagraphAfter(); document->Paragraphs->Last->Range->PutText(L"mir"); document->Paragraphs->Last->Range->InsertParagraphAfter(); то все работает почти правильно, за исключением того, что privet и mir находятся на разных уровнях в колонках. А как сделать так, чтобы privet и mir были в разных колонках и на одном уровне? |
![]() |
![]() |
![]() |
#4 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
А зачем после разрыва колонки еще один абзац? Он не нужен
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 26.08.2009
Сообщений: 22
|
![]()
Когда пишу так:
document->Sections->Last->PageSetup->TextColumns->SetCount(3); document->Paragraphs->Last->Range->PutText(L"privet"); document->Paragraphs->Last->Range->InsertParagraphAfter(); document->Paragraphs->Last->Range->InsertBreak(&columnBreak); document->Paragraphs->Last->Range->PutText(L"mir"); слова в одной колонке находятся |
![]() |
![]() |
![]() |
#6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Значит так, после разрыва колонки абзац действительно не нужен, но текст в последний абзац нужно помещать методом InsertAfter, тогда все получается:
Вот что получается у тебя: ![]() А вот что получается этим кодом Код:
![]() Получается, что разрыв колонки принадлежит абзацу, после которого он вставлен, и когда ты задаешь напрямую текст этого абзаца, ты разрыв уничтожаешь. А если вставить текст в конец абзаца (методом InsertAfter), то все остается на своих местах. Вообще, метод InsertAfter предпочтительнее, если нужно изменить диапазон.
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 07.09.2009 в 12:00. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 26.08.2009
Сообщений: 22
|
![]()
Спасибо огромное
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ReDim и Subscript out of range (Error 9) | oldfatham | Microsoft Office Excel | 5 | 24.08.2009 18:32 |
Проблема с Range при работе с Word | Абдуллаев Рустам | БД в Delphi | 0 | 10.05.2009 23:50 |
синтаксис Range ? | kievlyanin | Microsoft Office Excel | 2 | 23.04.2009 13:32 |
Range & Cells | ("")(Э_Є)("") | Microsoft Office Excel | 6 | 26.01.2009 11:19 |
MS Word: Range | kate4ka | Общие вопросы Delphi | 1 | 19.02.2008 06:14 |