Скорость срабатывания события OnClick для компонентов - PullRequest
1 голос
/ 10 ноября 2009

Я использовал два компонента TButton в форме, которая функционировала как Плюс и Минус. При щелчке они добавляли или вычитали целое число, которое затем отображалось бы в TLabel.

Это работало по желанию, когда скорость, с которой я нажимал, запускала событие OnClick без ошибок.

Я заменил кнопки компонентами PNGButton , чтобы они выглядели более красиво. Все по-прежнему работает, как и раньше, за исключением того, что событие OnClick, похоже, не срабатывает каждый раз, когда я нажимаю на компоненты. Я также протестировал это с простым компонентом TImage, и результат тот же.

Если я нажму очень медленно , он будет срабатывать каждый раз, но если я щелкаю в обычном темпе, он срабатывает только при каждом втором щелчке.

Что я могу сделать, чтобы убедиться, что событие OnClick вызывается каждый раз?

1 Ответ

1 голос
/ 10 ноября 2009

Вместо использования события 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;
...