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