| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > передача параметров внутрь функции |
| Автор: =Женек= 29.10.2009, 16:19 | ||||||
| Господа, есть вопрос. Использую CodeGear2009, рисую с помощью GDI+ на компоненте TImage. Рисую дугу так:
Но мне хочется сделать функцию, внутрь которой поместить последнюю в предыдущей цитате строку, возможно еще что-то и вызывать ее так:
ОДнако функция ругается и на pen и на graphics и не понимает, что рисовать нужно на Image. Заработало только так:
Но, как вы видите, объявление pen и присвоение цвета внутри функции. Как глобализовать graphics и pen или как правильно передавать параметры? |
| Автор: Alca 29.10.2009, 16:57 | ||||
|
| Автор: =Женек= 29.10.2009, 17:03 | ||
И что? Выдаент ошибки:
Тема Pen не раскрыта. |
| Автор: Alca 29.10.2009, 17:04 | ||
Либо глобально либо как член класса. Добавлено через 34 секунды Я исправил, глянь еще |
| Автор: =Женек= 29.10.2009, 17:10 | ||
| Тоже исправил вроде работает. А с pen так же? Добавлено через 1 минуту и 57 секунд А насчет глобализации пожалуйста поподробнее. А то я сделал кнопку:
естественно он не видит graphics. Как сделать, чтобы ее не надо было передавать из функции в функцию? |
| Автор: Alca 29.10.2009, 17:12 | ||
|
| Автор: =Женек= 29.10.2009, 17:13 | ||||||
Вынес строку
в начало файла, там гнде глобальные переменные - ловлю access violation Добавлено @ 17:14 В общем вот:
Добавлено @ 17:17 С цветом тоже не получается:
|
| Автор: Alca 29.10.2009, 17:17 | ||||||||||
Добавлено через 4 минуты и 51 секунду либо
Добавлено через 5 минут и 37 секунд потом в деструкторе убиваешь указатель |
| Автор: =Женек= 29.10.2009, 17:23 | ||||||||||||||
Эх получил на выходе
Добавлено через 49 секунд Второй вариант сейчас попробую |
| Автор: Alca 29.10.2009, 17:27 | ||
|
| Автор: =Женек= 29.10.2009, 17:31 | ||||
это у меня есть.... Добавлено через 1 минуту и 49 секунд Сделал второй вариант, все исправил. На строке _m_pGraphics->DrawArc(&ppen, 400-Track*10+5, 400-Track*10+5, Track*20-10, Track*20-10, StartAngle, EndAngle); выдает [BCC32 Error] WL_Editor.cpp(50): E2285 Could not find a match for 'Gdiplus::Graphics::DrawArc(undefined,int,int,int,int,int,int)' Блин, я вообще мозг сломал, не затруднит показать как втыкать pen и Color ? Добавлено через 3 минуты и 33 секунды блин.. исправиль ppen на pen - стало компилиться. Но выдает лажу - две верхние трети канвы закрашены в белый цвет, нижняя треть в серый. Добавлено через 4 минуты и 59 секунд вот полный код
Добавлено через 7 минут и 17 секунд При этом вызов DrawArc закомменчиваю. Не рисует даже круги в обработке FormActivate Добавлено через 14 минут и 42 секунды Кстати, есть такой ворнинг [BCC32 Warning] WL_Editor.cpp(18): W8094 Incorrect use of #pragma comment( <type> [,"string"] ) |
| Автор: =Женек= 29.10.2009, 17:58 | ||
Перемещаю
в обработку FormActivate - рисует, но вызов PutArc в других функциях ничего не рисует. |
| Автор: Alca 29.10.2009, 22:28 | ||||
Может так все-таки
|
| Автор: =Женек= 30.10.2009, 06:36 |
| Я так и сделал, все равно warning вылетает. И не засовывал ничего в класс - программа запускается. А как кстати засунуть в класс? В общем объявление graphics и pen и последующее рисование (или вызов функции рисования) работают только в пределах одного обработчика. Что делать? |
| Автор: Alca 30.10.2009, 10:15 | ||||
Я же тебе писал:
|
| Автор: =Женек= 30.10.2009, 16:39 | ||||||
Так я тебе тоже писал длинный список ошибок, которые выдаются при таком способе. |
| Автор: Alca 30.10.2009, 16:43 |
| Покажи хидер |
| Автор: =Женек= 30.10.2009, 17:10 |
| Перенес проблему в новую тему, так как оригинальная себя исчерпала. Туда же выложу и хидер (старый вариант, без привязки к классу) |