Panel1MouseMove некоректная работа

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Panel1MouseMove некоректная работа

Сообщение Attid » 16.04.2007 16:23:59

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);

при ssLeft возрощает событие только если зажал кнопку прям над этой панелью, над другими панелями не будет возрощать событие.

пока проверил только под вендой
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Sergei I. Gorelkin » 16.04.2007 20:43:53

Да вроде все правильно. По умолчанию контролы захватывают мышь, т.е. после нажатия левой кнопки и до ее отпускания все мышиные сообщения идут только тому контролу, над которым ее нажали. Управляется кодом вида:

Код: Выделить всё
with Panel1 do
  ControlStyle := ControlStyle + [csCaptureMouse];
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Attid » 16.04.2007 22:32:10

так правая кнопка работает на всех .
или у них не гласное разделенеи
всякие контролы и альты вроде нормально работают.
а вот левая выделяется.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Sergei I. Gorelkin » 17.04.2007 01:32:52

Да, мышь захватывается только по левой кнопке. Так уж испокон веков было сделано в Дельфи и соответственно переехало в Лазарь.
Рациональное зерно в этом есть: например, можно таскать ползунок скроллбара, даже если курсор вышел за границы этого скроллбара.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 246

Рейтинг@Mail.ru