PChar ist der Windowsstandard für Strings. Diese werden automatisch bei #0 beendet. Im Vergleich dazu können Delphi-Strings #0 enthalten und speichern dafür die Länge an anderer Stelle. Da Dein String #0 enthält und Du den auch PChar trimmst wird aus (string)
'bla'+#0+'b'+#0+'b'+#0+'b'+#0+'b'+#0+'b'+#0 nur noch (Pchar)
'bla'#0.
...
...