Главная страница
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.025 c
14-1109659028
Vlad Oshin
2005-03-01 09:37
2005.03.20
Достоевский и давно. Про французов?


3-1108626722
sapsi
2005-02-17 10:52
2005.03.20
Программно добавить поля в таблицу


4-1108020598
MetalFan
2005-02-10 10:29
2005.03.20
Определить тип запуска сервиса...


8-1098098766
_Дельфин_
2004-10-18 15:26
2005.03.20
GIF в проекте


4-1108027474
-SeM-
2005-02-10 12:24
2005.03.20
Изменить контекстное меню системы