我正在尝试从 TPanel 组件中创建一个自定义按钮。为此,我为 onmousedown 和 onmouseup 事件提供了覆盖(以进行一些绘图),并且我使用了 onclick 事件来处理点击。
不幸的是,如果我快速点击我的面板,其他所有点击都会“丢失”,但我不知道为什么。
在这方面,即使是最简单的例子也失败了。我创建了一个新的 VCL 应用程序,添加了一个列表框、一个面板,并实现了如下事件:
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
等等......每一次点击都会被忽略,但我不知道为什么。
有人可以解释一下吗?