Thema: Delphi TStringList lebt ewig!!

Einzelnen Beitrag anzeigen

Benedikt1983

Registriert seit: 12. Dez 2003
37 Beiträge
 
#1

TStringList lebt ewig!!

  Alt 30. Mär 2006, 21:53
Hallo zusammen!

Ich habe ein Problem mit einer Stringlist, die als Feld folgenden records definiert ist:

Delphi-Quellcode:
TQuestion = record
    Question: WideString;
    Answer: record
      Words: TStringList; // <- da ist sie!
      Number: Real;
    end;
    AnswerType: TAnswerType;
    Difficulty: Integer;
  end;
Es gibt eine Routine InitializeQuestion, die Standard-Werte einsetzt und sie StringListe erzeugt:

Delphi-Quellcode:
procedure TDlgQuestion.InitializeQuestion;
begin
  Question.Question := '';
  Question.Answer.Number := 0;
  Question.Answer.Words := TStringList.Create;
  Question.AnswerType := atSentence;
  Question.Difficulty := 70;
end;
Wenn Question.AnswerType auf einen anderen Wert geändert wird, dann soll - falls die Liste nicht gebraucht wird - diese freigegeben werden.

Delphi-Quellcode:
Question.AnswerType := AnswerType;
  if (Question.AnswerType = atNumber) then
    if Assigned(Question.Answer.Words) then
      Question.Answer.Words.Free;
Soweit so klar. Aber nach dem Aufruf von Question.Answer.Words.Free; kann man die StringListe lustig weiter verwenden... Sie exisiert noch! Aber warum??? Sie sollte doch

Was muss ich machen?

Vielen Dank
bene
  Mit Zitat antworten Zitat