On 29/10/2009, Mattias Gaertner <nc-gaert...@netcologne.de> wrote: > > > Text:=strnew(PChar(s));
You read my mind. I was going to ask if it's ok to cast a PString to a PChar. Trying what you suggested, I get the following compiler error. project1.lpr(20,11) Error: Incompatible types: got "PString" expected "PChar" Changing my test code to the following solves the compiler error, but now heaptrc reports that I have two memory leaks. -------------------------- var Text: PChar; procedure AppendText(const AText: string); var s: string; begin s := Text + AText; StrDispose(Text); Text := PChar(NewStr(s)); end; var t: string; begin t := 'hello'; writeln('t=', t); Text := PChar(t); writeln('Text=', Text); AppendText(' world'); writeln('Text=', Text); end. --------------------------- And the console output: $ ./project1 t=hello Text=hello Text=P8 Heap dump by heaptrc unit 21 memory blocks allocated : 616/640 19 memory blocks freed : 580/600 2 unfreed memory blocks : 36 True heap size : 131072 True free heap : 130720 Should be : 130776 Call trace for block $00007F42BFFFB3E0 size 8 $0000000000400366 line 30 of project1.lpr $0000000000400178 Call trace for block $00007F42C0003840 size 28 $0000000000400366 line 30 of project1.lpr $0000000000400178 Line 30 being the call to AppendText() -- Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net/fpgui/ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal