![]() |
TChart Unterschiede zwischen XE2 und XE7?
Hallo,
ich habe ein XE2-Projekt in dem in einem Thread ein Formular erzeugt wird welches ein TChart beinhaltet. Dieses Projekt läuft unter XE2 einwandfrei. Wenn ich das gleiche Projekt unter XE7 starte, wird beim Form.create(im Thread) eine Exception erzeugt. Nehme ich das TChart aus der Form raus, kann das Formular erzeugt werden. Hat jemand eine Idee woran das liegen kann? |
AW: TChart Unterschiede zwischen XE2 und XE7?
Zitat:
GUI und Threads ist nicht gut. Alle GUI-Aktionan (Formulare, ... TChart) müssen im Hauptthread der Anwendung erledigt werden. Die WinAPI (was hinter TForm/TChart letztendlich verwendet wird) ist Thread-Affine. Ein Handle ist immer nur im erzeugenden Thread gültig. Und da die VCL oft auch mal auf die TScreen oder TApplication-Instanz zugreift (die ja im Hauptthread erzeugt wurde) kracht es früher oder später wenn du versuchst ein Formular im Thread zu erzeugen und zu verwenden. |
AW: TChart Unterschiede zwischen XE2 und XE7?
Gültig sind diese Handle übeall im Programm, aber die VCL/Windows-Komponenten binden sich an den erzeugenden Thread, was vorallem darin endet, dass die Messages von diesem Thread verarbeitet werden müssen.
Ansonsten ist Vieles halt nicht threadsave und es gibt Synchronisationsprobleme, wenn man aus einem anderen Thread darauf zugreift. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz