Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Rio (10.3): nichts geht mehr? (https://www.delphipraxis.net/198852-delphi-rio-10-3-nichts-geht-mehr.html)

philipp.hofmann 5. Dez 2018 11:45

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?

Lemmy 5. Dez 2018 12:40

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

RSF 5. Dez 2018 14:33

AW: Delphi Rio (10.3): nichts geht mehr?
 
Irgendwie bin ich froh keine neue Version installieren zu müssen. Spart Geld und Nerven.:P

Rollo62 5. Dez 2018 15:18

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.
  1. Ich habe meine Apps möglichst enkoppelt in sehr kleine Teil-Units
  2. Die Units-Referenzen hab ich durch Interfaces und/oder Messages entkoppelt
  3. Ich achte drauf keine zyklischen Unit-Referenzen drinzuhaben
  4. Auf der Mainform habe ich so gut wie nichts liegen,
    damit ich bei Versionswechseln, wie jetzt, notfalls schnell mal eine .dproj neu anlegen kann
  5. Bin/DCU Verzeichnisse lösche ich quasi ständig, um keine alten Referenzen drinzuhaben.
  6. Große, monolithische Libraries/Fremdkomponenten habe ich rausgeworfen (IDE ist fast clean)
  7. etc. etc.

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

philipp.hofmann 5. Dez 2018 16:30

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

Rollo62 5. Dez 2018 17:22

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:

Das Aufräumen der bin/dcu-Files nehme ich mir auch mal zu Herzen, mache ich zu selten.
Ich hab dafür _Clean.bat Batchfiles, das ist ein Klick und fertig ist die Laube.

Rollo

Sherlock 6. Dez 2018 07:04

AW: Delphi Rio (10.3): nichts geht mehr?
 
Poste die QC-Einträge bitte, dann können die hochgewählt werden.

Sherlock

philipp.hofmann 6. Dez 2018 08:55

AW: Delphi Rio (10.3): nichts geht mehr?
 
Anbei mal meine laufenden Issues, falls jemand hochwählen möchte:

a) FMX.TWebBrowser: https://quality.embarcadero.com/browse/RSP-21877
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:
https://quality.embarcadero.com/browse/RSP-21912
https://quality.embarcadero.com/browse/RSP-21899

c) TMediaPlayer unter Android: https://quality.embarcadero.com/browse/RSP-21936
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:
 
  {$IFDEF ANDROID}
    {$IFDEF VER330}
      PermissionsService.RequestPermissions(['android.permission.ACCESS_COARSE_LOCATION', 'android.permission.ACCESS_FINE_LOCATION'], LocationPermissionRequestResult);
    {$ENDIF}
  {$ENDIF}
hinzugekommen. Da Emba hier noch keine Beispiele hochgeladen hat, findet sich diese Info nur sehr mühsam.

e) BluetoothLE unter Windows: https://quality.embarcadero.com/browse/RSP-21711
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.

Rollo62 7. Dez 2018 07:03

AW: Delphi Rio (10.3): nichts geht mehr?
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1420213)

a) FMX.TWebBrowser: https://quality.embarcadero.com/browse/RSP-21877
Wobei dieser Issue sich relativ einfach fixen lässt, man muss nur zwei Zeilen in TWebBrowser auskommentieren

Du hast da irgendwas mit Tms drin, das würde ich mal rauswerfen:

Zitat:

FMX.Controls.Presentation, FMX.TMSWebBrowser, 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;

Rollo

Rollo62 7. Dez 2018 07:16

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:
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.
2. .dproj Unterschiede, na klar, aber erstmal nichts auffälliges.
Ich hätte das die Packages der Fremdkomponenten im Verdacht, aber die werden hier ja gar nicht benutzt.


3. Unterschied .fmx
Delphi-Quellcode:
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
4. .pas
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz