es wird ja ein PChar übergeben der nicht vorhandene Inhalt als in eine interne 0-terminierte variable kopiert die dann
imho nicht von einem Nil unterschieden werden kann.
ich verstehe das ganze so:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
S: String;
P1, P2, P3: Pointer;
A,B,C:String;
begin
S := '';
P1 := PChar('');
P2 := Pointer(S);
P3 := nil;
A := PChar(P1);
B := PChar(P2);
C := PChar(P3);
Showmessage(IntToStr(Length(A)) + ' - ' +IntToStr(Length(B)) + ' - ' + IntToStr(Length(C)));
end;