Are there any tools that can determine if a function/procedure/method/entire class is used?
I've seen tools that can help a knowledgeable developer track down unused fragments of code (most are for languages other than Delphi) but most have a steep learning curve and/or require considerable digging to determine if a code fragment is used or not.
Delphi's smart linker purportedly does this to reduce the size of the final executable. Unfortunately what little information is given on the smart linker doesn't indicate a way to retrieve what was culled from the hurd.
Admittedly, even if it is possible to find out what the smart linker is eliminating it may be very conservative with its culling.
Maybe CodeHealer could help you with unused code
Although clumsy and not global, you can examine the source code for the dots in the margin, as shown below. These are lines on which you can set breakpoints because the code hasn't been deadcode eliminated.
This happens, I believe, at the procedure level. I don't know a way to determine this at a less coarse level.