Я пытаюсь создать пользовательскую кнопку из компонента TPanel. Для этого я предоставил переопределение для событий onmousedown и onmouseup (чтобы сделать некоторые чертежи), и я использовал событие onclick для обработки кликов.Не удается поймать все клики при использовании onmousedown, onmouseup и событий click
К сожалению, если я быстро нажму на свою панель, каждый другой щелчок «потерян», но я не могу понять, почему.
Даже самые легкие примеры не подходят в этом отношении. Я создал новое приложение VCL, добавил ListBox, одну панель, и реализованы следующие события:
procedure TForm1.Panel1Click(Sender: TObject);
begin
listbox1.Items.Add('click');
end;
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
listbox1.Items.Add('mouse down');
end;
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
listbox1.Items.Add('mouse up');
end;
Результат выглядит следующим образом:
mouse down
click
mouse up
mouse down
mouse up
... и так далее Каждый второй щелчок игнорируется , но я понятия не имею, почему.
Может кто-нибудь объяснить это, пожалуйста?