Alex7wrt Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 Здравствуйте. Интересует, как в FM можно менять вид курсора мыши. При использовании кода Form1.Cursor:=crSizeWE; В обработчике OnMouseMove ничего не происходит. Цитата Ссылка на комментарий
0 Alexander Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 в отладчике точку останова ставили? на этой строке? Цитата Ссылка на комментарий
0 Martifan Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin Self.Cursor := crSQLWait; end; end. работает без проблем Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 9 февраля, 2016 Автор Поделиться Опубликовано 9 февраля, 2016 (изменено) Странно, но у меня не работает. XE7 в отладчике точку останова ставили? на этой строке? Нет Изменено 9 февраля, 2016 пользователем Alex7wrt Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 9 февраля, 2016 Автор Поделиться Опубликовано 9 февраля, 2016 А нет, каюсь, для формы код работает. Но для контролов, например, TRectangle, нет. В их обработчике курсор не меняется. Цитата Ссылка на комментарий
0 Alexander Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 есть подозрение, что курсор перемещается не по форме, а по компонентам на форме, поэтому назначив курсор в событии формы это не будет являться изменением для всех компонент на форме. Нужно проверить срабатывает ли ваше назначение Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 9 февраля, 2016 Автор Поделиться Опубликовано 9 февраля, 2016 (изменено) Я назначаю курсор в обработчике OnMouseMove компонента procedure TForm5.leftMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin TRectangle(Sender).Stroke.Thickness:=TRectangle(Sender).Stroke.Thickness+0.5; Form5.Cursor := crSQLWait; end; Первая строка работает (ширина границы увеличивается при движении мыши), вторая строка - нет Изменено 9 февраля, 2016 пользователем Alex7wrt Цитата Ссылка на комментарий
0 Alexander Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 Sender это "владелец" события, подозреваю что Self это форма. Проверьте что у вас в self находится Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 9 февраля, 2016 Автор Поделиться Опубликовано 9 февраля, 2016 (изменено) Это опечатка, уже исправил. С Form5 не работает Изменено 9 февраля, 2016 пользователем Alex7wrt Цитата Ссылка на комментарий
0 Alexander Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 чудес не бывает, создайте обработчик OnMouseMove для формы, посмотрите с каким курсором вы туда приходите Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 9 февраля, 2016 Автор Поделиться Опубликовано 9 февраля, 2016 Для формы все работает нормально, курсор меняется, для компонента нет. В обоих обработчиках OnMouseMove (формы и компонента) присваивается один и тот же курсор (например crSQLWait) при передвижении мышью по форме курсор меняется, при наведении на область контрола снова приобретает вид стандартной стрелки. Цитата Ссылка на комментарий
0 Alexander Опубликовано 9 февраля, 2016 Поделиться Опубликовано 9 февраля, 2016 (изменено) всё правильно, вы в обработчике компонента присваиваете курсор не компоненту, а форме. Хотите, чтоб и над компонентом был такой курсор, так и ему присвойте. Проверил у себя, данный код работает procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if Rectangle1.Cursor = crHourGlass then Form1.Cursor := crSQLWait else Form1.Cursor := crSizeNWSE; end; procedure TForm1.Rectangle1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin Form1.Cursor := crSizeAll; Rectangle1.Cursor := crHourGlass; end; Изменено 9 февраля, 2016 пользователем Alexander Alex7wrt 1 Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 9 февраля, 2016 Автор Поделиться Опубликовано 9 февраля, 2016 Точно, не знал, что у компонентов есть свойство Cursor. Большое спасибо! Цитата Ссылка на комментарий
Вопрос
Alex7wrt
Здравствуйте.
Интересует, как в FM можно менять вид курсора мыши.
При использовании кода
В обработчике OnMouseMove ничего не происходит.
Ссылка на комментарий
12 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.