Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.08.2016
Сообщений: 6
1

Не срабатывает CursorPos

11.09.2016, 17:25. Показов 1020. Ответов 10

Author24 — интернет-сервис помощи студентам
Здравствуйте. Подскажите, почему может не срабатывать CursorPos?

Delphi
1
2
3
4
5
6
7
procedure TForm2.Image1Click(Sender: TObject);
var
  p: TPoint;
begin
  p:=ScreenToClient(mouse.cursorpos);
  label1.Caption:=(inttostr(p.x)+' '+inttostr(p.y));
end;
В половине кликов работает как надо, в половине просто ничего не происходит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2016, 17:25
Ответы с готовыми решениями:

Запрос срабатывает в SQL Server, но не корректно срабатывает в Visual Studio 2017
(SELECT ROW_NUMBER() over (ORDER BY AVG(Отметки.Отметка) DESC) ID, .ФИО, .Группа, Отметки.,...

Таймер срабатывает раньше времени или вообще не срабатывает
Помогите, пожалуйста, разобраться, что нетак с таймером. Браузер Chrome При создании записи,...

Не срабатывает js
Может кто подскажет в чем ошибка. Не с мог пока найти причину. Делаю пример из книжки на...

Не срабатывает if
Почему-то не срабатывает if при условии, что мы ввели единицу. Подскажите, пожалуйста, в чем...

10
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2016, 17:46 2
Значит мимо Image кликаешь.
0
0 / 0 / 0
Регистрация: 17.08.2016
Сообщений: 6
11.09.2016, 17:48  [ТС] 3
серьезно?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2016, 17:49 4
Положил на форму только Image, все работает когда кликаю по нему.
0
0 / 0 / 0
Регистрация: 17.08.2016
Сообщений: 6
11.09.2016, 18:03  [ТС] 5
а чтобы в месте клика изображение рисовалось? Так-то да, если на форме только имейдж и лейбл, то работает. Но если при этом рисовать картинку с топ и лефт равный х и у клика - то он хочет - рисует, хочет - не рисует, и я никак не могу врубиться, в чем закономерность.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2016, 18:25 6
Цитата Сообщение от Thundertroll Посмотреть сообщение
Но если при этом рисовать картинку с топ и лефт равный х и у клика
Так Вам нужно не координаты экрана, а Image.

Добавлено через 2 минуты
Это можно получить в событии OnMouseDown Image.

Добавлено через 6 минут
Вот так я рисую в нужной точке Image.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  Form1: TForm1;
  b: TBitmap;
implementation
 
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.Brush.Color:=clWhite;
b:=TBitmap.Create;
b.LoadFromFile('1.bmp');
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.Draw(X,Y,b);
end;
2
0 / 0 / 0
Регистрация: 17.08.2016
Сообщений: 6
11.09.2016, 19:27  [ТС] 7
А можно как-то сослаться на этот TBitmap? На его координаты? Удалить его потом, подвигать, сравнить местоположение с другими изображениями... Или что нарисовано однажды, уже не разрисовать?

Что же касается OnClick'a (или MouseDown, одинаково). Обнаружил, что он не срабатывает не только если TImage заслонен непосредственно другим рисунком (у меня фигурка персонажа размером 40*40), но и на 80 пикселей вправо и вниз от этой фигурки. Это как так? Пустое место же вроде. (однако Ваш первый комментарий оказывается, тащем-та, верным )
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2016, 19:33 8
Цитата Сообщение от Thundertroll Посмотреть сообщение
Что же касается OnClick'a (или MouseDown, одинаково).
MouseDown дает сразу координаты точки, в OnClick их нужно определять.
Про остальное не понял, у меня все рисуется как я хочу.
Миниатюры
Не срабатывает CursorPos  
0
0 / 0 / 0
Регистрация: 17.08.2016
Сообщений: 6
11.09.2016, 19:39  [ТС] 9
Можно как-то координаты клика в mousedown в переменную записать?
Так-то у меня тоже рисуется, но мне не только рисовать надо. Мне бы еще с нарисованным работать, перемещать, удалять и т.д.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.09.2016, 19:51 10
Цитата Сообщение от Thundertroll Посмотреть сообщение
мне не только рисовать надо. Мне бы еще с нарисованным работать, перемещать, удалять и т.д.
Извините, я не понимаю что Вам нужно, не экстрасенс. А координаты клика если нужно храните в массиве
Delphi
1
mas:array of TPoint;
0
0 / 0 / 0
Регистрация: 17.08.2016
Сообщений: 6
11.09.2016, 20:22  [ТС] 11
уррра разобрался!!! не уверен, будет ли кто-то писать таким же способом, как я... но вкратце - добавил еще один TImage, прозрачный (не совсем прозрачный, а типа рамку), поместил его поверх всего и на него натравил onclick. Теперь все работает, как хотелось = )
0
11.09.2016, 20:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2016, 20:22
Помогаю со студенческими работами здесь

Не срабатывает if
Если использовать /*if(videoHash = "1") $('div.picture1').click();*/ if(videoHash =...

Не срабатывает else-if
#include "stdafx.h" #include <iostream> #include "conio.h" using namespace std; int x; void...

Не срабатывает Try Except
Доброго времени суток. Есть очень странная ситуация. Провожу подсчёт максимально возможного...

Не срабатывает rm -d
Вот прочитал в книжке: во вложении. (извините не понял как вставлять картинки) Книга: Владислав...

Не срабатывает js
Здравствуйте, нагуглил скрипт отправки данных на сервер без перезагрузки страницы, так же сообщения...

Не срабатывает 1й if
Подскажите в чем ошибка? $m=9; if ($_POST){ if (isset($_SESSION)){...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru