Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420

Установка курсора на Image программно

30.03.2018, 22:05. Показов 2547. Ответов 4

Студворк — интернет-сервис помощи студентам
Есть компонент Image1, в котором отображена картинка.
Нужно программно установить курсор мышки в определённое место Image1.

Функция SetCursorPos(x, y) не подходит, т.к. координаты экранные, а если вычислять
C++
1
2
int x = Form1->Left + Image1->Left;
int y = Form1->Top + Image1->Top;
будет неточно из-за бордюров и заголовка формы.

Функция mouse_event() аналогична.

Пытался через запуск Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y), но не получается, хотя вариант самый подходящий, т.к. координаты относительно начала Image1:
C++
1
Image1MouseDown(0, mbLeft, TShiftState() << ssLeft, 200, 200);
Ошибок не выдаёт, но курсор не появляется.

А может всё зависит от обработчика, в котором эту строку записывать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2018, 22:05
Ответы с готовыми решениями:

Определение положения курсора на Image
Приветствую! Реализовывал на Delphi такую замечательную штуку: GetCursorPos(pt); pt := image1.ScreenToClient(pt); Будьте добры,...

как программно повернуть Image на определенный градус
как программно повернуть Image на определенный градус)

Как программно удалить image при нажатии на кнопку
как програмно удалить image при нажатии на кнопку помогите пожалуйста

4
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
30.03.2018, 22:43
C++
1
2
3
    TPoint pt = Mouse->CursorPos;
    pt = Image1->ScreenToClient(pt);
    Memo1->Lines->Add(String().sprintf(L"%d %d", pt.X, pt.Y));
Так вы узнаете координаты курсора на объекте. ...ну и дальше можно двигать.
0
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
30.03.2018, 23:15  [ТС]
Цитата Сообщение от Dinkin Посмотреть сообщение
TPoint pt = Mouse->CursorPos;
pt = Image1->ScreenToClient(pt);
Memo1->Lines->Add(String().sprintf(L"%d %d", pt.X, pt.Y));
Ну и зачем мне координаты курсора? Они известны.
Нужно программно установить курсор на Image1.

Что-то мне подсказывает, что надо колупать здесь:
C++
1
Image1MouseDown(0, mbLeft, TShiftState() << ssLeft, 200, 200);
Но курсор не появляется.

Добавлено через 21 минуту
Нет, я ошибся, Image1MouseDown(0, mbLeft, TShiftState() << ssLeft, 200, 200); не подходит, этот обработчик события по установленному курсору выдаёт координаты, а нужно наоборот, по известным координатам установить курсор.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.03.2018, 23:45
Лучший ответ Сообщение было отмечено Инженер_3 как решение

Решение

Цитата Сообщение от Инженер_3 Посмотреть сообщение
Ну и зачем мне координаты курсора?
А так не пробовали?__
C++
1
2
 
   Mouse->CursorPos = Image1->ClientToScreen(Point(44,44));
- устанавливает курсор в координаты 44,44 картинки.
1
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
30.03.2018, 23:56  [ТС]
nick42, Спасибо, всё сработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2018, 23:56
Помогаю со студенческими работами здесь

Настройки редактора билдера: установка курсора
Подскажите где настраивается каким образом будет установлен курсор (каретка) при клике мышкой в редакторе? Т.е. мне не нравится, что...

Показать координаты курсора на Image
Как сделать, чтобы при наведении мыши на Image в строке состояния показывалась координата точки?

Найти текущие координаты курсора не на PictureBox, а на его Image
вообще задача несколько иная мне нужно найти текущие координаты курсора не на самом picturebox а на его Image как известно он может...

Программно задать положение курсора
Как сделать так, что бы при выполнении функции начальное местоположение курсора было определенным? И возможно ли такое вообще?

Как программно изменить значок курсора
как программно изменить значок курсора в PascalABC.NET?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru