..it's the way Delphi Action works. Some "buttons" uses Action to monitor things, well if Action on Idle event performs some code this keeps happening taking CPU usage just like you have code performed in an infinite loop.. no much you can do except like you said, dont use that button.