Главная страница
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.036 c
1-1109693041
Vasilisk
2005-03-01 19:04
2005.03.20
Быстрый поиск по HTML


3-1108582133
dreamse
2005-02-16 22:28
2005.03.20
Проблема с сохранением и востановлением базы в MS SQL


14-1109526800
Aldor
2005-02-27 20:53
2005.03.20
Первое в жизни голосование!


9-1102700636
dRake
2004-12-10 20:43
2005.03.20
Точный тайминг


1-1109868008
ТехникПТО
2005-03-03 19:40
2005.03.20
Скорость работы программы во время выполнения цикла