Zum Timer und Klicks igniorieren ...
Das mit dem Disablen den Buttons für 'ne gewisse Zeit erfordert ja einen zusätzlichen Timer, welcher den Button wieder aktiviert.
Sowas ignoriert z.B. für 1 Sekunde (1000ms) alle Klicks:
Einfach die Zeit des letzten Klicks speichern und dann abbrechen, bei zu geringer Zeit zum letzten Klick.
Delphi-Quellcode:
Procedure TForm1.Button1Click(...
Begin
If GetTickCount - TButton(Self).Tag < 1000 Then Begin
TButton(Self).Tag := GetTickCount;
Exit;
End Else TButton(Self).Tag := GetTickCount;
... // hier dein Code
End;
Und da das TAG-Item der Objekte dem Programmierer ur freien Verfügung steht, bietet es sich hierfür schön an (solange es nicht für was anderes verwendet wird).
PS: wenn Windows schon 49,71... Tage lief und noch nicht auf den Button gecklickt wurde, oder wenn das letzte mal vor 49,71... Tagen geklickt wurde, dann wird der Klick zwar auch ignoriert, aber der eine Klick ist wohl zu verkraften (bei den Laufzeiten).