![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сменить вид курсора контрола в его MouseDown'е
DelphiLexx © (2006-08-14 13:22:00)На форме размещена кнопка MyButton: TButton при нажатии на эту кнопку вид её курсора с crDefault должен меняться на crHandPoint.
Для этого я в MyButtonMouseDown'е пишу
MyButton.Cursor := crHandPoint, но курсор не меняется.
Так как же сменить курсор?
Способ через Screen.Cursor не предлагать.
DelphiLexx (2006-08-16 08:47:00) [1]
> Panel1.Cursor := crHandPoint;
> ReleaseCapture
Спасибо Джо. Ты решил мою проблему.
DelphiLexx (2006-08-16 08:40:00) [2]
> Насколько я понял, автор вопроса хочет чтобы при нажатии
> на кнопку мыши курсор сразу же принял другой вид, а при
> отпускании, допустим, вернул свой преждний облик.
Именно так.
Джо (2006-08-15 12:58:00) [3]
Panel1.Cursor := crHandPoint;
ReleaseCapture
DprYg (2006-08-15 09:33:00) [4]
> Джо © (14.08.06 23:51) [20]
[0] и [1] у меня работает так. Нажимаю мышкой на грид - курсор сразуне меняется. Вожу мышкой с нажатой кнопкой - не меняется. Отпускаю - изменился. А в [9] нажимаю - сразуменяется (не обязательно отпускать). Сам не понимаю, почему так [0] не действует, может объяснит кто...
TButton (2006-08-15 05:10:00) [5]имхо, выпендрёж. юзер и без скачучих курсоров обойдётся.
хотя как абстрактная задача - интересно)
Джо (2006-08-15 00:58:00) [6]> [21] Zeqfreed © (14.08.06 23:57)
> Насколько я понял, автор вопроса хочет чтобы при нажатии
> на кнопку мыши курсор сразу же принял другой вид, а при
> отпускании, допустим, вернул свой преждний облик.
Пока автор этого не сказал, я не стад бы гадать :)
Zeqfreed (2006-08-14 23:57:00) [7]Насколько я понял, автор вопроса хочет чтобы при нажатии на кнопку мыши курсор сразу же принял другой вид, а при отпускании, допустим, вернул свой преждний облик.
Джо (2006-08-14 23:51:00) [8]> [19] DprYg © (14.08.06 19:12)
> Так у меня работает. Нормально работает. Просто, если это
> работает, зачем весь базар? Вот к чему я спросил.
"У меня" работает даже [0] и [1]. К чему "весь базар" — автору вопроса виднее, у него же неработает, да и код у него перед глазами :)
DprYg (2006-08-14 19:12:00) [9]Так у меня работает. Нормально работает. Просто, если это работает, зачем весь базар? Вот к чему я спросил.
Loginov Dmitry (2006-08-14 18:19:00) [10]> Так я не понял - [9] что, не работает?
А кто должен знать, работает оно или нет?
DprYg (2006-08-14 17:00:00) [11]Так я не понял - [9] что, не работает?
Loginov Dmitry (2006-08-14 16:39:00) [12]При нажатии кнопки мыши в OnMouseDown, естественно.
Loginov Dmitry (2006-08-14 16:38:00) [13]Ну тогда так:
- При нажатии менять DBGrid.Cursor и Screen.Cursor
- При отжатии восстанавливать Screen.Cursor в прежднее состояние
DelphiLexx (2006-08-14 16:23:00) [14]
> А чем данный вариант не устроил?
Мне нужно изменить только курсор DBGrid'a а не всего приложения.
DelphiLexx (2006-08-14 16:22:00) [15]
> а если подвигать мышью, не отпуская кнопки -- меняется?
Нет
Loginov Dmitry (2006-08-14 16:18:00) [16]> Способ через Screen.Cursor не предлагать.
А чем данный вариант не устроил?
Kolan (2006-08-14 14:49:00) [17]
Application.ProcessMessages?
Ketmar (2006-08-14 14:47:00) [18]> [8] DelphiLexx © (14.08.06 13:40)
а если подвигать мышью, не отпуская кнопки -- меняется?
DprYg (2006-08-14 14:05:00) [19]Попробуй так:
Помести на форму компонент ApplicationEvents и в его обработчике OnMessage напиши:
if (Msg.hwnd = DBGrid1.Handle) and (Msg.message = WM_LBUTTONDOWN) then
dbgrid1.Cursor := crHandPoint;
DelphiLexx (2006-08-14 13:40:00) [20]
> Чудеса. В вопросе фигурировал TButton, теперь "всплывает"
> TDbGrid. Впрочем, это ничего не меняет.
Мне нужно было и для TButton'a и для TDBGtrid'a.
И меняться курсор должен при нажатии мыши т.е. в OnMouseDown'е этих компонентов.
Так вот пишу я код в OnMouseDown'е DBGrid'a:
DBGrid1.Cursor := crHandPoint
Курсор как был crDefault так и остался.
Анологично все происходит и для TButton'a.