Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Отлов щелчка мыши   Найти похожие ветки 

 
X-Disa   (2005-03-07 06:49) [0]

Здравствуйте. Столкнулся с проблемой.
Есть некое окно, оно должно вести себя как меню. То есть если юзер кликнул мышью вне этого окна (даже вне проги), окон должно убираться. Собственно вопрос: Как отследить, что юзер кликнул мышью?


 
QuasiLamo ©   (2005-03-07 07:00) [1]

Как закрыть всплывающее меню в System Tray когда оно теряет фокус
--------------------------------------------------------------------------------

Иногда, при потере фокуса, всплывающее меню в System Tray при потере фокуса не закрывается. Поэтому, при обработке сообщений для всплывающего меню необходимо поместить окно на передний план и послать ему сообщение WM_NULL.

procedure TForm1.WndProc(var Msg: TMessage);
var
 p: TPoint;
begin
 case Msg.Msg of
   WM_USER + 1:
     case Msg.lParam of
       WM_RBUTTONDOWN:
         begin
           SetForegroundWindow(Handle);
           GetCursorPos(p);
           PopupMenu1.Popup(p.x, p.y);
           PostMessage(Handle, WM_NULL, 0, 0);
         end;
     end;
 end;
 inherited;
end;


 
X-Disa   (2005-03-07 07:16) [2]

Что-то не выходит. Пишу так:
...
 protected
 procedure WndProc(var Msg: TMessage); message WM_USER+1;
...

procedure TFMForm.WndProc(var Msg: TMessage);
var
p: TPoint;
begin
case Msg.Msg of
  WM_USER + 1:
    case Msg.lParam of
      WM_LBUTTONDOWN:
        begin
          SetForegroundWindow(Handle);
          GetCursorPos(p);
          Hide;
          PostMessage(Handle, WM_NULL, 0, 0);
        end;
    end;
end;
inherited;
end;


 
Fedia ©   (2005-03-07 07:20) [3]

>То есть если юзер кликнул мышью вне этого окна (даже вне проги), >окон должно убираться

В объявлении класса формы добавь:

 private
   procedure OnActivate(var msg: TWMActivate); message WM_ACTIVATE;

Сама процедура:

procedure TForm2.OnActivate(var msg: TWMActivate);
begin
 inherited;
 if msg.Active=WA_INACTIVE then close;
end;



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.035 c
4-1106976743
kvit
2005-01-29 08:32
2005.03.20
Как заставить модем...


14-1109851963
DiamondShark
2005-03-03 15:12
2005.03.20
Беглый взгляд на первую страницу.


14-1109713249
Димон
2005-03-02 00:40
2005.03.20
У меня глюки или активность на форуме правда упала?


10-1086021834
Bizon's
2004-05-31 20:43
2005.03.20
Первые шаги в создании интерфейсов


14-1109746281
Ломброзо
2005-03-02 09:51
2005.03.20
Англоязычная документация