2009-11-10 98 views
1

我在表单上使用了两个TButton组件作为Plus和Minus。点击时,他们将添加或减去一个整数,然后显示在TLabel上。组件的OnClick事件触发速度

这个功能正如我所希望点击的速度会触发OnClick事件而没有错误。

我用PNGButton组件替换了按钮,这样我就可以让它们看起来更漂亮。除了每次单击组件时,OnClick事件似乎都不会触发,所有内容仍然可以像以前一样工作。我还用一个简单的TImage组件测试了这一点,结果是一样的。

如果我点击很慢它每次都会触发,但是如果我按照常规步速点击,它似乎只会触发每一秒点击。

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

回答

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; 
+3

或许有些解释可能会有帮助。我怀疑OnClick没有注册,因为它被认为是双击。鼠标向上不依赖于点击解释,所以很有用。 – mj2008 2010-02-15 16:13:35