![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Shmaniche |
![]() ![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Репутация: ![]() ![]() ![]() |
Надо нарисовать элипс. Самое простое что пришло в голову это поместить на форму PaintBox и написать:
Код var Form1: TForm1; MouseButtonDown: Boolean= false; StartX, StartY: Integer; implementation procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MouseButtonDown:=true; StartX:=X; StartY:=Y; end; procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Form1.Caption:=Format ('Координаты: x=%d, y=%d ' , [X, Y]); // Координаты в заголовке. if MouseButtonDown=true then PaintBox1.Canvas.Ellipse(StartX, Starty, X, Y); end; procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MouseButtonDown:=false; end; Но от элипса остается след, если нажатую мышку двигать назад. Как избавиться от этого следа? Сообщение отредактировано: Shmaniche - 9.12.2012 17:46 |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Эллипс ты стираешь не выбором режима, а именно тем, что ты рисуешь его дважды.
-------------------- |
Shmaniche |
![]() ![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Репутация: ![]() ![]() ![]() |
Эллипс ты стираешь не выбором режима, а именно тем, что ты рисуешь его дважды. Имеешь ввиду это? Код Canvas.Ellipse(StartX, StartY, EndX, EndY); // рисуем первый раз. EndX:=X; EndY:=Y; Canvas.Ellipse(StartX, StartY, EndX, EndY); // рисуем второй раз. Похоже понял! ![]() Код if (MouseButtonDown) and (Line) then begin Canvas.MoveTo(StartX, StartY); Canvas.LineTo(EndX, EndY); EndX:=X; EndY:=Y; {Рисуем второй раз, чтобы стереть след} Canvas.MoveTo(StartX, StartY); Canvas.LineTo(EndX, EndY); end; ![]() Сообщение отредактировано: Shmaniche - 11.12.2012 12:46 |
![]() ![]() |
![]() |
Текстовая версия | 27.06.2025 19:56 |