![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день!
Заранее прошу прощения за очередной глупый вопрос, но... Код:
procedure TForm1.Image1Click(Sender: TObject); begin if speedbutton1.Down=true then image1.Canvas.Ellipse(mouse.CursorPos.X-20,mouse.CursorPos.Y-20,mouse.CursorPos.X+20,mouse.CursorPos.Y+20); end; Есть подозрение, что клик отслеживается по форме, а рисую я на image. Как в таком случае отследить именно по координатам image? |
|
#2
|
|||
|
|||
|
Обрабатывай не Click, а MouseDown или MouseUp.
|
| Этот пользователь сказал Спасибо icWasya за это полезное сообщение: | ||
luivilla (21.05.2015)
| ||
|
#3
|
||||
|
||||
|
В обработчике Image1 -> onMouseMove есть параметры X, Y: Integer - это и есть координаты курсора внутри image
|
| Этот пользователь сказал Спасибо SCrat.ORS за это полезное сообщение: | ||
luivilla (21.05.2015)
| ||
|
#4
|
|||
|
|||
|
Да, действительно (чувствую себя дятлом).
А почему так? Точнее, в каком случае используется onClick тогда? Это уже просто интересно. |
|
#5
|
||||
|
||||
|
onClick - это просто клик по Image. Может тебе хочется например кнопку нарисовать на основе Image, и тут координаты тебе особо не нужны.
Кстати, если принципиально использование OnClick, то для получения координат можно взять координаты курсора по форме и прибавить положение Image: Код:
mouse.CursorPos.X + Image1.Left |
|
#6
|
||||
|
||||
|
Цитата:
![]() |
|
#7
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.Image1Click(Sender: TObject);
var
p: TPoint;
begin
GetCursorPos(p); // p:=Mouse.CursorPos;
p:=Image1.ScreenToClient(p);
Memo1.Lines.Add(Format('%d %d', [p.X, p.Y]))
end; |
|
#8
|
||||
|
||||
|
Поржали успокоились =)
NumLock, не пугай новичков таким кодом =D |