Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TChart Unterschiede zwischen XE2 und XE7?

  Alt 9. Feb 2016, 18:42
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?
Ganz einfach: Du hast einfach nur verdammt viel Glück gehabt das deine Lösung unter XE2 funktionierte.

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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat