Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как программируется удержание кнопки?
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа! Может кто подскажет, каким образом на VFP8 программируется удержание кнопки для генерации некой последовательности операций. Похоже, нужно как-то использовать drag-and-drop события с частным случаем, когда источник и приемник - это один и тот-же объект? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2004, 18:24 |
|
||
|
Как программируется удержание кнопки?
|
|||
|---|---|---|---|
|
#18+
ну есть событие o.MouseDown() кпримеру ;) а ч:е в конкрете нужна-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 09:13 |
|
||
|
Как программируется удержание кнопки?
|
|||
|---|---|---|---|
|
#18+
Непонятно, как отличить однократное нажатие кнопки от нажатия и удержания? Т.е. при однократном операция выполняется один раз, а при удержании по истечении какого-то timeout'а должна начать генериться последовательность операций. Как это делается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 12:22 |
|
||
|
Как программируется удержание кнопки?
|
|||
|---|---|---|---|
|
#18+
В методе MouseDown() пишешь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. B методе MouseUp() : Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 12:36 |
|
||
|
Как программируется удержание кнопки?
|
|||
|---|---|---|---|
|
#18+
Нет, это не то. Я же говорю, нужна была интерактивная обработка, например для прокрутки списка. С таким-же успехом можно было в MouseDown() тупо: Код: plaintext 1. 2. Я уже разобрался, как нужно делать. Раз уж завел топик, то и отвечу :) Добавляем Timer. С однократным нажатием мыши понятно - обработку пишем в Click(). Дальше в MouseDown() устанавливаем стартовый интервал таймера, который должен быть больше системного для Click и включаем таймер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. В MouseUp() выключаем таймер: Код: plaintext 1. 2. 3. 4. А в событии Timer() таймера выполняем нужное действие (то же, что и в Click), после чего переустанавливаем интервал таймера на существенно меньший и сбрасываем начало отсчета: Код: plaintext 1. 2. 3. Таким образом, на обычное короткое нажатие срабатывает Click(), так как MouseUp() выключает таймер быстрее, чем исчерпывается интервал таймера. А при удержании кнопки срабатывает уже timer(), после чего начинает быстро выполняться нужное действие. При отпускании MouseUp() снова выключает таймер. Все прекрасно работает. Кстати, как правило на одной форме нужно обрабатывать удержание нескольких кнопок (если, скажем, прокрутка есть в одну сторону, то логично сделать и в обратную :) При этом можно обойтись одним таймером для всех кнопок, достаточно завести свойство, какая кнопка сейчас нажата и в MouseDown() каждой кнопки инициализировать его, тогда Timer() будет знать, обработку удержания какой именно кнопки ему выполнять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 11:01 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32389657&tid=1597238]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 260ms |
| total: | 429ms |

| 0 / 0 |
