IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Рисование в Delphi, С помощью мыши
TarasBer
сообщение 11.12.2012 14:05
Сообщение #21


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(Shmaniche @ 11.12.2012 12:16) *

Похоже понял! smile.gif

Всё наоборот.
Ты повторно рисуешь элемент на старом месте (стирая его) (повторно - потому что ты его уже нарисовал на этом самом месте в предыдущем кадре), потом меняешь положение, потом рисуешь на новом. Но код вроде правильный.

Сообщение отредактировано: TarasBer - 11.12.2012 14:06


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shmaniche
сообщение 21.12.2012 15:56
Сообщение #22


Пионер
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской

Репутация: -  0  +


Поразмыслив придумал как из эллипса сделать окружность:
Код

if (Button=mbLeft) // Если нажата левая клавиша мыши...
then Circle:=true // то рисуем окружность
else Circle:=false; // иначе ничего не рисуем.
...

if (MouseButtonDown) and (Circle) then // Если нажата клавиша мыши, и Circle=true, то...
  begin
   Canvas.Ellipse(StartX, StartY, EndX, EndY);
   EndX:=X; EndY:=Y; // Фиксируем конечные координаты...
   if ((X<StartX) and (Y<StartY)) // Если X и Y меньше точки откуда рисуем...
   or ((X>StartX) and (Y>StartY)) // или X и Y больше точки откуда рисуем,...
   then EndX:=EndY-StartY+StartX  // тогда рисуем окружность влево вверх и вправо вниз.
   else EndY:=StartX+StartY-EndX; // Иначе рисуем окружность влево вниз и вправо верх.
   Canvas.Ellipse(StartX, StartY, EndX, EndY); // и фигуру.
  end;


smile.gif

Сообщение отредактировано: Shmaniche - 21.12.2012 15:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 6.11.2024 10:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"