Weil ich überhaupt keinen Zugriff mehr auf das Thread-Objekt habe. Das gebe ich der
DLL ja nicht mit.
Also nochmal kurz eine Übersicht wie das Programm funktioniert:
Auf dem Hauptprogramm sind diverse
VCL Komponenten (Eingabefelder, DropDownfelder ...) diese sind alle in Klassen gekapselt. Die Klassen implementieren ein Interface (IBasic). Der Programmbenutzer kann diese Eingabefelder alle bearbeiten.
Es können aber auch mehrere Threads gestartet werden, welche in der Execute-Methode eine
DLL Laden und eine Funktion aufrufen. Dabei wird der Funktion in der
DLL das Interface mit übergeben, worüber ich in der
DLL dann z.b. Werte aus den Eingabefeldern lesen aber auch Werte schreiben kann. D.h. alles was in der
DLL geschieht, ist in einem eigenen Thread.
Problematisch wird es, wenn die Funktion in der
DLL nun einen Wert von einem Eingabefeld lesen will, der Benutzer dies aber gerade ändert.