Neuerungen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Hauptseite

Inhaltsverzeichnis

Das Berlin-Release enthält die folgenden neuen und verbesserten Features.

Benutzerfreundlichere Installation

Wir haben den Installationsprozess von RAD Studio verbessert, damit Sie das Produkt einfacher an Ihre Wünsche anpassen können.

Es gibt nun ein neues Installationsprogramm, mit dem eine grundlegende Version von RAD Studio, die als Texteditor verwendet werden kann, sehr schnell installiert wird.

Anschließend können Sie im neuen Installationsprogramm für Features die RAD Studio-Features (Programmiersprachen, Zielplattformen usw.) auswählen, die in Ihrer anfänglichen RAD Studio-Installation vorhanden sein sollen. Es werden nur die ausgewählten Features installiert, wodurch Sie Bandbreite, Zeit und Festplattenspeicher sparen.

Später können Sie jederzeit mit dem neuen Feature-Manager RAD Studio Features hinzufügen oder daraus entfernen.

Bestimmte Software, die im RAD Studio-Installationsprogramm von Seattle einbezogen war, steht nun über den GetIt-Package-Manager zur Verfügung. Weitere Informationen finden Sie unter Optionale zusätzliche Software in den Installationshinweisen.

Das RAD Studio-Installationsprogramm von Seattle ist weiterhin als Offline-Installationsprogramm verfügbar. Dieses Installationsprogramm können Sie verwenden, wenn Ihr System bei der Installation über keine aktive Internet-Verbindung verfügt.

Anweisungen für die Installation und weitere Informationen finden Sie unter Installation.

FireMonkey

Unterstützung für Android 6.0

Android 6.0 (API Level 23) wird jetzt unterstützt.

Adressbuch für iOS und Android

Auf mobilen Plattformen (Android und iOS) unterstützt FireMonkey die Komponente TAddressBook, mit der Sie in Ihren Anwendungen auf das Geräte-Adressbuch zugreifen können. Diese Komponente umfasst folgende grundlegende Funktionen:

  • Senden einer Anforderung für den Zugriff auf ein Geräte-Adressbuch und Abrufen des Zugriffsstatus.
  • Zugreifen auf alle in dem Geräte-Adressbuch definierten Quellen.
  • Abrufen aller oder einzelner Kontakte aus der angegebenen Quelle.
  • Abrufen aller Kontakte aus bestimmten Gruppen.
  • Bearbeiten oder Entfernen von vorhandenen Kontakten und Gruppen.
  • Erstellen neuer Kontakte.
  • Erstellen neuer Gruppen.

Weitere Informationen und Beispiele finden Sie unter TAddressBook und Mobile-Tutorial: Verwenden der Adressbuch-Komponente (iOS und Android).

Verbesserter Stil-Designer

Am Stil-Designer wurden mehrere Änderungen und Verbesserungen vorgenommen, wie:

  • Unterstützung von Zwischenablage, Tastatur und Mehrfachauswahl in der Strukturansicht.
  • Vorschaubereich
  • Unterstützung der Zoomfunktion
LondonFireMonkeyStyleDesigner.png

Neuer ListView-Eintrags-Designer

Das Listenansichts-Steuerelement unterstützt jetzt einen neuen Typ des Erscheinungsbildes für Einträge (auch im Bearbeitungsmodus verfügbar), DynamicAppearance, mit dem Sie den Inhalt jedes Eintrags in Ihrer Listenansicht anpassen können: Beschriftungen, Bilder, Schaltflächen usw.

Sie können auch im Formular-Designer mit der rechten Maustaste auf die Listenansicht klicken und den neuen Eintrag Entwurfsmodus umschalten auswählen, um einen visuellen Eintragseditor für die Listenansicht zu aktivieren; damit können Sie die Steuerelemente der Einträge Ihrer Listenansicht visuell anpassen:

LondonListViewDesignMode.png

In diesem Entwurfsmodus können Sie mit dem Objektinspektor dem Eintragsentwurf Ihrer Listenansicht neue Elemente hinzufügen und sie mit dem Objektinspektor und dem Formular-Designer anpassen.

Erweiterter Dienst zur Unterstützung der Zwischenablage

FireMonkey verfügt jetzt über das Interface IFMXExtendedClipboardService, das neue Features hinzufügt. Beispielsweise können Sie mit dem Interface IFMXExtendedClipboardService:

  • Benutzerdefinierte Formate registrieren.
  • Daten im benutzerdefinierten Format kopieren/einfügen.
  • Den Wert der Zwischenablage direkt ermitteln.

Verbesserung des Bilderlisten-Editors

Jetzt können Sie im Dialogfeld Bilder hinzufügen des Bilderlisten-Editors mehrere Bilder gleichzeitig hinzufügen.

Erweiterungen des Gitters

Die Darstellungslogik und das Datenmodell der Gitter-Steuerelemente wurden von diesen getrennt. Dies ist eine notwendige, fehlerhafte API-Änderung, die es ermöglicht, zukünftig den Gitter-Steuerelementen, unter anderem, Unterstützung der nativen Darstellung hinzuzufügen. Weitere Informationen finden Sie unter Änderungen an den FireMonkey Gitter-Steuerelementen unter Berlin.

Warnung: Bei der Migration eines älteren Projekts, das Gitter-Steuerelemente verwendet, nach Berlin müssen Sie unter anderem die neue Unit FMX.Grid.Style in eine der uses-Klauseln Ihres Projekts miteinbeziehen. Diese Unit wird automatisch in neue Projekte eingefügt.

Unterstützung für hohe DPI unter Windows

FireMonkey stellt für Windows verbesserte Unterstützung für hohe DPI bereit, wie z. B. Stile für Mehrfachauflösung, die Monitore mit 120 DPI und 144 DPI unterstützen.

Verbesserte Unterstützung für Zugriffstasten

Die Unterstützung der Zugriffstasten ist nun für folgende Steuerelemente verfügbar:

Unterstützung für erweiterte Schriftartstile

TFont erhält eine neue Eigenschaft, StyleExt, zum Behandeln von Schriftarten, die erweiterte Typen von weight (Strichstärke), slant (Schräge) oder stretch (Laufweite der Schrift) haben.

Änderungen der Eigenschaft Hint

In früheren RAD Studio-Versionen wurde Hint in allen von TControl abgeleiteten FireMonkey-Steuerelementen als published deklariert. Jetzt wird die Eigenschaft Hint in den unter Änderungen der Eigenschaft Hint in Berlin aufgelisteten FireMonkey-Steuerelementen als published deklariert.

Warnung: Verwenden Sie in ihren Anwendungen Hint nur mit den Steuerelementen, die in dieser Tabelle aufgeführt sind. Andernfalls werden Ihre Anwendungen nicht compiliert.

Vereinfachte Dialogfeld-API

Diverse Prozeduren und Funktionen zum Anzeigen von Dialogfeldern sind jetzt veraltet und wurden durch Prozeduren und Funktionen der neuen Plattformdienste IFMXDialogServiceAsync und IFMXDialogServiceSync ersetzt, die Unterstützung für synchrone bzw. asynchrone Dialogfelder bereitstellen.

In der folgenden Tabelle sind die API-Änderungen zusammengefasst:

Veraltete Member Neue Member
  • FMX.Dialogs.MessageDlg
  • FMX.Dialogs.MessageDlgPos
  • FMX.Dialogs.MessageDlgPosHelp
  • FMX.Platform.IFMXDialogService.MessageDialog
  • FMX.Dialogs.InputBox
  • FMX.Dialogs.InputQuery
  • FMX.Platform.IFMXDialogService.InputQuery
* ShowMessage und ShowMessageFmt sind nicht tatsächlich veraltet, Sie können stattdessen jedoch ShowMessageAsync oder ShowMessageSync verwenden.

Außerdem wurden zwei neue Hilfsklassen erstellt: TDialogServiceAsync und TDialogServiceSync. Diese Hilfsklassen stellen Klassenmethoden und Funktionen bereit, mit denen Sie die neuen Prozeduren und Funktionen für Dialogfelder aufrufen können, ohne dass eine Instanz des entsprechenden Plattformdienstes des Dialogfelds benötigt wird.

Weitere FireMonkey-Änderungen

VCL

  • In der RAD Studio-Installation sind Ribbon-Steuerelemente nicht mehr enthalten. Diese Steuerelemente müssen Sie mit dem GetIt-Package-Manager separat installieren.
  • AppAnalytics verwendet HTTPS anstatt HTTP.
  • Die Methode CreateRoot aus der Unit Vcl.Shell.ShellCtrls ist jetzt virtuell. Stammfelder aus derselben Unit sind jetzt als "protected" anstatt als "private" deklariert.

EMS

Apache-Serverunterstützung

Sie können jetzt den EMS-Server und die EMS-Konsole im Apache-Server in einer Produktionsumgebung ausführen.

Weitere Informationen finden Sie unter Installieren und Ausführen des EMS-Servers und der EMS-Konsole im Apache-Server.

Domänenübergreifende Aufrufe der EMS-Server-API

Der EMS-Server ermöglicht jetzt domänenübergreifende Aufrufe seiner API aus verschiedenen Domänen. Weitere Informationen finden Sie unter Domänenübergreifende Aufrufe der EMS-Server-API.

EMS-EdgeModules

EMS unterstützt jetzt das neue Feature EMS-EdgeModules, eine Erweiterung der Funktionalität des EMS-Servers.

In Berlin können Sie EMS-EdgeModules als eigenständige Anwendungen ausführen und sie beim EMS-Server registrieren. Die EMS-EdgeModule-Kommunikation mit dem EMS-Server erfolgt bidirektional.

Weitere Informationen dazu finden Sie unter EMS-EdgeModules.

EMS-EdgeModules-Ressource

In der EMS-Konsole werden jetzt zwei neue Tabellen mit allen Informationen über EMS-EdgeModule und dessen im EMS-Server geladenen Ressourcen angezeigt.

Die Anwendung "EMS Management Console" verfügt über zwei neue Registerkarten zum einfachen Abrufen, Aktualisieren und Löschen der Daten der registrierten EMS-EdgeModules und deren Ressourcen. Einzelheiten zum Verwalten der EMS-EdgeModules-Daten auf dem EMS-Server finden Sie unter Verwenden der Anwendung "EMS Management Console".

Überblick zu ThingPoints

Verwenden Sie die neuen ThingPoint-Anwendungen, um die Funktionalität des EMS-Servers für das Internet der Dinge (Internet of Things, IoT) zu erweitern. Mit einer ThingPoint-Anwendung können Sie Daten von sich in der Nähe befindlichen ThingConnect-Geräten erfassen, IoT-Daten vor- und nachverarbeiten und sie auf dem EMS-Server speichern.

Das Beispiel "EMS.ThingPoint IoT" zeigt, wie mit einer ThingPoint-Anwendung der EMS-Server erweitert wird und wie diese Daten von einer EMS-Client-Anwendung genutzt werden.

Weitere Informationen zu ThingPoint-Anwendungen finden Sie unter Überblick zu ThingPoints.

EMS-API-Ressource

Eine neue Ressource im EMS-Server stellt nun eine API-Dokumentation für alle Ressourcen und Endpunktmethoden des EMS-Servers bereit. Die API-Dokumentation kann in den Formaten YAML und JSON genutzt werden.

Weitere Informationen finden Sie unter EMS-API-Ressource.

Benutzerdefinierte API-Dokumentation

Der EMS-Server stellt jetzt die Tools zum Erstellen der API-Dokumentation für neue Ressourcen in erweiterten EMS-Server-Packages bereit. Die neue Dokumentation wird durch Hinzufügen von Attributen zu den neuen Ressourcen und Endpunkten erstellt. Die API-Dokumentation wird in den Formaten YAML und JSON und der Zugriff darauf via HTTP bereitgestellt.

Weitere Informationen finden Sie unter Benutzerdefinierte API-Dokumentation.

DataSnap

Unterstützung für JSON-Streaming

Neue Klasse TDBXJSONStream zur Unterstützung von JSON-Streaming zwischen DataSnap-Servern und -Clients.

Mit TDBXJSONStream können Sie einen Stream von JSON-Objekten lesen und schreiben, allerdings nicht gleichzeitig.

Weitere DataSnap-Änderungen

  • DataSnap-Clients benötigen zur Durchführung von HTTPS-Anforderungen OpenSSL oder Indy nicht mehr.

Web Broker

Für C++-Projekte aus früheren Versionen mit Web.WebReq ist eine Aktualisierung erforderlich

Für C++-Projekte aus älteren Versionen, wie DataSnap-, Web-Broker- und Webdienst-Anwendungen, die die Unit Web.WebReq verwenden, muss der Code aus Kompatibilitätsgründen mit RAD Studio Berlin aktualisiert werden.

In diesen Projekten muss die folgende Zeile aus der cpp-Projektdatei entfernt werden:

#pragma link "Web.WebReq"

Weitere Web Broker-Änderungen

  • Die String-Behandlung wurde verbessert.
    • Die Web-Broker-API verwendet standardmäßig die UTF-8-Codierung anstelle von ANSI.
    • Die Parameter- und Ergebnistypen wurden von AnsiString in String, UTF8String oder TBytes geändert.

FireDAC

Verbesserungen für DB2

Verbesserungen für MongoDB

Verbesserungen für Advantage

  • Für Advantage v12 und höher:
    • Verbesserung von TFDADSBackup und TFDADSRestore, um Unterstützung für das Sicherungsarchiv hinzuzufügen.
    • Unterstützung des Datentyps GUID.
  • Verbesserte Unterstützung für verschlüsselte Tabellen:

Verbesserungen für InterBase

Verbesserungen für Firebird

Verbesserungen für Informix

Verbesserungen für ODBC

Verbesserungen für Oracle

Verbesserungen für PostgreSQL

  • Für PostgreSQL 9.2 und höher:
  • Für PostgreSQL 9.3 und später:
    • Unterstützung zur Identifizierung von Objektfehlerfeldern. Zu diesem Zweck wurden FireDAC.Phys.PGWrapper.TFDPgError die folgenden Eigenschaften hinzugefügt:
      • SchemaName: Enthält den Namen des Schemas, das das dem Fehler zugeordnete Datenbankobjekt enthält.
      • TableName: Enthält den Namen der Tabelle, die dem Fehler zugeordnet ist.
      • ColumnName: Enthält den Namen der Spalte, die dem Fehler zugeordnet ist.
      • TypeName: Enthält den Namen des Datentyps, der dem Fehler zugeordnet ist.
      • ConstraintName: Enthält den Namen der Einschränkung, die dem Fehler zugeordnet ist.
  • Für PostgreSQL 9.4 und höher:
  • Unterstützung für PostgreSQL-Client- und -Server-Version 9.5.
  • Verbesserte Unterstützung für eingeschränkte Arrays:

Verbesserungen für SQLite

  • SQLite-Binärdateien wurden auf Version 3.9.2 aktualisiert.
  • Für SQLite v3.8.9 und später:
    • Unterstützung erweiterter Infos zu Indexspalten, einschließlich Infos darüber, ob sie absteigend oder aufsteigend verlaufen oder ob sie Basisspalten oder Ausdrucksspalten sind.
    • Unterstützung für Ausdrucksindizes.
  • Für OS X:
    • Vorerzeugte, optimierte Client-Bibliothek. Sie sollten libcgsqlite3.dylib bereitstellen, wenn Sie Anwendungen für OS X erstellen, die FireDAC und SQLite verwenden.
    • Unterstützung für statisches Linken mit libcgsqlite3.dylib.
    • Unterstützung für Verschlüsselung.

Weitere FireDAC-Änderungen

Cloud-Dienst

Amazon

AmazonAPI wird jetzt für folgende Aktionen unterstützt:

Azure

REST-Clientbibliothek

  • Die Unit REST.Exception ist jetzt veraltet. Die Klassen dieser Unit gehören nun zur Unit REST.Types.

LiveBindings

  • Auswertungs-Tastenkürzel sind ein neues, standardmäßig aktiviertes Feature von einigen Bindungskomponenten, das die Leistung von LiveBindings beim Füllen von Listen- oder Tabellensteuerelementen mit einfachen Bindungsausdrücken verbessert. Siehe Verwenden von Auswertungs-Tastenkürzel.
  • Die Klasse TConverterUtils aus System.Bindings.Outputs ist jetzt public. TConverterUtils stellt eine Reihe von Hilfsmethoden zum Zuweisen eines Wertetyps zu einem anderen Wertetyp und zum Umwandeln eines Wertetyps in einen anderen Wertetyp bereit.

Konnektivitäts-Framework für ThingConnect IoT

Hinweis: ThingConnect-Komponenten können separate mit dem GetIt-Package-Manager heruntergeladen werden.

ThingConnect verwandelt Standard- und benutzerdefinierte intelligente Geräte, Sensoren und Wearables für das Internet der Dinge (Internet of Things, IoT) in einfach zu verwendende API-Komponenten. Weitere Informationen finden Sie in der ThingConnect-Dokumentation.

BeaconFence

Hinweis: BeaconFence kann separat mit dem GetIt-Package-Manager heruntergeladen werden. Installationsanweisungen für BeaconFence finden Sie auf dieser Seite.

Wir haben BeaconFence in RAD Studio Berlin neue Features hinzugefügt. Zu den Verbesserungen von BeaconFence zählen:

  • Zonenerkennung mit Position oder PositionInPath.
  • Beacon-Unterstützung auf der Windows-Plattform.
  • Anpassungsfunktion der aktuellen Position.
  • Unterstützung für Eddystone-Beacons.
  • Verbesserte Berechnungsleistung.
  • Neue Funktionalität zum Zeichnen.
  • Zwei neue Eigenschaften wurden für den Zugriff auf die zuletzt berechneten Positionen hinzugefügt:
    • LastRawPosition
    • LastPathPosition
  • Neues Feature zum programmseitigen Aktivieren/Deaktivieren von Beacons. Die Eigenschaft UseToPositioning gibt an, ob der Beacon für die Berechnung der Position verwendet wird oder nicht.

RTL

Bluetooth LE- und Beacon-Unterstützung in Windows 10

RAD Studio Berlin enthält die neue WinRT Bluetooth-API zur Unterstützung von Bluetooth Low Energy und Beacons auf der Windows 10-Plattform. Sie können jetzt Anwendungen auf Windows 10 ausführen, die Folgendes ermöglichen:

Verbesserte Bluetooth LE-Ermittlungsleistung

Die RTL stellt jetzt eine neue Implementierung des BLE-Suchfilters bereit, der die neuen BLE-Chips mit geringem Energieverbrauch nutzt.

Sie können jetzt nach bestimmten BLE-Geräten suchen, indem Sie unabhängige, angepasste Suchfilter verwenden. Dazu können Sie:

  • Zum Schluss fügen Sie den Filter der Filterliste hinzu und starten mithilfe der neuen Implementierung von StartDiscovery die Ermittlung von Geräten.

Bluetooth LE enthält neue Ereignisse zum Behandeln von Abonnements für Merkmale

Die Komponente TBluetoothLE stellt zwei neue Ereignisse zum Behandeln von Abonnements für GATT-Server-Merkmale bereit:

Die bereits vorhandenen Ereignisse OnConnect und OnDisconnect wurden jetzt in die Komponente TBluetoothLE aufgenommen:

  • Das Ereignis OnConnect wird ausgelöst, wenn Sie eine Verbindung zu einem Remote-Gerät des GATT-Servers herstellen.
  • Das Ereignis OnDisconnect wird ausgelöst, wenn Sie die Verbindung zu einem Remote-Gerät des GATT-Servers trennen.

Unterstützung für das Eddystone Beacon-Format

Die RTL fügt Unterstützung für die Verwendung von Beacons mit dem Eddystone (EN)-Format hinzu. Es gibt drei mögliche Typen:

Verbesserte Beacon-Suchleistung

Durch Hinzufügen neuer BLE-Suchfilter wurde das Beacon-Framework verbessert und bietet folgende Aktionen:

  • Suche nach beliebigen Beacontypen zur gleichen Zeit.
  • Suche nach nicht registrierten Beacons.

Sie müssen jetzt einen zu überwachenden Beacon nicht registrieren. Stattdessen können Sie:

  • Auf Ihrem TBeacon-Gerät den Extended-Modus festlegen.
  • Die zu überwachenden nicht registrierten Beacons in der Eigenschaft ModeExtended angeben.
  • Die neue Methode StartScan zum Suchen der angegebenen Beacons verwenden.

Hinweis: Der letzte Punkt ermöglicht die simultane Suche nach Beacons verschiedener Arten.

Weitere Informationen finden Sie unter Registrieren von Beacons und Suchen nach Beacons.

Die Komponente TBeaconDevice unterstützt das Format Eddystone-Beacon

Durch Hinzufügen der Eddystone-Beacons wurde die Unterstützung für dieses Format in der Komponente TBeaconDevice ermöglicht.

Mit TBeaconDevice können Sie jetzt Anwendungen auf Ihrem BLE-Gerät ausführen, die Näherungsdaten mit den Spezifikationen (EN) eines Eddystone-Beacons bekanntgeben.

Sie können die Formate EddystoneUID und EddystoneURL über die Eigenschaft BeaconType auswählen.

Plattformunterstützung:

  • Auf Android-Geräten können Sie das Eddystone-Format mit Version 5.0 oder höher bekanntgeben.
  • Auf iOS-Geräten können nur iBeacon-Frames bekanntgegeben werden.
  • Windows-Geräte lassen das Eddystone-Format nicht zu, da mit der WinRT-API für BLE die bekanntgegebenen ServiceData nicht angepasst werden können.

Verbesserungen bei App-Tethering

Zu App-Tethering wurden die folgenden Features hinzugefügt:

Unterstützung für asynchrone HTTP-Anforderungen

Sie können jetzt HTTP-Anforderungen asynchron senden, sodass die Ausführung Ihrer Anwendung während eines Downloads nicht angehalten wird.

Informationen zur Verwendung der HTTP-Client-Komponenten finden Sie unter Asynchrones Ausführen von Anforderungen. Informationen zur Verwendung der HTTP-Client-API finden Sie unter THTTPClient.

Unterstützung für verschlüsselte ZIP-Dateien

TZipFile stellt ein Ereignis (oder eine Callback-Funktion) zur Verfügung, die Sie beim Extrahieren von verschlüsselten ZIP-Dateien, wie z. B. passwortgeschützten ZIP-Dateien, zum Dekomprimieren nutzen können.

Verbesserungen von String-Listen

TStrings und Unterklassen wie TStringList enthalten nun folgende Features:

  • AddPair zum Hinzufügen von Schlüssel/Wertepaaren zu der String-Liste mit dem sprechenden Programmierstil.
  • KeyNames zum Abrufen einer Liste mit Schlüsseln aus einer String-Liste, die Schlüssel/Wertepaare enthält.
  • Options zum einfachen Steuern vieler boolescher Eigenschaften in der String-Liste.
  • SetStrings, um die Strings aus einem anderen TStrings-Objekt zu kopieren. Die Prozedur entspricht Assign, jedoch ohne mehrere Eigenschaften zu kopieren wie Assign.
  • TrailingLineBreak; die Eigenschaft bestimmt, ob die Eigenschaft Text nach der letzten Zeile einen Zeilenumbruch enthalten muss oder nicht.
  • Updating; die Eigenschaft gibt an, ob sich die String-Liste mitten in einer Aktualisierung befindet oder nicht.
  • UseLocale; die Eigenschaft legt die Implementierung fest, die die String-Liste zum Vergleichen der Strings verwenden muss.
  • ExtractName erhielt ein neues Feld (AllNames), das die Rückgabe von ExtractName festlegt, wenn der zu analysierende String kein Schlüssel/Wertepaar ist.

TStringList erhält zudem neue überladene Konstruktoren zum Vereinfachen der Erstellung von initialisierten Instanzen von TStringList.

Verbesserungen von TMemIniFile

TMemIniFile hat folgende Features erhalten:

Pufferunterstützung für TFileStream

TFDFileStream wurde aus FireDAC.Stan.Util nach System.Classes verschoben und in TBufferedFileStream umbenannt.

TBufferedFileStream ist ein Nachkomme von TFileStream, der mehrfache, aufeinander folgende kleine Schreib- und Lesevorgänge optimiert. Mit anderen Worten: TBufferedFileStream fügt TFileStream Pufferunterstützung hinzu.

Hinweis: TBufferedFileStream stellt keine Leistungssteigerung für lange oder sich an zufälliger Position befindenden Lese- oder Schreibvorgänge bereit.

Geänderte Syntax für JSON-Pfade für den Zugriff auf Objekteigenschaften

Die unterstützte JSON-Pfadsyntax für den Zugriff auf Objekteigenschaften, die in ihren Namen Punkte enthalten, wurde in Berlin geändert:

Syntaxbeispiel Seattle Berlin

root."child.name"

YesC++11Feature.png

root["child.name"]

YesC++11Feature.png
YesC++11Feature.png

root['child.name']

YesC++11Feature.png

Optimierung von regulären Ausdrücken und String-Ersetzung

Die Verwendung von regulären Ausdrücken wird jetzt durch Verkürzung der Ausführungszeit und Verbesserung der Arbeitsspeichernutzung optimiert.

Die folgende Tabelle enthält ein Beispiel für die beschleunigte Ausführungszeit bei Verwendung der optimierten regulären Ausdrücke auf Windows- und Android-Plattformen. Diese Beispiele wurden für eine einfache Analyse der regulären Ausdrücke (170 KB-Datei) berechnet.

Plattform Ausführungszeit (ms) Beschleunigung
Vorher Optimiert
Windows (Intel i7, Windows 7) 5900 29 ~310x
Android (Motorola E(2nd gen), Android 5.0.2) 47075 420 ~111x
Hinweis: Die Beschleunigungswerte in dieser Tabelle sind für dieses Beispiel spezifisch. Die Werte könnten je nach regulärem Ausdruck und Arbeitscomputer variieren.

Eine sehr große Anzahl von Übereinstimmungen beeinflusst jetzt aufgrund der Optimierung die Auslastung des Arbeitsspeichers nicht wesentlich.

Die Leistung der Funktion StringReplace wurde auch verbessert.

Verbesserungen für HTTP-Verbindungen

  • Zwei neue Timeouts: ConnectionTimeout und ResponseTimeout für das HTTP-Framework und die HTTP-Komponente.

Funktionen URLEncode / URLDecode

Die Funktionen zur URL-Codierung und -Decodierung wurden nach System.NetEncoding verschoben.

Die Funktionen System.Net.URLClient.TURI.URLEncode und System.Net.URLClient.TURI.URLDecode sind jetzt veraltet. Verwenden Sie stattdessen System.NetEncoding.TURLEncoding.URLDecode und System.NetEncoding.TURLEncoding.Encode.

Die folgenden neuen Funktionen wurden System.NetEncoding hinzugefügt:

Verwenden von TMessageBase anstatt von TMessage für C++-Projekte

Die Klasse TMessage aus System.Messaging wurde in TMessageBase umbenannt, um Mehrdeutigkeiten in C++-Projekten zu vermeiden, die andere Units mit eigener Meldungsbehandlung, wie Winapi.Messages, einbeziehen.

TMessage verbleibt als Alias für TMessageBase.

Zu den Typen TRect, TRectF, TPoint und TPointF hinzugefügte C++-Funktionen

Neue C++-Funktionen wurden System.Types hinzugefügt:

Weitere RTL-Änderungen

Native APIs

  • Die in der Unit Androidapi.JNI.Bluetooth enthaltene Android Bluetooth LE-API wurde mit neuen Klassen und Methoden entsprechend den Änderungen aktualisiert, die in API-Level 21 (EN) für die Android-Plattform 5.0 oder höher eingeführt wurden.
  • RAD Studio enthält neue Units für DirectX 12 (EN).
  • Units für WinRT sind jetzt einfacher zu verwenden.

Delphi-Compiler

Verbesserte Leistung bei der Compilierung von Generics

An Delphi-Compilern wurde eine Reihe von Änderungen für Generics vorgenommen, wodurch die folgenden Verbesserungen erzielt wurden:

  • Die Analyse von Generics erfolgt jetzt bis zu dreimal schneller.
  • Die Leistung von DCC32, DCC64 und DCCOSX beim Linken von Projekten, die Generics ausgiebig verwenden, wurde verbessert.

Attribute werden von allen Compilern unterstützt

Alle Delphi-Compiler unterstützen jetzt die folgenden Attribute:

Weitere Verbesserungen der Delphi-Compiler

  • Der für bedingte Symbole zugewiesene Speicherplatz wurde von 256 Byte auf 4096 Byte erweitert.
  • Die Größe von Extended beträgt nun aus Gründen der Kompatibilität mit BCCOSX 16 Byte.
  • Zur Durchsetzung der Sichtbarkeitssemantik können unterstützende Klassen und Records nicht auf private Member der Klassen oder Records zugreifen, die sie erweitern.

Compiler für C++

Aktualisierung von BCCAARM und BCCIOSARM

BCCAARM und BCCIOSARM wurden für die Verwendung von Clang 3.3 und LLVM 3.3 aktualisiert.

Verbesserte C++-Unterstützung für Delphi-Typen

In C++-Compilern, die durch Clang erweitert wurden:

Änderungen von C++-Optionen

In C++-Compilern, die durch Clang erweitert wurden:

  • Die Befehlszeilenoption -PC zum Aktivieren der parallelen Compilierung in der Befehlszeile ist jetzt veraltet. Verwenden Sie stattdessen --jobs=<N>. Weitere Informationen finden Sie unter Verwenden der parallelen Compilierung.
  • Die Befehlszeilenoption -fmath-errno, mit der die Anzeige von Fehlern von mathematischen Funktionen angefordert wird, kann jetzt in der IDE konfiguriert werden. Sie finden die Option in den Gleitkomma-Optionen unter Projekt > Optionen > C++-Compiler > Erweitert. Diese Option ist standardmäßig für die durch Clang erweiterten C++-Compiler aktiviert.

Weitere Änderungen an C++-Compilern

  • Der BCC32C-Compiler stellt jetzt eine Abhängigkeitsprüfung bereit. Der Befehl Make compiliert nur die Dateien, die seit dem letzten Erzeugen geändert wurden, und Dateien, deren Abhängigkeiten sich geändert haben.
  • Die Bibliothek compiler-rt (EN) steht jetzt für BCC32C und BCC64 zur Verfügung.

Entfernung der Legacyheader

Hinweis: Header der Vorgängerversionen werden nur für Windows und OSX bereitgestellt. In jedem Fall müssen Sie die Legacyheader für iOS oder Android nicht einbeziehen (#include).

Wie in Änderungen von C++ für XE8 vorgewarnt, wurden die Header der Vorgängerversionen in den folgenden Fällen entfernt:

  • In Units, die in RAD Studio XE2 oder später eingeführt wurden. Diese Änderung kann zu Fehlern führen, wenn Sie anstelle von voll qualifizierten Headern nicht qualifizierte Header einführen. Geben Sie beispielsweise für die Verwendung der Unit System.SysUtils #include <SysUtils.hpp> statt #include <System.SysUtils.hpp> ein.
  • In einigen Units, die vor RAD Studio XE2 eingeführt wurden, wie z. B. Soap.SOAPMidas. In diesem Fall ist Soap.SOAPMidas der Name der Unit und der Name des Package. Deshalb sollten Sie zur Vermeidung von Namenskonflikten #include <Soap.SOAPMidas.hpp> anstatt von #include <SOAPMidas.hpp> verwenden.
  • DirectX Übersetzungsheader.

IDE

Unverankerter Formular-Designer

Sie können jetzt den Formular-Designer für die VCL und für FireMonkey frei platzierbar anzeigen. Sie können den eingebetteten Designer in den Optionen für den Formular-Designer aktivieren oder deaktivieren. Um den Formular-Designer frei platzierbar anzeigen, wählen Sie Tools > Optionen > Formular-Designer, deaktivieren das Kontrollkästchen Eingebetteter Designer und klicken auf OK. Die Änderungen werden beim nächsten Start der IDE wirksam.

FireUI Live-Vorschau

FireUI Live-Vorschau ist ein neues Tool in RAD Studio, das das aktive Formular der entworfenen Anwendung, gleichzeitig an verschiedene Geräte übermittelt, um festzustellen, wie das Anwendungsdesign in Echtzeit aussieht.

FireUI Live-Vorschau besteht aus zwei Teilen:

FireUI Live-Vorschau (IDE) benötigt keine weitere Installation und enthält die Standardkonfiguration. Informationen zum Konfigurieren zusätzlicher IDE-Optionen finden Sie unter FireUI Live-Vorschau (IDE-Optionen).

Informationen zum Beziehen des Clients finden Sie unter Beziehen der FireUI App-Vorschau.

GetIt-Abhängigkeiten

Neue Projektoptionen-Seite zur Verwaltung von GetIt-Abhängigkeiten.

In diesem Dialogfeld können Sie die Projektabhängigkeiten in Bezug auf die Packages des GetIt-Package-Managers festlegen.

Die Optionsseite GetIt-Abhängigkeiten befindet sich unter Projekt > Optionen > GetIt-Abhängigkeiten.

Positionsmarkenstapel

Der Positionsmarkenstapel stellt eine Methode zur Navigation durch Ihren Quellcode dar, bei der Sie Ihrem Code aufeinandergestapelte Positionsmarken hinzufügen. Anhand der Positionsmarken können Sie dann zurücknavigieren. Dabei wird jeweils zur letzten Positionsmarke des Stapels navigiert, also zur letzten Positionsmarke, die auf dem Stapel abgelegt wurde.

Weitere Informationen finden Sie unter Stapelpositionsmarken und Verwenden des Positionsmarkenstapels.

Auswahlerweiterung

Mit der Auswahlerweiterung können Sie den Bezeichner, auf dem sich der Cursor befindet, auswählen und die Auswahl zu größeren syntaktischen Gruppen erweitern, wie z. B. Anweisung, Zeile, Block, Methode usw. Drücken Sie die Tastenkombination STRG+W, um die Auswahl zu starten und zu erweitern.

Weitere Informationen finden Sie unter Auswahlerweiterung.

Methodentoxizitäts-Metriken

Die neue Projektseite Methodentoxizitäts-Metriken (Projekt > Methodentoxizitäts-Metriken) enthält Metriken zu den Funktionen Ihres aktiven Projekts, die Sie zum Suchen von für eine Umgestaltung (Refactoring) geeigneten Methoden verwenden können. Sie können Ihre Metriken im CSV-Format exportieren und die Schwellenwerte für Schlüsselmetriken auf der neuen Optionsseite Toxizitätsmetriken anpassen.

Verbesserungen der Strukturansicht für C++

Die Strukturansicht wurde verschiedenen Verbesserungen für C++ unterzogen, wie:

Verbesserungen des Android-Dienstes

Weitere Informationen finden Sie unter Erstellen von Android-Diensten.

Unterstützung für die Ausführung von iOS-Ad-hoc-Anwendungen

Sie können jetzt iOS-Anwendungen, die mit der Plattformkonfiguration Ad-hoc erstellt werden, aus der IDE ausführen.

Anpassbare Datei info.plist

Sie können Ihre info.plist-Datei für OS X- und iOS-Anwendungen anpassen.

Entwurfszeit-Verbesserungen für Android-Smartwatches

Der Formular-Designer stellt jetzt Folgendes zur Verfügung:

  • Zwei spezielle Ansichten für Android-Smartwatches.
  • Eine Vorschau des Designbereichs für vier verschiedene Android-Smartwatches.

Weitere Informationen finden Sie unter Erstellen von Anwendungen für Android-Smartwatches.

Neue Optionsseite für Dateizuordnungen

In früheren Versionen mussten Sie während der Installation auswählen, welche Dateierweiterungen RAD Studio zugeordnet werden sollten.

Jetzt können Sie RAD Studio-Dateizuordnungen auf der neuen Optionsseite Dateizuordnung konfigurieren.

Neue Option zum Anzeigen von Informationsmeldungen vom Delphi-Compiler

Die IDE ermöglicht jetzt die Anzeige von Informationsmeldungen vom Delphi-Compiler auf der Ausgabe-Registerkarte Meldungsfenster.

In Projekt > Optionen > Delphi-Compiler können Sie die Option Allgemeine Meldungen anzeigen für Ihr Projekt aktivieren.

Neue Option zum Ein-/Ausblenden der Navigationssymbolleiste

In der IDE können Sie jetzt die Navigationssymbolleiste für den Quelltext-Editor ausblenden.

Die neue Option Navigationssymbolleiste anzeigen befindet sich in Tools > Optionen > Editor-Optionen > Anzeige.

Weitere Informationen finden Sie unter So blenden Sie die Navigationssymbolleiste aus.

High-DPI-Unterstützung

Die IDE bietet jetzt DPI-Unterstützung (EN). Damit wird die Benutzerfreundlichkeit auf Systemen erhöht, die einen höheren DPI-Wert als 96 PPI verwenden.

Weitere IDE-Änderungen

  • Die CPU-Ansicht unterstützt das Debuggen von iOS- und Android-Anwendungen.

Debugger

iOS- und Android-Debugger

64-Bit-iOS-Debugger

Der 64-Bit-iOS-Debugger verfügt nun über die folgenden Features:

  • Unicode-Unterstützung.
  • Verbesserte Unterstützung für Delphi-Arrays, -Strings und -Zeichen.
  • Unterstützung für nicht-nullbasierte Arrays.
  • Unterstützung zum Auswerten von Eigenschaften und Varianten.
  • Möglichkeit der Definition von Haltepunkten in C++-Headerdateien.

Hilfsprogramme

  • Das Java2OP.exe-Tool arbeitet jetzt mit JDK 8.
  • Neues Tool SdkTransform.exe. Damit können Objective-C- oder C++-Header in Delphi-Header umgewandelt werden.

Beispielanwendungen

Neue Beispielanwendungen wurden Berlin hinzugefügt:

Hilfe

  • Für CHM-Dateien ist nun die Registerkarte Favoriten verfügbar.

Themen

Siehe auch