Zitat von
MStoll:
Ich greife mit dem Hauptthread gar nicht auf die Formulare zu. Ich wollte sie mit dem Hintergrund erstellen, modifizieren, anzeigen und auch wieder freigeben. Das ganze sollte automatisch geschehen. Der Benutzer sieht das Hauptformular mit dem
VCL-Thread meistens gar nicht --> Also keine Klicks etc.
Der Hintergrundthread soll ganz unabhängig arbeiten (Konfiguration einlesen, alte Formulare freigeben, erforderliche Formulare ermitteln, Daten lesen, verarbeiten, Formulare erstellen, Daten anzeigen). D.h. da muss eigentlich nichts synchronisiert werden.
Jedes Formular hat so einen eigenen Thread laufen, und jeder Thread der da so durch die Gegend läuft hat damit erst mal nix zu tun.
Das Formular muss sich ja auch mit anderen Dingen rungsherum noch absprechen (Fensterhandler etc.).
Also jede Aktion auf ein Formular muss synchronisiert werden.
Aber mach doch einfach folgendes:
In den Formularen lass einen Timer laufen, der alle x-Millisekunden die Daten auf dem Formular aktualisiert.
Die Daten lässt du vom Thread in einem Objekt bereitstellen.
Also bildhaft gesprochen: Der Daten-Beschaffungs-Thread macht Daten-Beschaffung und speichert dies in einem Objekt und der Anzeige-Thread (also das Formular) kümmert sich auch nur um die Anzeige
cu