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

Вниз

Отличие одинарного клика от двойного в трее   Найти похожие ветки 

 
Turbid ©   (2006-03-30 01:58) [0]

У меня имеется следующий код, отлавливающий сообщения на иконку в трее:

procedure TMainForm.WM_ICON(var Msg: TMessage);
begin
 case Msg.LParam of
   WM_LBUTTONDOWN: {Действие №1};
   WM_LBUTTONDBLCLK: {Действие №2};
 end;
end;

Проблемма в том, что Действие №1 будет срабатывать всегда. Я пробовал решить эту проблемму следующим способом:

procedure TMainForm.WM_ICON(var Msg: TMessage);
var
 ClickMsg: TMsg;
 TargetTime: Longint;
begin
 case Msg.LParam of
   WM_LBUTTONDOWN:  
   begin
      TargetTime := GetTickCount + GetDoubleClickTime;
      while GetTickCount < TargetTime do
        if PeekMessage(ClickMsg, Handle,
                       WM_LBUTTONDBLCLK,
                       WM_LBUTTONDBLCLK,
                       WM_NOREMOVE) then Exit;
      {Действие №1};
   end;
   WM_LBUTTONDBLCLK: {Действие №2};
 end;      
end;

Но ничего не выходит - PeekMessage всегда возвращает 0. Спрашивается, в чем ошибка? И если другие способы решения данной проблеммы? Заранее благодарю.


 
Германн ©   (2006-03-30 02:32) [1]


>       TargetTime := GetTickCount + GetDoubleClickTime;
>       while GetTickCount < TargetTime do
>


Ну да. TargetTime всегда  больше GetTickCount при данном алгоритме. И что ты ещё хочешь?


 
Turbid ©   (2006-03-30 02:38) [2]

Ну почему же? Если бы TargetTime было в цикле while, то тогда оно было бы всегда больше.



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

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

Наверх




Память: 0.47 MB
Время: 0.032 c
5-1134898951
Vaitek_
2005-12-18 12:42
2006.07.02
Хранение ресурса "внутри" компонента.


1-1148386422
sdram
2006-05-23 16:13
2006.07.02
Подскажите как работать с HTML документом


2-1150294685
Megabyte
2006-06-14 18:18
2006.07.02
Как "урезать" лишние знаки после запятой у чисел типа real?


15-1149432235
Rsegg
2006-06-04 18:43
2006.07.02
Просканировать процесс


2-1150120145
VitV
2006-06-12 17:49
2006.07.02
Delphi+interbase