Hallo miteinander,
Ich habe ein TServerClientThread geschrieben, in dem ich ein Formular öffne um zu sehen was im
Inneren des Threads so abläuft.
Dazu habe ich am Anfang von ClientExecute das Formular mit 'new Form1' erzeugt. im weiteren
Quelltext der Funktion werden Indormationen in das Formular geschrieben. Dazu muss eine
eigene Funktion 'VisualForm1' bereitgestellt werden, die über Syncronisize aufgerufen wird.
Am Ende von 'ClientExecute' wird das Formular deletet und auf NULL gesetzt. Dies läuft auch recht
gut, nur wenn ich meinen Client schliesse, wird mein Thread auch automatisch geschlossen. Dabei
entsteht in der Funktion 'VisualForm1' eine Zugriffsverletzung. Ich habe dann eine Überprüfung
eingebaut, die kontrolliert, ob Form1 == NULL ist. Da wird erkannt, das Form1 nicht NULL ist, aber
beim Zugriff auf das Formular (bzw. auf ein MemoFeld) entsteht die Zugriffsverletzung.
Warum funktioniert das nicht richtig?
MfG Olaf
Ich habe ein TServerClientThread geschrieben, in dem ich ein Formular öffne um zu sehen was im
Inneren des Threads so abläuft.
Dazu habe ich am Anfang von ClientExecute das Formular mit 'new Form1' erzeugt. im weiteren
Quelltext der Funktion werden Indormationen in das Formular geschrieben. Dazu muss eine
eigene Funktion 'VisualForm1' bereitgestellt werden, die über Syncronisize aufgerufen wird.
Am Ende von 'ClientExecute' wird das Formular deletet und auf NULL gesetzt. Dies läuft auch recht
gut, nur wenn ich meinen Client schliesse, wird mein Thread auch automatisch geschlossen. Dabei
entsteht in der Funktion 'VisualForm1' eine Zugriffsverletzung. Ich habe dann eine Überprüfung
eingebaut, die kontrolliert, ob Form1 == NULL ist. Da wird erkannt, das Form1 nicht NULL ist, aber
beim Zugriff auf das Formular (bzw. auf ein MemoFeld) entsteht die Zugriffsverletzung.
Warum funktioniert das nicht richtig?
MfG Olaf
Comment