Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2010, 16:42   #1
beda
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 22
По умолчанию Баг Shapes->BuildFreeform

Есть код на С++:
Код:
Word::FreeformBuilderPtr freeForm = m_WordDocument->Shapes->BuildFreeform(Office::MsoEditingType::msoEditingAuto,
		10,100);
freeForm->AddNodes( MsoSegmentType::msoSegmentLine,MsoEditingType::msoEditingAuto,100,10,0,0,0,0);
Word::ShapePtr free_shape = freeForm->ConvertToShape();
Предполагается создание линии с координатами (10,100) (100,10). В результате получаем перевернутую линию. Вывод с помощью:
m_WordDocument->Shapes->AddLine(10,100,100,10);
дает правильный результат. Если в BuildFreeform больше двух точек то результат получаем правильный. В чем может быть проблема? И как можно ее решить?
beda вне форума Ответить с цитированием
Старый 07.04.2010, 18:58   #2
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

А если добавить 3-ю точку с координатами совпадающими с координатами второй ?
Aent вне форума Ответить с цитированием
Старый 07.04.2010, 19:21   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Код:
ActiveDocument.Shapes.AddLine 10, 100, 100, 10
строит то что надо.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 07.04.2010, 19:29   #4
beda
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 22
По умолчанию

Большое спасибо!
При добавлении третей точки, все замечательно работает. Волнует вопрос производительности, поэтому было бы не плохо найти более эффективное решение. Пока буду пользоваться таким способом. Спасибо за помощь!
beda вне форума Ответить с цитированием
Старый 07.04.2010, 19:36   #5
beda
Пользователь
 
Регистрация: 07.04.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Код:
ActiveDocument.Shapes.AddLine 10, 100, 100, 10
строит то что надо.
AddLine не совсем подходит. Фигура может состоять из многих линий, а может и из одной. При использовании AddLine нельзя построить фигуру и правильно залить ее. И нет возможности заранее узнать со скольки секций будет состоять фигура.
beda вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
баг с DBEdit samouelson БД в Delphi 1 19.12.2009 00:20
непонятный баг brain-bras Общие вопросы C/C++ 4 14.10.2009 21:26
VBA Использование Shapes в Excel диаграммах RomVS Microsoft Office Excel 0 13.02.2009 12:20
Баг в BDS2006 posdnyaa Софт 1 19.12.2007 12:31