Перхват клика мышки для формы

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

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

Перхват клика мышки для формы

Сообщение Xenar » 06.07.2013 10:14:51

Доброго дня всем

На форме есть много компонентов.
Как перехватить щелчок мышью, чтобы не анализировать события мыши для каждого компонента?
Т.е. аналог Form.KeyPreview, только не для клавиатуры, а для мыши.
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Re: Перхват клика мышки для формы

Сообщение WAYFARER » 06.07.2013 16:09:31

Для какой ОС? Если для Windows то проще простого
Код: Выделить всё
procedure TfMain.FormCreate(Sender: TObject);
begin
  Application.OnMessage := onMess;
end;

procedure TfMain.onMess(var Msg: TMsg; var Handled: Boolean);
begin
  if(Msg.message=WM_LBUTTONDOWN)then begin
   ...
  end;
  Handled := False;
end;
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Перхват клика мышки для формы

Сообщение Xenar » 06.07.2013 18:52:39

В том то и дело что под линуху.
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Re: Перхват клика мышки для формы

Сообщение Ism » 06.07.2013 19:44:28

Можно прицепить события всех компонентов OnMouseMove к событию OnMouseMove формы
Типо так, вроде работает в винде , линухе тоже должно
Только вы лишаетесь обрабатывать данное событие компонентов отдельно

Код: Выделить всё
procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to ComponentCount-1 do
     TForm(Components[i]).OnMouseMove:=@FormMouseMove;
end;                                                         

Код: Выделить всё
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Memo1.Lines.Add(TimeToStr(Now));
end;                                       
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru