|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.04.2008, 13:22 | #1 |
Пользователь
Регистрация: 05.05.2007
Сообщений: 18
|
Таймер "ловит" не все клики мыши
Проблема таймер "ловит" не все клики левой кнопки мыши над объектом.
пропускает ... Интервал тайиера 50мс procedure TfmLock.Timer_WorkTimer(Sender: TObject); var p: TPoint; begin GetCursorPos(p); // определяем что мышь над объектом: if ((p.x > fmLock.Left + Zona_1.Left) and (p.x < fmLock.Left + Zona_1.Left + 50) and (p.y > fmLock.Top + Zona_1.Top) and (p.y < fmLock.Top + Zona_1.Top+ 50)) then Mouse_Sb_1 := True else Mouse_Sb_1 := False; if ((Mouse_Sb_1 = True) and (Mouse_Left_1 = True)) then begin Brush.Style := bsSolid; Brush.Color := clWhite; .. рисуем на канве ... end; procedure TfmLock.Zona_1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then Mouse_Left_1 := True; if Button = mbRight then Mouse_Right_1 := True; if Button = mbMiddle then Mouse_Middle_1 := True; end; procedure TfmLock.Zona_1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then Mouse_Left_1 := False; if Button = mbRight then Mouse_Right_1 := False; if Button = mbMiddle then Mouse_Middle_1 := False; end; |
09.04.2008, 13:27 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А зачем ты эти клики в таймере ловишь?
I'm learning to live...
|
09.04.2008, 13:31 | #3 |
Пользователь
Регистрация: 05.05.2007
Сообщений: 18
|
по кликам перерисовывается канва
|
09.04.2008, 13:34 | #4 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
а на клик перерисовать канву не судьба ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
09.04.2008, 13:35 | #5 |
Пользователь
Регистрация: 05.05.2007
Сообщений: 18
|
прямо на MouseDown? А там можно?
(П.П. я не программист,- я аниматор и только волей судьбы вынужден писать код для своих презентаций...) Последний раз редактировалось tetris; 09.04.2008 в 13:45. |
09.04.2008, 13:49 | #6 | |
Заблокирован
Регистрация: 09.04.2008
Сообщений: 13
|
А там можно!
Цитата:
|
|
09.04.2008, 13:52 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
09.04.2008, 14:06 | #8 |
Пользователь
Регистрация: 05.05.2007
Сообщений: 18
|
ну это философский вопрос. а такие "запарки" у меня раз два в году по неделе. когда прогер в отпуске или на больничном,- не стоит шкура выделки... А изучать мне для работы надо счас endorphin. а не средства программирования (извиняюсь если обидел прогеров)...
А по сути вопроса: Я так понял событие MouseDown очень кратковременно и таймер его просто не успевает "поймать"? Так это? Последний раз редактировалось tetris; 09.04.2008 в 14:09. |
09.04.2008, 14:23 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Это событие вообще с таймером не совместимо.
Вот то что ты твориш в таймере перенеси в OnMouseDown
I'm learning to live...
|
09.04.2008, 14:48 | #10 |
Пользователь
Регистрация: 05.05.2007
Сообщений: 18
|
все понял спс.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder | AleksP | C++ Builder | 7 | 11.04.2009 13:06 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) | Dorvir | Microsoft Office Excel | 2 | 28.03.2008 10:03 |
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" | MAcK | Компоненты Delphi | 11 | 24.10.2007 10:49 |
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" | Tayfun | Свободное общение | 3 | 26.06.2007 20:27 |