I used Simian. http://www.harukizaemon.com/simian/
You can easily run it to find duplicate code. For instance:
simian-2.3.33 -ignoreCharacterCase+ -ignoreCurlyBraces+ %1
This is not special for Delphi, but it works.
Here is an example output:
Simian is not free unless used solely for non-commercial or evaluation purposes. {failOnDuplication=true, ignoreCharacterCase=true, ignoreCurlyBraces=true, ignoreIdentifierCase=true, ignoreModifiers=true, ignoreStringCase=true, threshold=6} Found 6 duplicate lines in the following files: Between lines 6386 and 6391 in c:\develop\Schedule.pas Between lines 6370 and 6375 in c:\develop\Schedule.pas Found 6 duplicate lines in the following files: Between lines 5229 and 5235 in c:\develop\Schedule.pas Between lines 5189 and 5195 in c:\develop\Schedule.pas Found 6 duplicate lines in the following files: Between lines 6892 and 6898 in c:\develop\Schedule.pas Between lines 6418 and 6423 in c:\develop\Schedule.pas Between lines 6402 and 6407 in c:\develop\Schedule.pas Between lines 6354 and 6359 in c:\develop\Schedule.pas Between lines 6338 and 6343 in c:\develop\Schedule.pas Found 27 duplicate lines in the following files: Between lines 2995 and 3022 in c:\develop\Schedule.pas Between lines 3035 and 3062 in c:\develop\Schedule.pas
source share