Форум: "Основная";
Текущий архив: 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.038 c