Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: ListView und Data: mit Strings arbeiten

  Alt 28. Feb 2007, 19:39
Hi,
dein Pointer wird sicherlich nur lokal (auf dem Stack) abgelegt. Delphi weiß hier einfach nicht, dass Du den länger benötigst, mit dem Ende der Methode, indem dieser Aufruf statt findet wird auch dieser Pointer auf nichts sinnvolles mehr zeigen. Du solltest Dir lieber etwas Speicher auf dem Heap reservieren. Dazu kannst Du einfach mit GetMem Speicher holen und als String behandeln.

Delphi-Quellcode:
var buffer: ^String;
begin
  GetMem(buffer, length(Folder + SearchRec.Name));
  buffer^ := Folder + SearchRec.Name;
...
end;
Nicht vergessen, das was Du so auf dem Heap ablegst, musst Du auch selbst wieder von dort entfernen!

Gruß Der Unwissende

[add]
ansonsten hat der Neutral General recht, Du musst natürlich den String wieder dereferenzieren!
[/add]
  Mit Zitat antworten Zitat