【问题标题】:OnClick event firing speed for components组件的 OnClick 事件触发速度
【发布时间】:2010-12-14 20:43:13
【问题描述】:

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

这在我单击的速度将触发 OnClick 事件时没有错误的情况下按需要运行。

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

如果我点击非常缓慢,它每次都会触发,但如果我以常规速度点击,它似乎只会触发每第二次点击。

如何确保每次都触发 OnClick 事件?

【问题讨论】:

    标签: delphi events components onclick delphi-7


    【解决方案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;
    

    【讨论】:

    • 也许一些解释可能会有所帮助。我怀疑 OnClick 没有注册,因为它被认为是双击。鼠标向上不依赖于点击解释,所以有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2016-07-21
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2010-10-21
    • 2020-01-31
    相关资源
    最近更新 更多