Из того, что вы описали, я полагаю, что вы используете свою скоростную кнопку с GroupIndex <> 0, но без других кнопок в той же группе, или, по крайней мере, не работаете как RadioButtons (AllowAllUp True).
У вас есть только 1 событие onClick для нажатия кнопки, но что делать, зависит от состояния кнопки, если она имеет GroupIndex.
Итак, вы должны проверить, чтобы Down был False в вашем обработчике события onClick, так как Down обновляется до запуска обработчика onClick.
например:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
with Sender as TSpeedButton do
begin
if Down then
showmessage('pressing')
else
showmessage('unpressing');
end;
end;