Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2020, 13:08   #1
Heneken
Новичок
Джуниор
 
Регистрация: 18.09.2011
Сообщений: 2
По умолчанию Зажатая левая клавиша мыши

Всем привет. Вопрос может быть совсем нубский, но пока не могу сообразить в чем подвох.Пытаюсь реализовать изменение стиля кнопки на клик через
Код:
    procedure WMMouseDown(var Message); message WM_LBUTTONDOWN;
    procedure WMMouseUp(var Message); message WM_LBUTTONUP;
   procedure WMMoseFirst(var Message: TWMMouseActivate); message WM_MOUSEFIRST;
Код:
procedure TCustomEsButton.WMMouseDown(var Message);
begin
  inherited;
  FCurrentStyle := FStyleClick;
  Invalidate;
end;
Код:
procedure TCustomEsButton.WMMoseFirst(var Message: TWMMouseActivate);
begin
  inherited;
  FCurrentStyle := FStyleEnterMouse;
  Invalidate;
end;
Код:
  
procedure TCustomEsButton.WMMouseUp(var Message);
begin
  inherited;
  FCurrentStyle := FStyleEnterMouse;
  Invalidate;
end;
Проблема в том, что после WMMouseDown, сразу же ловится
Код:
procedure WMMoseFirst(var Message: TWMMouseActivate); message WM_MOUSEFIRST;
И я не могу вдуплить, какого лешего мне винда посылает сообщение о первичном событии крысы, если никто с компонента мышь не сводил и я нигде WM_MOUSELEAVE не посылал. Получается что винда сама это делает при WM_LBUTTONDOWN. Соответственно я вижу на экране мерцание стиля на Down и его возврат в состояние описанное в WMMoseFirst имхо тут - же получаю WM_MOUSEFIRST.

Как от подобного избавиться? Подскажите, может WM_MOUSEFIRST следует заменить на что-то иное или с ControlStyle поиграть?
Я знаю как разрулить эту ситуацию, но не хочу рисовать дополнительные поля, может есть какое то штатное решение?

P.S -
Код:
 Множество ControlStyle -  [csCaptureMouse,csClickEvents,csSetCaption,csParentBackground,csGestures]

Последний раз редактировалось Heneken; 15.02.2020 в 14:48.
Heneken вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правая клавиша мыши в FormClick apromix Общие вопросы Delphi 2 22.08.2010 19:06
Клавиша мыши -=Virus=- Общие вопросы Delphi 5 24.11.2009 00:21
И снова левая и правая кнопка мыши (Delphi 7) alxd Помощь студентам 6 25.09.2009 14:10
OnClick - правая или левая кнопка мыши Vadim_S Общие вопросы Delphi 8 16.09.2009 18:15
какая функция определяет - была-ли нажата левая кнопка мыши, положение мышки на экране Wicing Общие вопросы Delphi 5 11.12.2007 10:17