А что мешает просто заблокировать кнопку после нажатия, на некоторое время? Вот скажем так устроит?
Код:
procedure TForm24.Button1Click(Sender: TObject);
begin
Button1.Enabled := False;
Timer1.Interval := 3000;
Timer1.Enabled := True;
end;
procedure TForm24.Timer1Timer(Sender: TObject);
begin
Button1.Enabled := True;
Timer1.Enabled := False;
end;