Bei dir (<=2007) ist String ja ein Alias für AnsiString, also im Prinzip stimmt es schon.
Wobei ich eher mit der anderen Richtung Probleme hatte, wo mir lso statt String das AnsiString angezeigt/zurückgegeben wurde.
Was macht dein Delphi denn hier?
Delphi-Quellcode:
type
TAnsiString = type AnsiString;
TON_XYZ = Procedure(S: TAnsiString): TAnsiString of Object;
Das "type" besagt dort, daß TAnsiString kein Alias, sondern ein eigener/neuer Type ist.
TypeInfo(AnsiString) = TypeInfo(String)
TypeInfo(AnsiString) <> TypeInfo(TAnsiString)
TypeInfo(String) <> TypeInfo(TAnsiString)