¿Cómo puedo calcular una diferencia entre dos cadenas?

Quiero crear una función en Delphi que calcule diferentes niveles de dos cadenas. Si dos cadenas son iguales (ignorando mayúsculas y minúsculas), entonces debería devolver 0, pero si no son iguales, debe devolver el número de caracteres diferentes. Esta función puede ser muy útil para revisar la ortografía.

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

código de muestras:

<code>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
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta