Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сменить вид курсора контрола в его MouseDown'е


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо