Jak mogę obliczyć różnicę między dwoma ciągami?

Chcę utworzyć funkcję w Delphi, która oblicza różne poziomy dwóch łańcuchów. Jeśli dwa ciągi są równe (ignorując wielkość liter), to powinno zwracać 0, ale jeśli nie są równe, powinno zwracać liczbę różnych znaków. Ta funkcja może być bardzo przydatna do sprawdzania pisowni.

function GetDiffStringLevel(S1,S2:string):Integer;
begin
  if SameText(S1,S2) then Exit(0);
  // i want get different chars count
end

kod próbek:

Diff:=GetDiffStringLevel('Hello','Hello');// Diff:=0;
Diff:=GetDiffStringLevel('Hello','2Hello');// Diff:=1;
Diff:=GetDiffStringLevel('Hello','H2ello');// Diff:=1;
Diff:=GetDiffStringLevel('Hello','Hello W');// Diff:=2;
Diff:=GetDiffStringLevel('Hello','World');// Diff:=6; or 5