|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.06.2010, 13:31 | #1 |
Новичок
Джуниор
Регистрация: 27.06.2010
Сообщений: 6
|
новый roundrect в Delphi
всем привет. у меня такая вот задачка: Написать процедуру построения прямоугольника со скруглениями радиуса R. я нашел в программе PascalABC как раз то что мне нужно. там он представляет procedure RoundRect(x1,y1,x2,y2,w,h: integer);
Рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев. но собрать это всё в кучу у меня не получается если Вам не трудно помогите пожалуйста вот что я там накопал Код:
|
27.06.2010, 13:55 | #2 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
Хм, а разве в Delphi у Canvas нет метода RoundRect? Насколько я помню, что-то такое было.
Верно ли я понял твой вопрос? Ты хочешь скопировать из ABCPascal код функции RoundRect? Если неверно - поправь. В приведённом тобой коде нет реализации этой функции. Код, который ты привёл - всего лишь класс-обёртка, использующий эту функции, но не реализующий её. Мне кажется, если нужно именно написать свою фунцию RoundRect для Delphi, стоит просто воспользоваться возможностью рисовать эллипсы и прямоугольники в Delphi на TCanvas и на их основе строить прямоугольник со скругленными краями. |
27.06.2010, 14:05 | #3 |
Новичок
Джуниор
Регистрация: 27.06.2010
Сообщений: 6
|
да, мне нужно заново написать процедуру RoundRect. её реализация в PascalABC мне бы вполне подошла, но как Вы говорите что здесь только оболочка, я не знаю что делать
|
27.06.2010, 14:12 | #4 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
У Canvas есть методы для рисования элипсов, закрашенных прямоугольнииков, линий и заливки. Если тебе можно пользоваться этими методами - напиши функцию сам на их основе.
Прояви фантазию. Нарисуй эллипсы по краям будущего прямоугольника. Закрашенными прямоугольниками сотри лишние части эллипса, дорисуй прямоугольниками и линиями до нужного рисунка. Если фантазии тебе не хватает - напиши, нарисую тебе gif-ку, объясняющую как это сделать) |
27.06.2010, 14:39 | #5 |
Пользователь
Регистрация: 31.07.2008
Сообщений: 12
|
Canvas.RoundRect(x1,y1,x2,y2,x3,y3: Integer);
это метод канвы в дельфи, x3 и y3 это как w и h в Паскале |
27.06.2010, 14:48 | #6 |
Новичок
Джуниор
Регистрация: 27.06.2010
Сообщений: 6
|
мне нужно написать процедуру, а не использовать Canvas.RoundRect
|
27.06.2010, 15:02 | #7 |
Новичок
Джуниор
Регистрация: 27.06.2010
Сообщений: 6
|
скажите, как мне получить из рисунка1 рисунок2?
рис1 рис2 |
28.06.2010, 00:55 | #8 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
Включи фантазию)
Первое, что пришло мне в голову: Во-первых, после того как ты нарисовал четыре эллипса по краям, не рисуй квадрат, а рисуй линии. Координаты для линий высчитываются просто, если уж с этим возникнут затруднения, напиши здесь - напишу функцию полностью (сейчас я просто исправляю твой рисунок в paint`е, так как нету delphi под рукой). Получится так: Затем рисуй два закрашенных цветом фона прямоугольника следующим образом: (для наглядности я нарисую их отличающимся цветом, чтобы было понятно) Результат, который должен получиться: |
28.06.2010, 10:23 | #9 |
Новичок
Джуниор
Регистрация: 27.06.2010
Сообщений: 6
|
спасибо, буду пробовать
|
28.06.2010, 10:45 | #10 |
Новичок
Джуниор
Регистрация: 27.06.2010
Сообщений: 6
|
а есть какой нибудь алгоритм, чтобы построить многоугольник со скруглениями радиуса R?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
новый антивирус на delphi - Normal antivirus skanner | alesandro2 | Софт | 14 | 26.02.2014 10:29 |
Как в редактор кода Delphi 7 добавить новый шрифт? | lexaltd | Общие вопросы Delphi | 13 | 22.06.2012 18:34 |
как создать новый лист в ecxel sql запросом из delphi? | betirsolt | БД в Delphi | 2 | 14.06.2010 15:47 |
Новый модуль WinProc для работы с процессами (Delphi) | Terran | Компоненты Delphi | 1 | 10.01.2010 22:38 |