implementation
{$R *.dfm}
var countClick :Word;
Description: Word;
procedure TForm1.Wndproc(var Message: TMessage);
begin
case Message.Msg of
WM_LBUTTONDOWN, WM_LBUTTONUP:
begin
countClick := countClick + 1;
Description := Message.Msg;
end;
else
inherited;
end;
end;
Двойной щелчок мышью: два WM_LBUTTONUP при одном WM_LBUTTONDOWN - как так?
Делая двойной щелчок в клиентской зоне я проверял какие приходят Message.Msg и получалось что одно WM_LBUTTONDOWN и два WM_LBUTTONUP. Почему?
1. WM_LBUTTONDOWN, который вы ловите.
2. WM_LBUTTONUP, который вы также ловите.
3. Должен был бы прийти второй WM_LBUTTONDOWN, но, поскольку он приходит сразу после предыдущего, он трансформируется системой в WM_LBUTTONDBLCLK, который НЕ обрабатывается вашей оконной процедурой, потому вы его и не видите.
4. WM_LBUTTONUP, который никто не отменял после второго щелчка.
Вот и все.