Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Вниз

Сменить вид курсора контрола в его MouseDown е   Найти похожие ветки 

 
DelphiLexx ©   (2006-08-14 13:22) [0]

На форме размещена кнопка MyButton: TButton при нажатии на эту кнопку вид её курсора с crDefault должен меняться на crHandPoint.
Для этого я в MyButtonMouseDown"е пишу
MyButton.Cursor := crHandPoint, но курсор не меняется.
Так как же сменить курсор?
Способ через Screen.Cursor не предлагать.


 
Джо ©   (2006-08-14 13:26) [1]

> Так как же сменить курсор?

Так и писать: MyButton.Cursor := crHandPoint. Только не понятно, почему выбрать обработчик OnMouseDown, а не OnClick.


 
DelphiLexx ©   (2006-08-14 13:28) [2]


> OnClick

OnClick не универсален. Он подайдёт для кнопки, а вот для DBGrid"a уже этого события нет.


 
Джо ©   (2006-08-14 13:31) [3]

> [2] DelphiLexx ©   (14.08.06 13:28)
>
> > OnClick
>
> OnClick не универсален. Он подайдёт для кнопки, а вот для
> DBGrid"a уже этого события нет.

Так в чем заключается вопрос? В поиске "универсального" события?


 
DelphiLexx ©   (2006-08-14 13:31) [4]


> почему выбрать обработчик OnMouseDown, а не OnClick.

Выбран OnMouseDown, потому что курсор должен менять на нажатии, а не на Click"e.


 
DelphiLexx ©   (2006-08-14 13:32) [5]


> Так в чем заключается вопрос? В поиске "универсального"
> события?

Нет. Нужно чтобы в DBGrid"e курсор менялся в его OnMouseDown"e.


 
Джо ©   (2006-08-14 13:33) [6]

> [4] DelphiLexx ©   (14.08.06 13:31)
> Выбран OnMouseDown, потому что курсор должен менять на нажатии,
> а не на Click"e.

Т.е, меняться он не должен, когда на кнопку нажимают на клавиатуре? Ну, хозяин — барин. Только в чем вопрос — непонятно. Тот код, который ты привел, прекрасно меняет курсор.


 
Джо ©   (2006-08-14 13:35) [7]

> [5] DelphiLexx ©   (14.08.06 13:32)
> Нет. Нужно чтобы в DBGrid"e курсор менялся в его OnMouseDown"e.

Чудеса. В вопросе фигурировал TButton, теперь "всплывает" TDbGrid. Впрочем, это ничего не меняет.


 
DelphiLexx ©   (2006-08-14 13:40) [8]


> Чудеса. В вопросе фигурировал TButton, теперь "всплывает"
> TDbGrid. Впрочем, это ничего не меняет.

Мне нужно было и для TButton"a и для TDBGtrid"a.
И меняться курсор должен при нажатии мыши т.е. в OnMouseDown"е этих компонентов.
Так вот пишу я код в OnMouseDown"е DBGrid"a:
 DBGrid1.Cursor := crHandPoint
Курсор как был crDefault так и остался.
Анологично все происходит и для TButton"a.


 
DprYg ©   (2006-08-14 14:05) [9]

Попробуй так:
Помести на форму компонент ApplicationEvents и в его обработчике OnMessage напиши:
if (Msg.hwnd = DBGrid1.Handle) and (Msg.message = WM_LBUTTONDOWN) then
dbgrid1.Cursor := crHandPoint;


 
Ketmar ©   (2006-08-14 14:47) [10]

> [8] DelphiLexx ©   (14.08.06 13:40)
а если подвигать мышью, не отпуская кнопки -- меняется?


 
Kolan ©   (2006-08-14 14:49) [11]

Application.ProcessMessages?


 
Loginov Dmitry ©   (2006-08-14 16:18) [12]

> Способ через Screen.Cursor не предлагать.


А чем данный вариант не устроил?


 
DelphiLexx ©   (2006-08-14 16:22) [13]


> а если подвигать мышью, не отпуская кнопки -- меняется?

Нет


 
DelphiLexx ©   (2006-08-14 16:23) [14]


> А чем данный вариант не устроил?

Мне нужно изменить только курсор DBGrid"a а не всего приложения.


 
Loginov Dmitry ©   (2006-08-14 16:38) [15]

Ну тогда так:

- При нажатии менять DBGrid.Cursor и Screen.Cursor
- При отжатии восстанавливать Screen.Cursor в прежднее состояние


 
Loginov Dmitry ©   (2006-08-14 16:39) [16]

При нажатии кнопки мыши в OnMouseDown, естественно.


 
DprYg ©   (2006-08-14 17:00) [17]

Так я не понял - [9] что, не работает?


 
Loginov Dmitry ©   (2006-08-14 18:19) [18]

> Так я не понял - [9] что, не работает?


А кто должен знать, работает оно или нет?


 
DprYg ©   (2006-08-14 19:12) [19]

Так у меня работает. Нормально работает. Просто, если это работает, зачем весь базар? Вот к чему я спросил.


 
Джо ©   (2006-08-14 23:51) [20]

> [19] DprYg ©   (14.08.06 19:12)
> Так у меня работает. Нормально работает. Просто, если это
> работает, зачем весь базар? Вот к чему я спросил.

"У меня" работает даже [0] и [1]. К чему "весь базар" — автору вопроса виднее, у него же неработает, да и код у него перед глазами :)


 
Zeqfreed ©   (2006-08-14 23:57) [21]

Насколько я понял, автор вопроса хочет чтобы при нажатии на кнопку мыши курсор сразу же принял другой вид, а при отпускании, допустим, вернул свой преждний облик.


 
Джо ©   (2006-08-15 00:58) [22]

> [21] Zeqfreed ©   (14.08.06 23:57)
> Насколько я понял, автор вопроса хочет чтобы при нажатии
> на кнопку мыши курсор сразу же принял другой вид, а при
> отпускании, допустим, вернул свой преждний облик.

Пока автор этого не сказал, я не стад бы гадать :)


 
TButton ©   (2006-08-15 05:10) [23]

имхо, выпендрёж. юзер и без скачучих курсоров обойдётся.

хотя как абстрактная задача - интересно)


 
DprYg ©   (2006-08-15 09:33) [24]


> Джо ©   (14.08.06 23:51) [20]

[0] и [1] у меня работает так. Нажимаю мышкой на грид - курсор сразу не меняется. Вожу мышкой с нажатой кнопкой - не меняется. Отпускаю - изменился. А в [9] нажимаю - сразу меняется (не обязательно отпускать). Сам не понимаю, почему так [0] не действует, может объяснит кто...


 
Джо ©   (2006-08-15 12:58) [25]

 Panel1.Cursor := crHandPoint;
 ReleaseCapture


 
DelphiLexx ©   (2006-08-16 08:40) [26]


> Насколько я понял, автор вопроса хочет чтобы при нажатии
> на кнопку мыши курсор сразу же принял другой вид, а при
> отпускании, допустим, вернул свой преждний облик.

Именно так.


 
DelphiLexx ©   (2006-08-16 08:47) [27]


>  Panel1.Cursor := crHandPoint;
>  ReleaseCapture

Спасибо Джо. Ты решил мою проблему.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.042 c
2-1157425631
RoNaBoU
2006-09-05 07:07
2006.09.24
XOR


9-1135949556
Ford
2005-12-30 16:32
2006.09.24
Освещенния в Direct3D


1-1155092687
Avgust
2006-08-09 07:04
2006.09.24
Алгоритм запуска программы под админом


1-1155124059
Alkid
2006-08-09 15:47
2006.09.24
Компиляция проекта из командной строки


15-1157202905
Копир
2006-09-02 17:15
2006.09.24
С Днём Рождения, Москва! Почти 860 лет!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский