Neuerungen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen in den letzten Releases

RAD Studio 10.2 Tokyo enthält die folgenden neuen und verbesserten Features.

Note:

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.

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

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.
  • 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 und SourceValue 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 und verbesserte Hash-Funktionen

Die folgenden Methoden aus der Unit System.Hash akzeptieren jetzt entweder einen Stream oder einen String als Eingabeparameter:

Die Unit System.Hash enthält die folgenden neuen Methoden, mit denen Sie einen Hash-Digest aus einer Datei abrufen können:

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"
10.2 View Tool Windows.png 10.2 View Editor.png
  • 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.

Themen

Siehe auch