Zitat von
Apollonius:
Du denkst deutlich zu kompliziert.
DAS hat bisher noch keiner zu mir gesagt, eher das genaue Gegenteil
Zitat von
Apollonius:
Erzeuge fList nicht im Konstruktor von TCRCThread, sondern setze in TCRCList.StartCRC einfach fThread.fList auf Self. Das geht allerdings nur, wenn bei der Zerstörung der CRCList auch der Thread beendet wird, was nach deiner Beschreibung aber vermutlich der Fall ist.
Aber Du hast mit dem kompliziert Denken eindeutig recht.
Meine Standard-Anwort : Warum hab' ich nicht dran gedacht....
Zitat von
Apollonius:
Um das Problem mit dem nicht deklarierten Bezeichner zu lösen, musst du TCRCList "forward-declaren" (Was ist das korrekte Verb dazu?). Dazu fügst du einfach vor die Deklaration von TCRCThread noch TCRCList = class; ein (ohne Vorfahrenliste!).
Zitat von
DeddyH:
Delphi-Quellcode:
type TCRCList = class; // <--
type TCRCThread = class(TObject)
private
fList : TCRCList; // <--
[...]
end;
type TCRCList = class(TObject)
private
fThread : TCRCThread; // <--
[...]
end;
Kann mir jemand bitte erklären, warum der Quelltext von DeddyH bei mir den Fehler
[Pascal Error] uType.pas(108): E2086 Type 'TCRCList' is not yet completely defined
bringt, aber folgendes (nur ein type am Anfang) funktioniert
Delphi-Quellcode:
type
TCRCList = class; // <--
TCRCThread = class(TObject)
private
fList : TCRCList; // <--
[...]
end;
TCRCList = class(TObject)
private
fThread : TCRCThread; // <--
[...]
end;
Achja, beinahe hätt' ich's vergessen: Danke an alle und
wieder mal