-
Как изменить событие OnClick у TButton, чтобы оно приходило пока кнопка нажата (как у компонента TUpDown)?
-
никак. обрабатывайте другое событие.
-
> [0] mix (24.01.08 11:36)
Не все так просто.... Именно у TButton ответ см в [1]. Другие пути: Наследник от TButton'а с внедренным Таймером или простой способ: Использовать два стандартных компонента, например TButton и TTimer. Не совсем красиво, но ...На МаусДовн кнопки включаем Таймер, а на МаусАп выключаем...
-
Таймер-то зачем???
-
> [3] KilkennyCat © (24.01.08 11:56)
Как зачем???? Ему же нужно нажать мышой кнопку(TButton) и неотпуская ее генерить событие OnClick....
-
Все так. С таймером понял. С событием ничего нельзя придумать?
-
> С событием ничего нельзя придумать?
OnClick while SendMessage(Button1.Handle, BM_GETSTATE, 0, 0) = BST_PUSHED do begin ... Application.ProcessMessages; end;
-
Сделал - работает. Спасибо за ответы! Но.. Есть одна загвостка..))) Если по кнопке вылетает какое нить окно, допустим с ошибкой, то OnClick благополучно уходит в бесконечный цикл.. Можно конечно поставить try except (обязательно поставлю), но все равно неприятно. Есть ли решение этой проблемы??
P.S. Попробовал проделать тоже самое с TUpDown, получается какой то бред... Кнопка отжимается во время отображения месседжа, но после этого кликая мышкой в любую область формы происходит событие OnClick TUpDown и приложение закрыть невозможно.
-
проверяй, у кого фокус. если фокус потеряли — всё, концерт окончен.
|