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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2015, 22:52   #1
Volodim
Пользователь
 
Регистрация: 18.05.2015
Сообщений: 14
По умолчанию Перемещение прямоугольников нарисованных на канве

Я хотел сделать перемещение прямоугольников нарисованных на канве методом повторного перерисовывания. Для этого я использовал функцию считывания координат курсора. Поскольку на моей канве фон белый, а прямоугольники желтые с черным ободком, я сделала проверку, считывая цвет пикселя с координатами курсора. Если курсор попал на желтый, нахожу координаты верхнего левого и нижнего правого углов прямоугольника и зарисовываю его белым прямоугольником. Далее я ничего не стал делать, так, как запустив уже сделанную часть я обнаружил, что при двойном клике ничего не происходит.
Поэтому я подозреваю, что сделал все слишком сложно и не правильно, подскажите правильный ответ:
Вот код:
Код C++
Код:
void __fastcall TForm1::Image1onDblClick(TObject *Sender)
{
 int x,y, xb, yb, xd, yd;
POINT cp;
 GetCursorPos(&cp);
 xb = x;
 yb = y;
 xd = x;
 yd = y;
if (Image1->Canvas->Pixels[x][y]== clYellow || Image1->Canvas->Pixels[x][y] == clBlack){
 while (Image1->Canvas->Pixels[xb][yb]== clYellow || Image1->Canvas->Pixels[xb][yb] == clBlack) {
yb = yb-1;
xb = xb-1;
 }
 while (Image1->Canvas->Pixels[xd][yd]== clYellow || Image1->Canvas->Pixels[xd][yd] == clBlack) {
yd = yd+1;
xd = xd+1;
}
 }
Image1->Canvas->Brush->Color=clWhite;
 Image1->Canvas->Rectangle(xb,yb,xd,yd);
}
Помогите пожалуйста.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 19.06.2015 в 12:02.
Volodim вне форума Ответить с цитированием
Старый 18.06.2015, 23:35   #2
Volodim
Пользователь
 
Регистрация: 18.05.2015
Сообщений: 14
По умолчанию

Какие ошибки я допустил?
Volodim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парабола на канве Kapitan4ik Помощь студентам 9 08.02.2014 23:28
Окружность на канве Utkin Общие вопросы Delphi 1 15.11.2013 18:11
Перемещение нарисованных фигур AlexSirk Общие вопросы .NET 7 14.04.2013 15:20
цвета на канве Juffin Общие вопросы Delphi 3 17.05.2009 21:57
поиск по канве Bayazet Мультимедиа в Delphi 3 28.01.2009 14:52