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