Para aclarar un poco más lo anterior, me será más fácil recordar qué significa este bloque de código:
Código:
Case CaracCade (S) Of
'A' : Result := 10;
'B' : Result := 9;
'C' : Result := 8;
Else
Result := 0;
End;
qué este otro:
Código:
Result := 0;
if S <> '' then
case S[1] of
'A': Result := 10;
'B': Result := 9;
'C': Result := 8;
end;
Superficialmente parece sólo una cuestión de enfoque. Pero con el primer bloque no tengo que hacerme la pregunta "Por qué se evalúa si S es diferente de cadena vacía", sólo veo que se toma el primer carácter de la cadena. Es decir, es una cuestión mucho más importante: simplicidad analítica.
Un abrazo.
Al González

.