1

我在一个用作 Plus 和 Minus 的表单上使用了两个 TButton 组件。当点击它们时,它们会添加或减去一个整数,然后显示在一个 TLabel 上。

在我点击的速度将触发 OnClick 事件时,这可以正常工作。

我已经用PNGButton组件替换了按钮,这样我可以让它们看起来更漂亮。一切仍然像以前一样工作,只是每次单击组件时似乎都没有触发 OnClick 事件。我也用一个简单的 TImage 组件对此进行了测试,结果是一样的。

如果我点击得很慢,它每次都会触发,但如果我以正常的速度点击,它似乎只会触发每第二次点击。

我该怎么做才能确保每次都触发 OnClick 事件?

4

1 回答 1

1

不要使用 OnClick 事件,而是使用 OnMouseUp 事件:

procedure TForm.btnMinusMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Self.NumSelected > 0 then begin
    Self.NumSelected := Self.NumSelected - 1;
    Self.UpdateLabel;
  end;
end;
于 2009-11-10T01:13:25.390 回答