Muchas veces deshabilitando botones no funciona como "anti-rebote", pues si lo que hace dentro del botón es un proceso que no devuelve el control al sistema (Application.ProcessMessages), recien cuando termine este proceso se ejecutará el otro click por lo que tendras muchas impresiones (A la larga nunca sabrás si es lo que quizo el usuario)
Como prueba básica lo manejaría con una bandera:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
{$J+}
const
bPrinting: Boolean = False;
begin
if not bPrinting then
try
bPrinting := True;
QuickReport.Print;
finally
Application.ProcessMessages; bPrinting := False;
end;
{$J-}
end;
Saludos!