Hallo,
ich starte einen Thread wie folgt:
Delphi-Quellcode:
type
TCapture = class(TThread)
...
var
Capture: TCapture;
...
Capture := TCapture.Create(...) //1.
...
Capture.Terminate; //2.
...
Capture.Free; //3.
Jetzt der Sachverhalt soweit ich ihn verstehe (bitte um Korrektur, falls ich falsch liege).
-Die Variable Capture ist ja wohl ein Pointer. Vor 1. ist der auf nil gesetzt.
-Bei 1. wird eine TCapture Datenstruktur erzeugt und Capture zeigt dann darauf.
-Bei 2. wird der Thread gestoppt, aber die Datenstruktur lebt noch.
Jetzt meine Frage:
-Bei 3. wird nach meinem Verständnis die Datenstruktur wieder vernichtet, d.h. eigentlich wird nur der entsprechende Speicherplatz wieder als frei deklariert.
Nach Capture.Free sehe ich im Debugger aber immernoch meine Datenstruktur in Capture, d.h. Capture ist in keinster Weise nil. Hat das seine Richtigkeit? Muss ich den selber auf nil setzen, wenn er ungültig ist?