Neuerungen
Nach oben zu Neuerungen in den letzten Releases
Inhaltsverzeichnis
RAD Studio 10.2 Tokyo enthält die folgenden neuen und verbesserten Features.
- Note:
- Klicken Sie hier, um den Inhalt von 10.2 Tokyo – Release 1 anzuzeigen.
- Klicken Sie hier, um den Inhalt von 10.2 Tokyo – Release 2 anzuzeigen.
- Klicken Sie hier, um den Inhalt von 10.2 Tokyo – Release 3 anzuzeigen.
Linux
RAD Studio 10.2 Tokyo unterstützt Linux für die Sprache Delphi. Der Compiler ist ARC-fähig und unterstützt nur serverseitige Anwendungen; dazu zählen Konsolenanwendungen, WebBroker- und DataSnap-Anwendungen sowie die Unterstützung für die RAD Server-Entwicklung und -Bereitstellung. Anwendungen können auch über FireDAC auf Daten zugreifen. Folgende Linux-Distributionen werden unterstützt: Ubuntu 16.04 LTS und RedHat Enterprise Version 7. Die Linux-Unterstützung ist in RAD Studio 10.2 Tokyo in der Enterprise Edition und höher verfügbar.
Delphi-Linux-Compiler
- Unterstützung für die 64-Bit-Linux-Plattform
- Unterstützung für die Sprache Delphi
- ARC-fähig
- 1-basierte Strings
- Basiert auf der LLVM-Engine
Unterstützte Linux-Distributionen
RAD Studio 10.2 Tokyo unterstützt die folgenden Linux-Distributionen:
- Ubuntu Server (Ubuntu 16.04 LTS)
- RedHat Enterprise Linux (Version 7)
Unterstützte RTL-Features
- Zugriff auf das Linux-Dateisystem
- Unterstützung für Threading und Parallel Programming Libraries
- Speicherverwaltung
- Unterstützung für HTTP- und REST-Bibliotheken für HTTP-Aufrufe
64-Bit-Linux für Serveranwendungen
Die neuesten RAD Studio-Technologien für Serveranwendungen unterstützen nun 64-Bit-Linux.
- FireDAC stellt Linux-Unterstützung für alle Linux-fähigen DBMS mit Ausnahme von Informix bereit. Siehe Datenbankkonnektivität.
- Unterstützung für WebBroker, RAD Server (EMS) und DataSnap für mehrschichtige Server (eigenständige und Apache-Module).
- Unterstützung für DUnitX.
- Unterstützung für PAServer.
- Indy-basierte Unterstützung für Client und Server.
FireMonkey
Neue Optionen für die Systemstatuszeile unter iOS
Zu TForm wurden zwei neue Eigenschaften zur Änderung des Verhaltens der Systemstatuszeile unter iOS hinzugefügt: SystemStatusBar.BackgroundColor und SystemStatusBar.Visibility.
Erweiterungen für TMultiView
- Deaktivieren der Benutzerinteraktion mit TMultiView anhand der Eigenschaft Enabled.
- Neue Optionen zur Verwaltung des Erscheinungsbilds des Randes in TMultiView.
- Ausrichtung unten und oben für den Modus "Angedockter Bereich" in TMultiView.
Unterstützung für Multithreading für TBitmap, TCanvas und TContext3D
- TBitmap: Umfassende Unterstützung für Multithreading. Kann in jedem Thread ohne Synchronisierung erstellt, freigegeben und geändert werden.
- TCanvas: Unterstützt die Verwendung aus mehreren Threads gleichzeitig, wird aber intern serialisiert.
- TContext3D: Unterstützt die Verwendung aus mehreren Threads gleichzeitig, wird aber intern serialisiert.
Sonstige FireMonkey-Änderungen
- Zu den folgenden Textsteuerelementen wurde die Unterstützung für ICaption hinzugefügt: TText, TStyleTextObject, TActiveStyleTextObject, TTabStyleTextObject und TButtonStyleTextObject.
- FMX-Verbesserungen für TWebBrowser für Windows.
- Zusätzliche CharCase-Eigenschaft in TEdit.
- Erneut bereitgestellte TStringGrid-Ereignisse.
- Eigenschaften TagObject und TagString wurden zu TListViewItem hinzugefügt.
- Vereinheitlichung von Delphi- und Java-Threads unter Android: CallInUIThread ist veraltet. Der gesamte Code wird jetzt im Java-UI-Thread ausgeführt, wodurch keine Thread-Synchronisierung mehr erforderlich ist.
- Die Methode ProcessMessages wurde zum Aufrufen der CheckSynchronize-Methode verwendet, die Callback-Funktionen aus dem Java Native-Thread aufrief. Es gab zwei Threads: den Delphi-UI-Thread und den Java Native-Thread. Nach der Umgestaltung in 10.2 gibt es nur noch einen Thread: den Java Native-Thread, der alle Benachrichtigungen von Android empfängt und sie an die Delphi-Ereignisbehandlungsroutinen weiterleitet. Da er durch die while-Schleife blockiert wird, kann keine Ereignisbehandlungsroutine ausgeführt werden, wodurch die Schleife nicht verlassen werden kann. Callback-Funktionen und Ereignisse im Allgemeinen werden aufgerufen, wenn kein Code zur Aufnahme des Haupt-Threads der App vorhanden ist.
- Verbesserungen für FMX.Platform.Android.pas durch Erweiterung von FMX.Platform.Device.Android.pas, FMX.Platform.Logger.Android.pas, FMX.Platform.Metrics.Android.pas, FMX.Platform.SaveState.Android.pas, FMX.Platform.Screen.Android.pas und FMX.Platform.Timer.Android.pas.
- Die Methode Release von TForm wurde entfernt.
- Änderungen für ShowModal unter Android.
Neue FireMonkey-Stile
Neue FireMonkey-Stile wurden für macOS und Android hinzugefügt. Die FireMonkey-Stile finden Sie unter:
C:\Benutzer\Öffentlich\Öffentliche Dokumente\Embarcadero\Studio\19.0\Styles\MacOS\macOSgraphite.fsf
C:\Benutzer\Öffentlich\Öffentliche Dokumente\Embarcadero\Studio\19.0\Styles\Android\AndroidWearDarkBlue.fsf
FireDAC und Datenbank
Verbesserungen bei Firebird
- Neue Eigenschaft Direct zum Hinzufügen von Unterstützung für die Direct I/O (EN)-Sicherungsfunktion.
Verbesserungen für MySQL
- Unterstützung für MySQL v 5.7.
- Unterstützung für MariaDB v 5.5 oder höher. Verwenden Sie den Knoten MySQL von FireDAC, um eine Verbindung mit MariaDB herzustellen.
- Kompatibilität mit den neuesten MySQL-Versionen 5.6.x und 5.7.x.
- MySQL-API für vorbereitete Anweisungen: Jetzt werden die alte API (MySQL-Textprotokoll) und die PS API (MySQL-Protokoll für vorbereitete Anweisungen) unterstützt.
- Sie können die gewünschte API mit der Eigenschaft TFDResourceOptions.DirectExecute auswählen.
- Je nach verwendeter API gibt die Eigenschaft TFDCommand.CommandIntf.CliObj ein TMySQLStatement- oder ein TMySQLResult-Objekt zurück.
- Unterstützung für internes BLOB-Streaming (nur im
smOpenWrite
-Modus). - Verbesserungen für die Synchronisierung eines Verbindungstransaktionsstatus und der Eigenschaft TFDConnection.InTransaction. Mit dieser Eigenschaft können Sie feststellen, ob gerade eine Verbindungstransaktion ausgeführt wird.
Weitere FireDAC-Änderungen
- Die Komponente TFDDataMove wurde aus dieser Version entfernt und steht in der Tool-Palette nicht mehr zur Verfügung. Verwenden Sie stattdessen die Komponente TFDBatchMove.
- Hinweis: Wenn Sie TFDDataMove für Ihre alten Projekte benötigen, verwenden Sie die Unit FireDAC.Comp.DataMove.pas unter:
- Start | Programme | Embarcadero RAD Studio 10.2 Tokyo | Beispiele, und navigieren Sie dann zu:
Object Pascal\Comp Layer\TFDBatchMove\DataMove_Deprecated
- TFDBatchMove wurde optimiert. Als Nebeneffekt stehen die Eigenschaften
DestValue
undSourceValue
von TFDBatchMoveMappingItem nicht mehr zur Verfügung. - TFDMSAccessService unterstützt jetzt Microsoft Access 2007 oder höher.
- Erweiterungen der Komponente TFDMemTable für die Bearbeitung der TFDMemTable-Datenmenge zur Entwurfszeit. Im Kontextmenü von TFDMemTable steht jetzt der Eintrag Datenmenge bearbeiten... zur Verfügung, mit dem Sie die Komponentendaten bearbeiten und im Formular speichern können. Die Daten sind zur Laufzeit verfügbar.
- Hinweis: Vor der Verwendung von Datenmenge bearbeiten... sollten Sie die Felddefinitionen für die Datenmengenfelder TFDMemTable.FieldDefs angeben oder persistente Felder erstellen.
- Der FireDAC-InterBase-Treiber unterstützt InterBase 2017 DT und CTE.
Verbesserungen für Datenbanken
- Direkte Unterstützung von VCL-TDBImage für JPEG- und PNG-Grafikformate.
- Unterstützung für Anzeigeoptionen für BlobFields.
- Direkter GUID-Zugriff für TField-Klassen.
RTL
HTTP-Client
Die HTTP-Client-Bibliothek stellt die Unterstützung für 64-Bit-Linux bereit.
Verbesserte asynchrone Unterstützung im HTTP-Client
RTL-Unterstützung für 64-Bit-Linux
RAD Studio 10.2 Tokyo unterstützt das Linux-Dateisystem mit Standardsystemfunktionen, Streams und der Unit IOUtils. Die Standard-RTL-Pfadfunktionen werden auch für 64-Bit-Linux unterstützt.
Verbesserungen bei App-Tethering
Zu App-Tethering wurden die folgenden Features hinzugefügt:
- Neue Eigenschaft
SynchronizeEvents
für TTetheringManager und TTetheringProfile zur Steuerung der Ereignissynchronisierung mit dem Haupt-Thread. Deshalb können jetzt Manager und Profile steuern, ob ihre Ereignisbehandlungsroutinen im Haupt-Thread ausgeführt werden oder nicht. - Verbesserte Unterstützung für die Protokollfilterung: Es wurden weitere Protokollmeldungen hinzugefügt.
Neue und verbesserte Hash-Funktionen
Die folgenden Methoden aus der Unit System.Hash akzeptieren jetzt entweder einen Stream oder einen String als Eingabeparameter:
- THashMD5.GetHashString
- THashMD5.GetHashBytes
- THashSHA1.GetHashString
- THashSHA1.GetHashBytes
- THashSHA2.GetHashString
- THashSHA2.GetHashBytes
Die Unit System.Hash enthält die folgenden neuen Methoden, mit denen Sie einen Hash-Digest aus einer Datei abrufen können:
- THashMD5.GetHashBytesFromFile
- THashMD5.GetHashStringFromFile
- THashSHA1.GetHashBytesFromFile
- THashSHA1.GetHashStringFromFile
- THashSHA2.GetHashBytesFromFile
- THashSHA2.GetHashStringFromFile
Mobile Plattformen
Verbesserte C++-Packages für mobile Plattformen
RAD Studio 10.2 Tokyo linkt C++-Packages für iOS und Android statisch. In früheren Versionen von RAD Studio wurde eine Datei mit der Erweiterung .so für C++-Packages generiert, die aber eigentlich keine dynamischen Bibliotheken darstellten. RAD Studio 10.2 Tokyo generiert C++-Packages mit der korrekten Dateierweiterung (.a). Wenn Sie ein SO-Package statisch linken, müssen Sie gegebenenfalls eine Änderung vornehmen, um den neuen Dateinamen zu linken.
Unterstützung mehrerer Mandanten für RAD Server
Mit der Unterstützung für mehrere Mandanten kann eine einzelne RAD Server-Instanz mit einer einzigen RAD Server-Datenbankverbindung mehrere separate Mandanten unterstützen. Jeder Mandant verfügt über einen eindeutigen Satz von RAD Server-Ressourcen, einschließlich Benutzer, Gruppen, Installationen, Edge-Modulen und sonstiger Daten. Alle Mandanten verfügen über benutzerdefinierte Ressourcen, die auf dem EMS-Server installiert sind. Als Administrator können Sie darüber hinaus neue Mandanten erstellen, vorhandene bearbeiten, Einzelheiten Ihrer Mandanten hinzufügen, bearbeiten oder löschen sowie angeben, ob der Mandant aktiv ist, und die nicht benötigten Mandanten löschen.
Compiler für C++
Verbesserte Debugging-Unterstützung
In Compilern, die durch Clang erweitert wurden:
- Lokale Variablen in Code, der mit den durch Clang erweiterten Compilern für Win32 und Win64 erzeugt wurde, können jetzt immer in überwachten Ausdrücken oder in der Ansicht "Lokale Variablen" ausgewertet werden.
- Wenn im Code zwei lokale Variablen mit demselben Namen in unterschiedlichen Gültigkeitsbereichen in einer Methode vorhanden sind, kann die Variablenauswertung jetzt beide auflösen und je nach aktueller Position die richtige anzeigen.
- Klassennamen werden jetzt immer im Aufruf-Stack angezeigt.
- (Durch Clang erweitertes Win32) Unterstützung für externe Typdateien für Debug-Informationen, wodurch doppelte Debug-Informationen reduziert werden, die für häufige in vielen Compilierungs-Units, wie VCL-Typen, verwendete Typen erstellt wurden. Dadurch wird die Größe der beim Erzeugen generierten Debug-Informationen erheblich verringert.
Verbessertes Codegen
In Compilern, die durch Clang erweitert wurden:
- Codegen für die Optimierungsebene -O1 und -O2 wurde verbessert und bekannte Probleme behoben.
- Neue Unterstützung für -O3. Die durch Clang erweiterten Win32- und Win64-Compiler unterstützen -O3, eine starke Optimierungsebene, die in bestimmten Situationen die Leistung des compilierten Codes verdoppeln kann.
Unterstützung für mobile Plattformen
- C++-Android-Anwendungen können ohne bestimmte Versionen des NDK erzeugt werden.
Linker
- Der C++-Linker wurde erheblich verbessert:
- Verbesserte Ressourcenbehandlung, um Heap-Fehler, wie zu wenig Arbeitsspeicher, VIRDEF, dwarf_str und andere, zu beheben.
- Der Linker kann jetzt bis zu 4 GiB Arbeitsspeicher verwenden; er ist nicht mehr auf 2 GiB begrenzt.
- Die Linker-Optionen wurden erweitert, damit Sie die Größe der Ressourcenzuweisungen für bestimmte Typen von Debug- oder Linker-Daten festlegen können.
-
- Dies ist zwar für die meisten Projekte nicht erforderlich, aber es ist für sehr große Projekte oder für Projekte, die eine ungewöhnlich große Menge gelinkter Daten und Debug-Informationen generieren, nützlich. Wenn Linker-Fehler auftreten, können sie behoben werden, indem die Optionen an das Verhalten des Projekts angepasst werden.
Exception-Behandlung
- Erhebliche Qualitätsverbesserungen bei der Exception-Behandlung, um Fehler im Zusammenhang mit Speicherlecks zu beheben.
IDE
- Code Insight und die Programmierhilfe für Delphi behandeln jetzt statische und dynamische Arrays korrekt.
- Das Dialogfeld "In Dateien suchen" arbeitet auf Bildschirmen mit hoher Auflösung.
- Die Unterstützung für den Entwurf und das Öffnen von Formularen unter verschiedenen Auflösungen wurde verbessert.
- Das Menü "Ansicht" wurde neu gestaltet. Tool-Fenster, wie Objektinspektor, Struktur, Meldungen usw. wurden in das Untermenü "Tool-Fenster" direkt unterhalb des Untermenüs "Debug-Fenster" verschoben und das neue Untermenü "Editor" enthält eine Reihe von Editoraktionen und nützlichen Funktionen aus dem Kontextmenü des Editors. Andere Einträge wurden verschoben, damit zugehörige Einträge zusammen angezeigt werden.
Untermenü "Tool-Fenster" | Untermenü "Editor" |
- Die Kontextmenüs für die Registerkarten des Quelltext-Editors und die Dateien in der Projektverwaltung enthalten jetzt den Menüeintrag "Im Explorer anzeigen", mit dem die Position der Datei im Explorer angezeigt wird.
- Die Manifestdatei des Projekts unterstützt jetzt mehrere Ausführungsebenen: "Als Aufrufer", "Maximal verfügbar" sowie "Administrator erforderlich" und ermöglicht auch, dass das Flag "UI-Zugriff" gesetzt werden kann.
- Die IDE wird schnell geladen, selbst bei einer hohen Auslastung des Netzwerks oder keiner Netzwerkverbindung.
- Die Unterstützung für das Erzeugen sehr großer Projektgruppen, z. B. mit über Hundert Projekten, wurde verbessert.
Debugger
iOS-Debugger
- Vollständige Unterstützung für das iOS10-Debuggen (durch einen Hotfix für 10.1 Berlin).
- Vollständige Unterstützung für das Debuggen im iOS-Simulator (durch einen Hotfix für 10.1 Berlin) – nur Delphi.
- Das Schreiben von Delphi-String-Werten wird im iOS-Debugger unterstützt.
- Die Auswertung von Zeichen-Arrays liefert das erwartete Ergebnis.
- Fehler, durch die die Debug-Sitzung beendet wurde (auch unter macOS), wurden behoben.
macOS-Debugger
- Vollständige Unterstützung für das macOS Sierra-Debuggen (durch einen Hotfix für 10.1 Berlin).
- Fehler, durch die die Debug-Sitzung beendet wurde (auch unter iOS), wurden behoben.
Linux-Debugger
- Unterstützung für das Debuggen unter Linux (nur Delphi)
VCL
Korrekturen für hochauflösende Monitore
Verbesserte Unterstützung für hochauflösende Monitore:
- Formularbegrenzungen werden jetzt als Reaktion auf die Botschaft WM_DPICHANGED korrekt angepasst; TForm.AutoScroll funktioniert ordnungsgemäß und die linke/obere Position wird korrekt übernommen.
- Formulare werden mit dem richtigen Skalierungsfaktor geöffnet, wenn an das System mehrere Monitore mit unterschiedlicher Auflösung (DPI) angeschlossen sind.
- TTabSheet und TPageControl und Steuerelemente wurden auf Registerkarten oder Seitensteuerelementen platziert.
- ActionMainMenuBar beim Verschieben eines Formulars zwischen Monitoren mit unterschiedlicher Auflösung (DPI).
- VCL-Menüs (Hauptmenüs und Popup-Menüs) werden jetzt korrekt auf hochauflösenden Monitoren angezeigt.
- Die Höhe von TStatusBar bleibt auf hochauflösenden Monitoren korrekt.
- Symbole für Meldungsdialogfelder werden jetzt korrekt skaliert.
- Verankerte Steuerelemente bleiben jetzt an der erwarteten Position, wenn ein Formular zwischen Monitoren mit unterschiedlicher Auflösung verschoben wird.
- TCheckBox und TRadioButton werden jetzt korrekt gezeichnet.
- Verschiedene Probleme mit der Formularvererbung, u. a. dass Steuerelemente jetzt die richtige Schriftgröße verwenden, wenn Sie in einen Bereich eines vererbten Formulars platziert werden, dessen ParentFont auf "true" gesetzt ist, und die Spaltengrößen von TListView bleiben in einem vererbten Formular korrekt.
Sonstige Verbesserungen
Installationsprogramm für GetIt
- Erweiterte parallele Downloads.
Cloud
- Verbesserte Unterstützung von Azure und AWS durch aktualisierte APIs.
Compiler
- Delphi-Befehlszeilen-Compiler sind jetzt für große Speicheradressen aktiviert, wodurch Sie größere Anwendungen von der Befehlszeile aus compilieren können (und bei Aufrufen aus der IDE den für die Compiler verfügbaren Speicher abgleichen können).
- Wenn dynamische Arrays verwaltete Typen mit Referenzzählung und Generierung zugehöriger Hilfsfunktionen sind, ist die Typumwandlung von Array-Elementen mit dem Operator
@
unzulässig, da sie zu Speicherfehlern führt. Das Durchführen einer ähnlichen Operation mittels einer expliziten Typumwandlungsoperation ist weiterhin zulässig, unterliegt aber der Verantwortung des Entwicklers.
iOS 10-Simulator, Gerät und macOS
- Vollständige Unterstützung für iOS 10, einschließlich 32-Bit- und 64-Bit-Debugging auf iOS 10-Geräten, Simulatorunterstützung (nur Delphi) und macOS Sierra-Unterstützung.