Ich weis nicht, ob es für dich noch sinnvoll ist eine "einfache"
DLL einzusetzen. Vielleicht geht es schon mehr Richtung
ActiveX. Das nur als Hinweis. Es könnte durchaus sein, dass sich derzeit nach der Lösung eines Problems zwei neue auftun. Klassen in
DLL ist schon so eine Sache, Klassen mit sichtbaren Elementen noch mehr.
Zu deinem aktuellen Problem. Es gibt verschiedene Varianten. Du kannst auf synchronize verzichten und mit Messages, Critical Sections etc. arbeiten. Das bedarf aber einer gewissen Umstellung deines Programms.
Mir ist aber grad etwas eingefallen, wir wir synchronize in einer
DLL zum Leben erwecken:
1. Application.Handle umbiegen (so wie du es gemacht hast)
2. im Hauptprogramm TApplicationEvents einsetzen und auf onIdle und onMessage (bei onMessage, nur bei Message=WM_Null) reagieren
3. Bei diesen beiden Ereignissen eine funktion der
DLL aufrufen, die wiederum aus der
Unit Classes CheckSynchronize innerhalb der
DLL aufruft.
Vielleicht klappt das ja.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.