![]() |
Delphi 10.3, TeeChart & Android
Hallo!
Ich habe folgendes Problem. In meiner App verwendet ich die Komponente TeeChart (Lite-Version). Nach der Umstellung auf Delphi 10.3 erscheint beim Ausführen der App unter Android die Fehlermeldung „OpenGL Kontext für „eglMakeCurrent“ kann nicht erstellt werden.“ Danke im voraus für Eure Hilfe |
AW: Delphi 10.3, TeeChart & Android
Hallo,
hier lese ich ![]() when OpenGL is enabled Also kann man das auch abschalten. |
AW: Delphi 10.3, TeeChart & Android
Ich glaube Delphi nutzt bei Android generell zum Zeichnen seines Fensters OpenGL. Dann kann man OpenGL nicht so einfach deaktivieren. OpenGL ist auch nicht das Problem. Beim Debugging habe ich festgestellt, das die Klasse TContextAndroid nicht korrekt freigegeben wird, wenn man die TeeChart-Komponente verwendet. Da das Surface (EGLSurface) nur einmal für ein Fenster existieren kann, kann es nicht nochmal erzeugt werden. Innerhalb der TeeChart-Komponente muss eine Zeiger auf die Klasse TContextAndroid gespeichert sein. Die Freigabe von Objekten erfolgt bei Android über Referenzzählung.
|
AW: Delphi 10.3, TeeChart & Android
Ich kann diesen Fehler bestätigen - habe aber auch bisher keine Lösung!
Mit Delphi 10.3 verursachen Delphi Formulare mit der TChart Komponente und einem einfachen Linien- oder Balkendiagramm bei mir auf älteren Android Versionen (getestet mit Android 4.2.2 und 5.01) zunächst die Fehlermeldung: "Rendern der Szene für 'TContextAndroid' kann nicht begonnen werden" gefolgt von: "OpenGL-Kontext für 'eglMakeCurrent' kann nicht erstellt werden". Auf Android 6.0.1 habe ich keine derartigen Fehlermeldungen. Android 7 und 8 habe ich bisher nicht getestet. Wenn man das Form verlässt (ohne Free) und ein zweites Mal mit Show aufruft, gibt es keine Fehlermeldungen mehr und alles funktioniert wieder normal. Bei älteren Delphi Versionen (getestet mit 10.1.2 und 10.2.3) habe ich diese Fehler nicht - aber sie hindern mich daran, nun Delphi 10.3 für meine Apps zu nutzen ... |
AW: Delphi 10.3, TeeChart & Android
Moderatoren!:
Diesen Beitrag bitte löschen. Posting in falschen Thread!!! |
AW: Delphi 10.3, TeeChart & Android
Ich kann deine Erkenntnis nur zum Teil bestätigen. Auf Android 6.x tritt zwar keine Exception auf, aber die App funktioniert trotzdem nicht korrekt. Beim Drehen des Smartphones oder Tab (Landscape oder Portait) wird die App nicht richtig gezeichnet.
|
AW: Delphi 10.3, TeeChart & Android
@DualCoreCpu
Stimmt! Das war mir bisher noch gar nicht aufgefallen! Ein Form mit TChart wird bei mir unter Android 6.0.1 zunächst im Portrait-Modus richtig angezeigt. Nach Drehen in den Landscape-Modus sieht es bei mir auch noch gut aus, aber beim Zurückdrehen in den Portrait-Modus wird anscheinend der Landscape-Modus beibehalten und der untere Teil des Bildschirms bleibt schwarz. Nach erneutem Show ist die Anzeige im Portrait-Modus zunächst wieder ok, aber nach Drehung in den Landscape-Modus ist dann dort die rechte Bildschirmhälfte schwarz ... Sehr schade, dass man bei jeder neuen Delphi-Version über irgendwelchen Mist stolpert und sie dann doch wieder nicht einsetzen kann! |
AW: Delphi 10.3, TeeChart & Android
Ich benutze TChart in Forms/Panels mit Align=Client. Seit 10.3 werden Grafiken beim Drehen (nur Android) nicht mehr richtig gezeichnet und verzerrt ggf. die Formgröße (Teil bleibt schwarz). Als Workaround blende ich bei OnResize der Hauptform alles aus und wieder ein. Dann wird es wieder richtig angezeigt. Nicht schön, aber was besseres habe ich nicht gefunden.
Delphi-Quellcode:
procedure TMainForm.FormResize(Sender:TObject) ;
begin if TOSVersion.Platform = pfAndroid then begin { Ein-/ausblenden !!! Sonst werden Arbeitsblätter mit Grafiken bei Drehung falsch angezeigt !!! } Visible := False ; Visible := True ; end ; end ; |
AW: Delphi 10.3, TeeChart & Android
@Thomas
Danke für den guten Tipp. Habe ihn ausprobiert und das funktioniert auch bei mir! |
AW: Delphi 10.3, TeeChart & Android
Zitat:
Hattest nie Probleme mit OnResize ? Ich hatte in den frühen Tagen (XE6 oder so) mal Fälle wo OnResize nicht gefeuert wurde, seitdem benutze ich auf mobilen Plattformen die OrientationChange Events. Edit: Danke für den Tipp auch nochmal von mir. Hatte tatsächlich auch bisher nicht gesehene Exceptions bei den Charts. Mit dem OnResize ist es auch bei mir wieder OK :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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 by Thomas Breitkreuz