Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#1

Seltsames Verhalten von Delphi (String wird "freigegebe

  Alt 26. Okt 2004, 16:54
Hi,

ich habe heute ein mehr oder weniger großes Problem.

Ich habe eine Funktion, die einen Parameter "const FileName: String" hat. Der String ist nun eigentlich unveränderlich. (Die Funktion öffnet die Datei "FileName" in einem SynEdit)

Nach einer Zuweisung an einen Setter einer Klasse ist der String scheinbar "freigegeben", da das Ende abgeschnitten ist und danach Wirre Zeichen folgen.

Ich habe mit meiner Trial von Techsmith Camtasia mal ein Video dazu angefertigt.
www.mirage228.net/private/string_fehler.avi

Wie man sieht, verändert sich der String eindeutig nach der Zuweisung an "FDocuments[CreatePos].FileName".
Das Problem ist erst aufgetaucht, als ich diesen Code Abschnitt hinzugefügt habe:
Delphi-Quellcode:
    TmpItem := ProjectGroup.FindFile(FileName);
    if (Assigned(TmpItem)) then
    begin
      FreeAndNil(FDocuments[CreatePos].FProjectItem);
      FDocuments[CreatePos].FProjectItem := TmpItem;
    end;
Eigentlich passiert da nichts "schlimmes".

Die Verwendung von "const FileName: WideString" hilft zwar dagegen, da WideStrings keiner Referenzzählung unterliegen, aber es muss doch auch mit "normalen" Strings funktionieren ?!

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat