Da die
VCL diese "blöden" globalen Variablen Application und Screen hat, ist es mit Threads generell schwer und auch so weis man nicht, wo einem wann etwas dazwischenfunkt. Wenn es das Konzept erlaubt, würde ich eher auf die
VCL verzichten, was wiederum auch gleich gegen Delphi spricht.
Ich habe im Anhang mal eine Lösung ohne Threads. Die funktioniert erstmal. Aber man weis ja nie.....
Edit1: Was nicht bedeutet, dass du ohne Threads arbeiten sollst. Aber die formulare sollte man da raushalten.
Edit2:
Zitat von
Tahtu:
Zitat von
r2c2:
mehrere TApplicatioon-Instanzen in einem Prozess wird die
VCL wohl nicht erlauben.
Das genau war aber meine Frage.
Wenn das deine Frage ist? Jein!
Du kannst bestimmt mehrere Instanzen von TApplication starten. Das Problem liegt dann aber darin, dass ein neues Formular aus der
Unit Forms sich immer nur bei der einen Instanz von TApplication anmeldet. Und das ist die Instanz, welche global in der
Unit Forms existiert.
Und inwieweit das ganze bei Veränderungen mit der Instanz von TScreen kollidiert mag ich nicht vorraussagen.
==> Du musst die
VCL neu erfinden (vielleicht ist ja der
General schon so weit mit seinen nonVCLControls)
Edit3 (naja, meine Gedanken kommen heut etwas gekleckert):
Noch ein Problem von
VCL-Formularen ist die WndProc. Die einzelnen WndProcs werden nämlich auch zentral (also global) verwaltet, was die Verteilung in mehrere Threads erschwert. Ich hatte
hier auch schonmal versucht, Formulare in mehrere Threads zu verteilen. Wovon ich dann abgekommen bin.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.