Вы просто присваиваете одну переменную другой и позволяете компилятору Delphi выполнить все преобразования за вас:
var
p: PAnsiChar;
s: string;
w: WideString;
....
s := p;
w := p;
Если вы хотите преобразовать в другом направлении и ограничить обсуждение Delphi 7, для которогоChar, PChar, string - это все типы данных ANSI, которые вы использовали бы следующим образом:
PAnsiChar(s);
PAnsiChar(AnsiString(w));
Преобразования необходимы при движении в этом направлении, а в случае WideString данные должны быть явно преобразованы из Unicode вANSI перед запросом указателя строки C с нулевым символом в конце.