Der Vorschlag klingt sehr plausibel; hatte aus diesem Grund auch mal die Problemzeile (TObjectList.Create) in die Execute-Methode gepackt, um den zu frühen Zugriff der Execute-Methode zu verhindern, welches jedoch auch keine Besserung ergab.
Mein Konstrukt sah dann so aus:
Delphi-Quellcode:
constructor TCalendarThread.Create;
begin
inherited Create(True);
Resume; //### #<---nun kracht es hier # ###
end;
[...]
procedure TCalendarThread.Execute;
var s:TCDate;
begin
self.CDateList:=TObjectList.Create; //### #Problemstelle# ###
while not Terminated do begin
s:=TCDate.Create; //testobjekt hinzufügen
CDateList.Clear;
CDateList.Add(s);
end;
end;
Wie gesagt, ohne
MDI-Form keine Probleme, mit jedoch schon.
Nun probierte ich natürlich auch gezielt deine Methode aus,
Delphi-Quellcode:
constructor TCalendarThread.Create;
begin
inherited Create(True);
self.CDateList:=TObjectList.Create; //### #Problemstelle# ###
Resume;
end;
jedoch knallt es immernoch bei der markierten Stelle.