![]() |
Delphi Rio (10.3): nichts geht mehr?
Ich kämpfe seit einer Woche mit der Umstellung eines Projektes auf Rio, aber werde hier wohl aufgeben müssen.
Jeden Tag taucht ein neuer Fehler in Rio auf und Emba hat meiner Meinung nach nicht umsonst noch keine Beispiel-Projekte veröffentlicht, denn einige der Fehler werden dort definitiv auch auftauchen. Hier mal eine kleine Übersicht meiner bisherigen Erfahrungen: a) FMX.TWebBrowser (mindestens unter Windows): Projekt lässt sich nicht mehr starten, wenn man in der Main-Form nicht die Standard-Border-Icons verwendet hat (es hilft nur zwei Zeilen in der FMX.WebBrowser.pas zu deaktivieren) b) Anzeigen unter Android Lollipop: In der Anwendung aktualisiert sich die Anzeige nach der ersten Initialisierung nicht mehr, man kann klicken was man will (das Klicken wird aber registriert, das sieht man in den Logfiles), unter Android 8.0 funktioniert es sauber; leider sind viele Tablet noch auf Lollipop (insgesamt rund 18% der Android Geräte, KitKat verlange ich ja gar nicht); c) FMX.TMediaPlayer unter Android: stop-Methode funktioniert nicht mehr, einmal gestartet läuft ein Song bis zum bitteren Ende, auch wenn man mittlerweile einen zweiten gestartet hat (welcher dann im Chor läuft) d) BluetoothLE unter Android: findet bei DiscoverDevices keine Devices mehr; funktioniert also hier gar nicht mehr; Für die ersten drei Probleme habe ich auch schon Issues mit Beispielprojekten bei Emba eingestellt. Alle vier Punkte habe ich auch erfolgreich in 10.2.3 nachgetestet, dort geht es noch. Nach aktuellem Stand werde ich daher entweder je nach Plattform mit 10.3 oder 10.2.3 arbeiten oder ganz auf 10.2.3 bleiben und dies wahrscheinlich dann bis 10.3.1 (da ich früher die Fixes nicht erwarte). Habt ihr auch diese Erfahrung gemacht oder bin ich da ein Einzelfall? Habt ihr Erfahrung wie lange Emba bei so gravierenden Bugs benötigt? |
AW: Delphi Rio (10.3): nichts geht mehr?
Servus,
ich kann einen Rest-Service beisteuern. Unter 10.2.3 gelingt der Zugriff sowohl mit dem Restdebugger als auch mit dem Programm, in 10.3 kommt eine Exception aus der Kernelbase.dll sowohl mit dem Restdebugger als auch mit dem Client. Ich muss mal mit dem Servicebetreiber reden und schauen wie ich das Emba in einem Bug mitteilen kann, weil das kein öffentlicher Service ist... Grüße |
AW: Delphi Rio (10.3): nichts geht mehr?
Irgendwie bin ich froh keine neue Version installieren zu müssen. Spart Geld und Nerven.:P
|
AW: Delphi Rio (10.3): nichts geht mehr?
Hallo Philipp,
hast du denn z.B. Probleme mit dem MobileSnippets/WebBrowser sample ? Habs gerade getestet, das funktioniert bei mir ganz akzeptabel unter Android, bei Win lädt es etwas lahm, aber Fehler bekomme ich nicht. Auch der Rest funktioniert noch fast wie vorher, mit zusätzlichen Permissions für Android halt, das war die größte Änderung. Wenn du in einem bestehenden Projekt Probleme hast hilft es die Teilfunktionen mal separat aufzudröseln und separat zu testen. Ich teste ob noch alles geht meist mit kleinen Samples oder den EMBT Demos.
Damit bin ich in den letzten Versionen sehr gut gefahren, auch wenn es manchmal viel Aufwand ist, aber es lohnt sich. Kannst du denn ein Problem genauer lokalisieren, so das man es testen könnte ? Rollo |
AW: Delphi Rio (10.3): nichts geht mehr?
Hallo Rollo,
ich habe für alle 4 Punkte jetzt Mini-Projekte beim Delphi-Support eingestellt (d.h. alle sauber reproduzierbar) und für das vierte Thema ist es sogar das BLEScanner-Beispiel von Emba selbst, welches unter Delphi 10.2.3 noch funzt und unter 10.3+Android nichts mehr findet. D.h. zur Fehlersuche habe ich alle Deine Punkte auch beachtet, teilweise war zum Erstellen der Mini-Projekte auch schon mal stundenlanges debuggen notwendig, weil wer kommt schon drauf, dass man die Border-Icons des Main-Forms nicht mehr anpassen darf, da sonst die Handles durcheinander kommen und die gesamte Initialisierung des Main-Forms nicht mehr gelingt (unter Windows). Bei dem Beispiel kann ich daher schon genau die (neuen) Zeilen im Delphi-Code benennen, die zum Problem führen. Windows geht noch in beiden Versionen aber dort gibt es dann das Problem das Windows seit dem October-Update die BLE-Pairings nicht mehr speichert, Delphi das Pairing aber weiter vorschreibt, obwohl es seit dem Anniversary-Update keine Rolle mehr unter Windows spielen dürfte (für BLE-Devices). Unter MacOS habe ich es auch noch nie zum Laufen bekommen, was aber an meinen Mac liegen kann. Das Aufräumen der bin/dcu-Files nehme ich mir auch mal zu Herzen, mache ich zu selten. Grüße, Philipp |
AW: Delphi Rio (10.3): nichts geht mehr?
Gibt es dafür QC-Einträge ?
Wenn ja könnte man es parallel checken. Beispielsweise BLE: Das OrginalBeispiel ExploreDevicesLE z.B. funktionier bei mir Out-of-the-box, habs gerade getestet, mit einem iMac. Oder versuchst du dich da an Windows-BLE ? Davon habe ich im Moment noch Abstand genommen, aber Android, iOS, iMac nutze ich intensiv, und es funktioniert noch bei mir. Zitat:
Rollo |
AW: Delphi Rio (10.3): nichts geht mehr?
Poste die QC-Einträge bitte, dann können die hochgewählt werden.
Sherlock |
AW: Delphi Rio (10.3): nichts geht mehr?
Anbei mal meine laufenden Issues, falls jemand hochwählen möchte:
a) FMX.TWebBrowser: ![]() Wobei dieser Issue sich relativ einfach fixen lässt, man muss nur zwei Zeilen in TWebBrowser auskommentieren b) Anzeigen unter Android Lollipop (Oreo keine Probleme): Da bin ich mir nicht sicher, ob beides das gleiche Problem ist oder es mehrere Probleme gibt: ![]() ![]() c) TMediaPlayer unter Android: ![]() Das ist mit Abstand der schlimmste Fehler, da TMediaPlayer damit unter Android gerade unbrauchbar ist. Ich habe in die FMX-Klassen noch nicht reindebuggt, wird der nächste Schritt sein, manchmal findet man den Fehler ja schneller selbst und patcht es vorab. d) BLEScanner: Ok, hier habe ich jetzt verstanden, dass man hier ab 10.3 zur Laufzeit Berechtigungen anfordern muss (unter 10.2.x reichten die Projekt-Permissions noch aus), d.h. in meinem Code sind für Android und Delphi 10.3 die folgenden Zeilen
Delphi-Quellcode:
hinzugekommen. Da Emba hier noch keine Beispiele hochgeladen hat, findet sich diese Info nur sehr mühsam.{$IFDEF ANDROID} {$IFDEF VER330} PermissionsService.RequestPermissions(['android.permission.ACCESS_COARSE_LOCATION', 'android.permission.ACCESS_FINE_LOCATION'], LocationPermissionRequestResult); {$ENDIF} {$ENDIF} e) BluetoothLE unter Windows: ![]() Der ist auch richtig nervig, weil man nach jedem Systemstart die Devices neu pairen muss. Das ist aber seit dem Windows Oktober Update so, hat also nicht mit 10.3 zu tun. |
AW: Delphi Rio (10.3): nichts geht mehr?
Zitat:
Zitat:
|
AW: Delphi Rio (10.3): nichts geht mehr?
Liste der Anhänge anzeigen (Anzahl: 1)
Ok, Tms rauswerfen hat nichts gebracht.
Eine neue .dproj anlegen lasen hat nichts gebracht. Aber ein ganz neues Projekt aufsetzen hat es bei mir gelöst. Irgendwas scheint an deinem Projekt nicht OK zu sein (dpr, dproj) ? Mein funktionierende Demo im Anhang. EDIT: Ok, das interessiert mich warum: 1. Unterschied: .dpr
Delphi-Quellcode:
2. .dproj Unterschiede, na klar, aber erstmal nichts auffälliges.
program FormLabelTest;
uses System.StartUpCopy, FMX.Forms, LabelTest in 'LabelTest.pas' {Form1}, FMX.WebBrowser in 'FMX.WebBrowser.pas'; // <-- Diese Zeile könnte das Problem verursachen {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Ich hätte das die Packages der Fremdkomponenten im Verdacht, aber die werden hier ja gar nicht benutzt. 3. Unterschied .fmx
Delphi-Quellcode:
4. .pas
object Form1: TForm1
Left = 0 Top = 0 BorderIcons = [biSystemMenu, biMinimize] //<-- Das kann es doch nciht etwa sein = Caption = 'Form1' ClientHeight = 474 ClientWidth = 1052 FormFactor.Width = 320 FormFactor.Height = 480 FormFactor.Devices = [Desktop] DesignerMasterStyle = 0 object WebBrowser1: TWebBrowser Size.Width = 649.000000000000000000 Size.Height = 355.000000000000000000 Size.PlatformDefault = False Position.X = 8.000000000000000000 Position.Y = 6.000000000000000000 end end
Delphi-Quellcode:
interface
uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, FMX.Controls.Presentation , FMX.TMSWebBrowser // <-- Tms mit/ohne macht keinen Unterschied , FMX.TabControl, FMX.WebBrowser, FMX.TMSBaseControl, FMX.TMSGridCell, FMX.TMSGridOptions, FMX.TMSGridData, FMX.TMSCustomGrid, FMX.TMSGrid, FMX.TMSCustomButton, FMX.TMSBarButton, FMX.TMSButton, FMX.TMSMemo, FMX.Layouts, FMX.Forms; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; private { Private-Deklarationen } nr:integer; // <<- Könnte nr ein reserviertes Wort sein ? Ich schreibe mindestens Fnr um solche Fehler auszuschliessen public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.fmx} Rollo |
AW: Delphi Rio (10.3): nichts geht mehr?
TWebBrowser:
Doch leider ist es genau
Delphi-Quellcode:
BorderIcons = [biSystemMenu, biMinimize]
Das habe ich in meinen Issue ja auch schon reingeschrieben: The error is on Delphi-side and happens for TWebBrowser under Windows if the form do not have the default border Icons, e.g. [biSystemMenu,biMinimize] only. Man kann es auch anders nachbauen und sich ein neues Projekt aufmachen, eine TWebBrowser-Komponente drauflegen und einen Button mit der folgenden Funktion:
Delphi-Quellcode:
Dann schmiert es beim Klick auf den Button genau so ab, nur schöner, weil das Programm wenigstens noch startet. Das muss in der TWebBrowser-Komponente angepasst werden.
procedure TForm1.Button1Click(Sender: TObject);
begin self.BorderIcons:=[TBorderIcon.biSystemMenu, TBorderIcon.biMinimize]; end; TMediaPlayer: Hier funktioniert weder die TMediaPlayer.stop-Funktion unter Android noch die TMediaPlayer.mediaState-Abfrage für Videos (es kommt immer stopped zurück, das zweite kann daher auch das erste bedingen). Für MP3-Dateien ist alles gut. Das liegt außerhalb des Codes, den man noch selbst patchen kann, das liegt in der Zusammenarbeit von TAndroidVideo und android/widget/VideoView oder nur letzterem. Macht in Summe aber den TMediaPlayer unter Android unbrauchbar. BluetoothLE unter Android: Man muss ab Delphi 10.3 zur Laufzeit Permissions anfragen (unabhängig von den Settings in den Optionen, wo diese auch schon gelistet sind): PermissionsService.RequestPermissions(['android.permission.ACCESS_COARSE_LOCATION', 'android.permission.ACCESS_FINE_LOCATION'], LocationPermissionRequestResult); und man darf ble.SubscribeToCharacteristic nicht mehr aufrufen, wenn parallel ein ble.ReadCharacteristic am Laufen ist (d.h. Reihenfolge bei der Initialisierung eines Devices beachten, dies war in Delphi 10.2.x scheinbar noch egal). Anzeigen unter Lollipop: Hier habe ich leider nichts rausfinden können, noch was neues gehört. Ich hoffe, dass hier nachgebessert wird, sonst gehen einem 20% der Devices verloren und dies sind dann v.a. die günstigeren wie Amazon FireHD. |
AW: Delphi Rio (10.3): nichts geht mehr?
Zitat:
gestern Abend habe ich einen Support case bei Embarcadero zu dem Thema angelegt, heute morgen die Bitte vom Supporter im Postfach gehabt, einen Bug im QC anzulegen, dann wird der meine Anfrage mit dem Bug verknüpfen und ins interne QC verschieben. Gegen 11 Uhr dann nen Fix vom Supporter selbst erhalten und eben die Rückmeldung, dass der Fehler korrigiert und der Bug geschlossen ist. bin jetzt echt positiv überrascht!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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