Neuerungen in XE8

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen in den letzten Releases


Die Releases XE8, XE8 Subscription Update 1 und XE8 General Update 1 enthalten die folgenden neuen und verbesserten Features.

Inhaltsverzeichnis

Neuerungen in XE8 Update 1

In der folgenden Liste finden Sie die verschiedenen Features, die in XE8 Subscription Update 1 und XE8 General Update 1 enthalten sind.

  • Subscription Update 1 ist für Kunden mit einem aktiven Update-Abonnement vorgesehen.
  • General Update 1 ist für XE8-Kunden ohne ein aktives Update-Abonnement vorgesehen.

Siehe Informationen über Update-Abonnements (EN).

Neuerungen in XE8 Subscription Update 1

Subscription Update 1 ist für Kunden mit einem aktiven Update-Abonnement vorgesehen.

  • Neue Features:
  • Ausgewählte Korrekturen:

Neuerungen in XE8 General Update 1

General Update 1 ist für XE8-Kunden ohne ein aktives Update-Abonnement vorgesehen.

  • Neue Features:
  • Community-Symbolleiste
  • Korrektur des iOS 8-Simulators
  • In der Erstauslieferung von XE8 fehlende Dateien hinzugefügt

Features in XE8 Update 1

GetIt-Package-Manager

Der Name des GetIt-Fensters sowie der Name des GetIt-Package-Managers im Tools-Menü wurden im GetIt-Package-Manager geändert.

GetIt enthält nun drei neue Filteroptionen: Kostenlos, Kaufen und Gekauft. Weitere Informationen zu diesen Optionen finden Sie unter Fenster "GetIt-Package-Manager".

FireDAC-Verbesserungen

In XE8 ist die Eigenschaft Unidirectional so synchronisiert, dass die schreibgeschützte Eigenschaft IsUniDirectional gelesen werden kann.

Ändern Sie den Wert der Eigenschaft Unidirectional Ihrer TFDQuery- oder TFDTable-Objekte, um Ihre FireDAC-Datenmengen in "Unidirektional" zu ändern.

Neue Symbolleiste Embarcadero Community

Mit der neuen Symbolleiste Embarcadero Community können Sie einfach eine Verbindung zur Embarcadero Social Community (EN) herstellen. Die Symbolleiste befindet sich in der rechten oberen Ecke der IDE.

Mit Ansicht > Symbolleisten > Embarcadero Community können Sie die Symbolleiste ein- oder ausblenden.

Weitere Informationen über diese Symbolleiste finden Sie unter Embarcadero Community-Symbolleiste.

Bevorzugte Projekte in der Willkomensseite

Die Willkommensseite enthält nun den Abschnitt Bevorzugte Projekte. Sie können diesem Abschnitt bevorzugte Projekte hinzufügen. Unter Bevorzugte Projekte auf der Willkommensseite finden Sie eine Erläuterung dazu, wie Sie bevorzugte Projekte der Willkommensseite hinzufügen bzw. daraus entfernen.

FireMonkey-Änderungen für XE8

FireMonkey ist unsere proprietäre Bibliothek der objektorientierten Programmierung (Klassen, Methoden, Eigenschaften usw.).

Native Darstellung von TListView, TSwitch, TMemo, TCalendar, TMultiView und TEdit auf iOS

Auf der iOS-Zielplattform unterstützt FireMonkey jetzt mit Stilen versehene und native Darstellungen für die Steuerelemente TListView, TSwitch, TMemo, TCalendar, TMultiView und TEdit.

  • Wenn Sie eine dieser Komponenten in den Formular-Designer einfügen, verwendet RAD Studio standardmäßig die mit Stilen versehene (Styled) Darstellung.
  • Um die native Darstellung auf der iOS-Zielplattform zu verwenden, setzen Sie die neue Eigenschaft ControlType auf Platform.

Weitere Informationen finden Sie unter TPresentedControl.ControlType, TListViewBase.ControlType und Native FireMonkey-iOS-Steuerelemente.

Verbesserte Interoperabilität zwischen Plattform- und mit Stilen versehenen Steuerelementen

Die Eigenschaft ControlType steht jetzt für einige Steuerelemente zur Verfügung, die noch über keine native iOS-Darstellung verfügen.

Desktop-Webbrowser

FireMonkey unterstützt jetzt die Komponente TWebBrowser auf Desktop-Plattformen (Windows und Mac OS X). Früher wurde TWebBrowser nur auf mobilen Plattformen (Android und iOS) unterstützt. Alle grundlegenden Funktionen des Webbrowsers (wie "Zu URL navigieren", "Zurück", "Vorwärts" usw.) sind verfügbar. Weitere Informationen finden Sie unter Mobile-Tutorial: Verwenden von Webbrowser-Komponenten (iOS und Android).

Interaktive Landkarten

Auf mobilen Plattformen (Android und iOS) unterstützt FireMonkey die Komponente TMapView, mit der Sie Ihren mobilen Anwendungen interaktive Landkarten hinzufügen können. Grundlegende Funktionen dieser Komponente:

  • Vier Kartenarten: Normal, Satellit, Hybrid und (nur für Android) Terrain.
  • Gesten-Steuerelement: Gesten-Steuerelemente für intuitive Neigung, Drehen und Zoomen.
  • Steuerung der Kartenansicht: Möglichkeit, die Karteneigenschaften, wie Kartenmittelpunktkoordinaten, Kartenausrichtung usw., zu steuern.
  • Benutzerdefinierte Marker: Möglichkeit, Marker zu Landkarten hinzuzufügen.

WICHTIG: Für die Verwendung von TMapView in einer Android-App benötigen Sie einen API-Key für Google Maps. Ohne einen gültigen API-Key tritt ein Laufzeitfehler auf. Einzelheiten zum Abrufen des API-Key für Google Maps finden Sie unter Konfigurieren von Android-Anwendungen für die Verwendung von Google Maps.

Weitere Informationen und Beispiele finden Sie unter Mobile-Tutorial: Verwenden einer Landkarten-Komponente für die Arbeit mit Landkarten (iOS und Android).

Neue Optionen für die Medienbibliothek

FireMonkey enthält jetzt eine Option zum Speichern der von der Gerätekamera aufgenommenen Bilder in der Fotobibliothek des Geräts.
Wenn Ihre Anwendung Bilder mit FireMonkey-Aktionen oder dem Interface IFMXCameraService verwaltet, können Sie mit der Eigenschaft TCustomTakePhotoAction.NeedSaveToAlbum oder einem Parameter vom Typ TParamsPhotoQuery veranlassen, dass Ihre Anwendung die Bilder automatisch in der Fotobibliothek des Geräts speichert.
Außerdem ermöglicht FireMonkey mit dem Interface IFMXPhotoLibrary, dass Sie beliebige Bitmap-Bilder in der Fotobibliothek des Geräts speichern.

Weitere Informationen und Codebeispiele finden Sie in den folgenden Themen:

Standardaktionen für TMediaPlayer

FireMonkey stellt jetzt die folgenden Standardaktionen bereit, mit denen Sie jede beliebige Instanz von TMediaPlayer steuern können:

Formularvorschau

In FireMonkey-Projekten steht jetzt eine Formularvorschau zur Verfügung. Die Formularvorschau ermöglicht beim Entwurf von Anwendungen die korrekte Platzierung von Formularen. Die Formularvorschau, die sich in der rechten unteren Ecke des Designers befindet, zeigt die Bildschirmposition des Formulars zur Laufzeit an.

InputQuery unterstützt jetzt die Maskierung von Eingabefeldern

InputQuery ermöglicht jetzt, dass Felder als maskiert gekennzeichnet werden, sodass Eingabedaten auf dem Bildschirm visuell maskiert sind. Um ein Feld als maskiert zu kennzeichnen, stellen Sie dem Feldnamen im Aufruf von InputQuery Folgendes voran:

  • Delphi: "#1". Verwenden Sie beispielsweise statt des Feldnamens 'Password' den Feldnamen #1'Password'.
  • C++: "\1". Verwenden Sie beispielsweise statt des Feldnamens "Password" den Feldnamen "\1Password".

AppAnalytics in FireMonkey

FireMonkey unterstützt jetzt die Komponente AppAnalytics, mit der Sie Nutzungsdaten für Ihre Anwendung protokollieren können. Sie müssen nur eine TAppAnalytics-Komponente in Ihre Anwendung einfügen und einige Optionen der Komponente festlegen. Nachdem TAppAnalytics aktiviert worden ist, sind nach einigen Minuten Nutzungsdaten in der AppAnalytics-Weboberfläche verfügbar.

  • AppAnalytics ist völlig anonym und erfasst und übermittelt keine vertraulichen oder personenbezogenen Daten.

Anpassen lokaler Mitteilungen

Eigene Mitteilungstöne

Sie können einen eigenen Mitteilungston festlegen, indem Sie den Wert des Feldes SoundName festlegen. Weitere Informationen finden Sie unter Mobile-Tutorial: Verwenden von Mitteilungen (iOS und Android).

Wiederholen von Mitteilungen

Wiederholen Sie geplante Mitteilungen in bestimmten Intervallen, indem Sie den Wert der Eigenschaft RepeatInterval festlegen. Weitere Informationen finden Sie unter Mobile-Tutorial: Verwenden von Mitteilungen (iOS und Android).

Die zur Laufzeit verwendete Android-Ansicht hängt von den Abmessungen des Zielgeräts ab

In den beiden folgenden Tabellen sind der zur Auswahl der passenden Android-Ansicht zur Laufzeit verwendete Algorithmus bzw. die Bereiche der Android-Gerätegrößen für die jeweilige Ansicht beschrieben:

Speichern von Bildern in der Fotobibliothek des Geräts

FireMonkey enthält jetzt das Interface IFMXPhotoLibrary zum Speichern von Bildern in der Fotobibliothek des Geräts:

Weitere Informationen zum Speichern von Bildern in der Fotobibliothek des Geräts finden Sie unter MediaLibrary.IFMXPhotoLibrary und IFMXPhotoLibrary.AddImageToSavedPhotosAlbum.

TImageList führt Bilderlisten als zentralisierte Bildersammlungen ein

FireMonkey stellt Bilderlisten jetzt in einer neuen Komponente, FMX.ImgList.TImageList, bereit. Bilderlisten bieten Tools mit vielfältigen Funktionen für die Verwendung von zentralisierten Sammlungen kleiner Bilder durch GUI-Elemente (Steuerelemente, Menüs und andere) in Ihren FireMonkey-Anwendungen. Die FireMonkey-TImageList dient denselben Zwecken wie die VCL-Vcl.Controls.TImageList, umfasst aber fortgeschrittenere Funktionen und ist für die Verwendung in plattformübergreifenden FireMonkey-Anwendungen geeigneter.

Jedes Bild in einer Liste wird aus mehreren Bitmaps mit Mehrfachauflösung gebildet, um sicherzustellen, dass Bilder auf Geräten mit unterschiedlichen Punktdichten und Auflösungen des Bildschirms korrekt angezeigt werden. Mit dem Bilderlisten-Editor können Sie FireMonkey-Bilderlisten vorbereiten und ändern.

Weitere Informationen finden Sie unter Verwenden von TImageList-Bilderlisten als zentralisierte Bildersammlungen und FMX.ImageList (Beispiel).

Neue und geänderte FireMonkey-API

Neues OnFilter-Ereignis

FireMonkey stellt das neue Ereignis OnFilter zum Festlegen von Filtern in einem Suchfeld bereit.

Weitere Informationen über das neue Ereignis OnFilter finden Sie unter TListViewBase.OnFilter und TSearchBoxModel.OnFilter.

Festlegen einer benutzerdefinierten Einstellung der Aufnahmequalität für Ihre Kamera

TVideoCaptureQuality verfügt über den neuen Wert CaptureSettings zum Festlegen einer benutzerdefinierten Einstellung der Aufnahmequalität für Ihre Kamera.

Neue Klasse "TBoundingBox"

TBoundingBox ist eine neue Klasse, die TRectF entspricht, aber für die Verwendung in 3D. Diese Klasse definiert einen Record-Typ, der die maximalen und minimalen Eckpunkte speichert, die ein Feld beschreiben.

Es gibt verschiedene Konstruktoren, mit denen Sie eine TBoundingBox erstellen können: durch Angabe eines Ursprungs, einer Reihe von Punkten, Koordinaten oder einer vorhandenen TBoundingBox. Unter anderem stellt diese Klasse die folgenden Methoden bereit: GetSize, Inflate, IntersectsWith, Contains und Normalize.

Eigenschaft "PullRefreshWait" für die native iOS-Listenansicht

Mit der neuen Eigenschaft PullRefreshWait können Sie festlegen, ob der animierte, sich drehende Mauszeiger (Wartecursor), der angezeigt wird, wenn PullToRefresh True ist, automatisch verschwindet.

Wenn Sie PullRefreshWait auf True setzen, müssen Sie die Methode StopPullRefresh aufrufen, um den animierten, sich drehenden Mauszeiger bei Bedarf auszublenden.

Die Eigenschaft PullRefreshWait betrifft nur native iOS-Steuerelemente.

Änderungen der Laufzeitbibliothek (RTL) für XE8

Neue HTTP-Client-API

Die RTL enthält mehrere neue Netzwerk-Units mit Membern, mit denen Sie einen HTTP-Client erstellen, Anforderungen an HTTP-Server senden und deren Antworten verwalten können.

In Verwenden eines HTTP-Clients wird erklärt, wie Sie mit den beiden neuen HTTP-Komponenten, TNetHTTPClient und TNetHTTPRequest, HTTP-Anforderungen behandeln können. Sehen Sie sich auch die Haupt-HTTP-Client-Klassen an:

  • THTTPClient – repräsentiert einen HTTP-Client.
  • THTTPRequest – repräsentiert eine Anforderung von Ihrem Client an einen Server.
  • THTTPResponse – repräsentiert die Antwort des Servers auf eine Anforderung Ihres Clients.

Beacon-Unterstützung

Die RTL unterstützt jetzt die Verwendung von Beacons. Ein Beacon ist ein Bluetooth Low Energy-Gerät, das in seinen Bekanntgabedaten herstellerspezifische Daten enthält. Anhand dieser Daten können alle Geräte, die diese Informationen empfangen, das Beacon-Gerät identifizieren und die Entfernung dazu berechnen, ohne dass eine Koppelung oder die Einrichtung einer Verbindung erfolgen muss.

Folgende verfügbare Beacon-Formate werden unterstützt:

  • iBeacon (EN) – Das von Apple definierte Format.
  • AltBeacon (EN) – Ein offenes Format, auch als "alternativer Beacon" bezeichnet, das Android und iOS unterstützt.

In Verwenden von Beacons wird gezeigt, wie eine Beacon-Anwendung implementiert wird.

Neue Komponente für Classic Bluetooth

Die Unit System.Bluetooth.Components enthält nun die Komponente: TBluetooth. Mit dieser neuen Komponente können Sie Classic Bluetooth in Ihren Anwendungen mit einem komponentenbasierten Ansatz nutzen.

Unter Verwenden von Classic Bluetooth finden Sie weitere Informationen zu dieser neuen Komponente.

Neue Hash-API

Die RTL enthält die neue Unit System.Hash. Diese Unit beinhaltet Klassen und Methoden, mit denen Sie die folgenden Hashfunktionen in Ihren Anwendungen verwenden können:

Neue Delphi-Datentypen FixedInt und FixedUInt

In XE8 wurden zwei neue plattformunabhängige 32-Bit-Integertypen eingeführt:

  • FixedInt: 32-Bit-Integertyp mit Vorzeichen.
  • FixedUInt: 32-Bit-Integertyp ohne Vorzeichen.

FixedInt und FixedUInt stellen Portabilität, bessere Integration und Interoperabilität mit 32-Bit- und 64-Bit-Plattformen sicher. Diese beiden neuen Typen gewährleisten die Unterstützung der Programmiersprachen Delphi und C++ in Ihren Anwendungen.

Die Größe von FixedInt und FixedUInt beträgt auf allen 64-Bit- und 32-Bit-Plattformen 32 Bit (64-Bit-iOS, 64-Bit-Windows, 32-Bit-Windows, OSX32, 32-Bit-iOS und Android). Die folgende Tabelle enthält die äquivalenten Typen der verschiedenen Plattformen.

Äquivalente Typen anderer Plattformen
Windows-Plattformen
(32-Bit- und 64-Bit-Windows)
OSX32, Android-Plattformen und
iOS-Plattformen (32-Bit- und 64-Bit-iOS)
FixedInt LongInt Integer

FixedUInt

LongWord Cardinal

Weitere Informationen finden Sie unter:

Änderung der Größe von LongInt und LongWord für 64-Bit-iOS-Plattformen

LongInt und LongWord sind jetzt plattformabhängige Integertypen.

Auf 64-Bit-iOS-Plattformen sind LongInt und LongWord doppelt so groß wie auf 32-Bit-Plattformen (32-Bit-Windows, OSX32, 32-Bit-iOS und Android), und auf 64-Bit-Windows-Plattformen sind die folgenden Größen festgelegt:

Größe
32-Bit-Plattformen und 64-Bit-Windows-Plattformen 64-Bit-iOS-Plattformen
LongInt 32 Bit (4 Byte) 64 Bit (8 Byte)

LongWord

32 Bit (4 Byte) 64 Bit (8 Byte)

Weitere Informationen finden Sie unter Plattformabhängige Integertypen.

Asynchronous Programming Library (APL)

Die RTL unterstützt die asynchrone Programmierung in TComponent.

Weitere Informationen finden Sie unter Verwenden der APL (Asynchronous Programming Library).

Änderungen der VCL für XE8

SetApplicationMainFormOnTaskBar wurde aus Vcl.Forms.hpp entfernt

In Ihren vorhandenen C++-VCL-Anwendungen sollten Sie die folgende Zeile:

 SetApplicationMainFormOnTaskBar(Application, true);

durch diese Zeile ersetzen:

  Application->MainFormOnTaskBar = true;

Weitere Informationen finden Sie unter:

AppAnalytics in der VCL

Die VCL unterstützt jetzt die Komponente TAppAnalytics. AppAnalytics ermöglicht Ihnen, Nutzungsdaten Ihrer Anwendung zu protokollieren. Sie müssen nur eine TAppAnalytics-Komponente in Ihre Anwendung einfügen und einige Optionen der Komponente festlegen. Nach der Aktivierung von AppAnalytics sind nach wenigen Minuten Nutzungsdaten in der AppAnalytics-Weboberfläche verfügbar. AppAnalytics erfasst und übermittelt keine vertraulichen oder personenbezogenen Daten. Die Daten sind vollkommen anonym.

Weitere Informationen finden Sie unter Übersicht über AppAnalytics.

Neue VCL-Stile

Drei neue VCL-Stile wurde in XE8 aufgenommen: Glow, Sky und Tablet Light.

Mit Projekt > Optionen > Anwendung > Erscheinungsbild können Sie auf die VCL-Stile zugreifen.

Delphi-Änderungen für XE8

DCCIOSARM64.EXE: Neuer Compiler für 64-Bit-iOS-Geräte

Der Compiler DCCIOSARM64.EXE ist ein neuer Compiler der nächsten Generation, der die Entwicklung von 64-Bit-iOS-Apps unterstützt.

Beachten Sie bitte, dass für den App Store jetzt 32-Bit-iOS-Apps auch 64-Bit-iOS-Geräte unterstützen müssen. Weitere Informationen finden Sie unter Neue Option zum Erzeugen von iOS-Binärdateien, die 32-Bit- und 64-Bit-iOS unterstützen.

Universelle iOS-Apps: DCCIOSARM64 unterstützt auf der Seite Compilieren der Projektoptionen eine neue Option: Universelle iOS-Binärdatei generieren (armv7 + arm64).
Durch Setzen dieser Option auf True wird eine universelle iOS-App generiert, die auf 32-Bit- und 64-Bit-iOS-Geräten ausgeführt wird. Diese Option ist nur verfügbar, wenn die Zielplattform iOS-Gerät - 64 Bit ist.

Siehe auch Bedingte Compilierung (Delphi).

Zwei neue Datentypen: FixedInt und FixedUInt

Einzelheiten finden Sie unter Neue Delphi-Datentypen FixedInt und FixedUInt.

Änderungen von C++ für XE8

BCCIOSARM64.EXE: Neuer durch Clang erweiterter Compiler für 64-Bit-iOS-Geräte

Es wurde ein neuer Compiler hinzugefügt, der 64-Bit-iOS-Anwendungen erzeugt: BCCIOSARM64.EXE: Der C++-Compiler für 64-Bit-iOS-Geräte.

Beachten Sie bitte, dass für den App Store jetzt 32-Bit-iOS-Apps auch 64-Bit-iOS-Geräte unterstützen müssen. RAD Studio enthält eine Option zum Erstellen einer universellen 32-Bit/64-Bit-iOS-App. Weitere Informationen finden Sie unter Neue Option zum Erzeugen von iOS-Binärdateien, die 32-Bit- und 64-Bit-iOS unterstützen.

BCCIOSARM64 unterstützt das neue vordefinierte Makro __arm64__. Um für die 64-Bit-iOS-Zielplattform spezifischen Code zu schreiben, können Sie das Makro wie folgt verwenden:

#if defined (__arm64__)
 ...
#endif

Um für x64 (iOS und Windows) spezifischen Code zu schreiben, können Sie Folgendes verwenden:

#if defined(__clang__) && (__POINTER_WIDTH__ == 64)
...
#endif

Weitere Informationen finden Sie unter Vordefinierte Makros.

Beim Einbeziehen von Laufzeit-Packages sind jetzt voll qualifizierte Namen erforderlich

Beim Erzeugen einer VCL- oder FireMonkey-C++-Anwendung führt die IDE eine Package-Analyse durch – das heißt, die IDE berechnet aus den einbezogenen Headern die Packages, die für Anwendung erforderlichen sind bzw. von der Anwendung verwendet werden. Vor XE8 hat die IDE Basisnamen beim Abgleichen von Headern mit Packages verwendet. Wenn die Datei SysUtils.hpp in eine Anwendung einbezogen wurde, hat die IDE beispielsweise gefolgert, dass die Anwendung das rtl-Package verwendet. und #include ActnCtrls.hpp bedeutete, dass die Anwendung das vcl-Package verwendet.

Die Verwendung von Basisnamen hat jedoch Nachteile. Von einer Anwendung, die einen Header namens About.h|hpp einbezieht, könnte fälschlicherweise angenommen werden, dass die Anwendung das FireDAC UI-Package einbezieht, weil dieses eine Unit mit Namen FireDAC.VCLUI.About.hpp enthält. Ebenso könnte das Einbeziehen von assert.h die IDE dazu veranlassen, das DUnitXRuntime-Package zu linken (es enthält eine Unit namens DUnitX.Assert).

Nur Übereinstimmungen mit dem qualifizierten Namen

Ab XE8 betrachtet die IDE ein Package nur als erforderlich, wenn eine #include-Anweisung für den qualifizierten/vollständigen Namen einer Unit in diesem Package vorhanden ist. Das heißt, wenn die IDE auf die Anweisung #include <XMLDoc.hpp> trifft, wird nicht mehr angenommen, dass das Xml-Package erforderlich ist.

Die IDE bezieht das Package xmlrtl nur dann ein, wenn Sie den vollständig qualifizierten Namen angeben: #include <Xml.XMLDoc.hpp>.

Diese Änderung wirkt sich nur auf neue Projekte aus

Die Änderung betrifft neue Projekte oder wenn in ein vorhandenes Projekt ein bisher noch nicht verwendetes Package einbezogen wird. Diese Änderung wirkt sich nicht auf vorhandene Projekte aus, da deren Package-Anforderungen bereits berechnet und in der Projektdatei (<Projektname>.cbproj) gespeichert wurden.

Neue Makros definiert

Um Ihnen die Überwachung der Verwendung von voll qualifizierten Package-Namen zu ermöglichen, wurden die beiden folgenden neuen Makros definiert:

  • WARN_LEGACY_HEADER_USAGE – Generiert eine Warnung, wenn ein nicht qualifizierter Header einbezogen ist.
  • ERROR_LEGACY_HEADER_USAGE – Generiert einen Fehler, wenn ein nicht qualifizierter Header einbezogen ist.

Wenn Sie #define WARN_LEGACY_HEADER_USAGE hinzufügen und dann #include <SysUtils.hpp> eingeben, wird nach dem nächsten Build die folgende Warnung angezeigt:

 Include <System.SysUtils.hpp> instead

Wenn Sie #define ERROR_LEGACY_HEADER_USAGE hinzufügen und dann #include <SysUtils.hpp> eingeben, wird nach dem nächsten Build die folgende Fehlermeldung angezeigt:

 Fatal F1003 $BDS\include\windows\rtl\SysUtils.hpp 8: Error directive: Include 'System.SysUtils.hpp' instead
  *** 1 errors in Compile ***

DynamicArrays: Erstellung und Initialisierung sind jetzt benutzerfreundlicher

Früher mussten Sie die Länge eines DynamicArray festlegen und dann die Elemente wie folgt hinzufügen:

  DynamicArray<int> test;
  test.Length = 3;
  test[0] = 1;
  test[1] = 2;
  test[2] = 3;

Jetzt können Sie ein dynamisches Array gleichzeitig initialisieren und erstellen, wenn Sie einen der C++-Compiler, die durch Clang erweitert wurden, verwenden:

  DynamicArray<int> test = {0, 1, 2};

Für BCC32 können Sie das Array wie folgt initialisieren und erstellen:

 DynamicArray<int> test(0, 1, 2);

Die neue Syntax wurde mit C++11 std::initializer_list implementiert.

Neue Formen

Für Alle Unsere C++-Compiler

Verwenden eines einfachen C++-Arrays:

    // template <size_t SIZE> System::DynamicArray(T(&array)[SIZE]);
    int values[] = { 1, 2, 3, 4, 5 };
    System::DynamicArray<int> h(values);

Für C++-Compiler, die durch Clang erweitert wurden

C++11-Initialisierungslisten:

    // System::DynamicArray(std::initializer_list<T> il);
    System::DynamicArray<char> ArrayOfChars('a', 'b', 'c');
    System::DynamicArray<int> ArrayOfInts(0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
                                        10, 11, 12, 13, 14, 15, 16, 17, 18);

Variadischer C++11-Konstruktor mit template:

    // template <class... Types> System::DynamicArray(const T &t, Types && ...values);
    System::DynamicArray<char> c('a'); // t='a', ...values=<>
    System::DynamicArray<char> d('a', 'b', 'c'); // t='a', ...values=<'b', 'c'>

Für BCC32

Da BCC32 keine uniforme C++11-Initialisierung unterstützt, wurden Konstruktorüberladungen für 2 bis zu 19 Parameter hinzugefügt:

    // System::DynamicArray(const T &t0,  const T &t1,  const T &t2);
    System::DynamicArray<char> f('a', 'b', 'c');
    // System::DynamicArray(const T &t0,  const T &t1,  const T &t2,  const T &t3,
    //                      const T &t4,  const T &t5,  const T &t6,  const T &t7,
    //                      const T &t8,  const T &t9,  const T &t10, const T &t11,
    //                      const T &t12, const T &t13, const T &t14, const T &t15,
    //                      const T &t16, const T &t17, const T &t18);
    System::DynamicArray<int> g( 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
                                10, 11, 12, 13, 14, 15, 16, 17, 18);

Weitere Informationen finden Sie unter Strukturierte Typen (Delphi).

SetApplicationMainFormOnTaskBar wurde aus Vcl.Forms.hpp entfernt

Einzelheiten dazu finden Sie unter Änderungen der VCL für XE8.

Boost ist jetzt außerhalb des Installationsprogramms verfügbar

Die Boost-Bibliotheken sind nicht mehr Bestandteil des Produkt-Installationsprogramms. Boost kann sehr einfach installiert werden, indem Sie Tools > GetIt wählen, um das GetIt-Hauptfenster zu öffnen, und dann Boost aus GetIt für die Installation auswählen.

Weitere Möglichkeiten zum Installieren (oder Deinstallieren) von Boost finden Sie unter Boost.

Neue Möglichkeiten zur Behandlung von anonymen Delphi-Methoden

Wir haben die empfohlene Methode zur Behandlung der anonymen Delphi-Methoden in C++-Anwendungen aktualisiert. In der überarbeiteten Beschreibung in Behandlung der anonymen Methoden von Delphi in C++ wird entweder ein Funktor (Funktionsobjekt) oder ein Lambda-Ausdruck verwendet. Weitere Informationen finden Sie in den Codebeispielen auf der Seite.

C++-Zuweisungsoperator mit gleicher Funktion wie der implizite Delphi-Operator

In C++ können Sie den operator= für die Zuweisung zum Ergebnistyp verwenden, genauso wie der implizite Operator in Delphi verwendet wird.

Beispielsweise ist es in Delphi möglich, der Variable myVar mit dem Typ TValue verschiedene Typen zuzuweisen:

a := 'assigning a string';
a := 123;
a := 3.14;

Früher mussten Sie in C++ ohne den Zuweisungsoperator Folgendes schreiben:

a = TValue::_op_Implicit(UnicodeString(L"assigning a string"));
a = TValue::_op_Implicit(123);
a = TValue::_op_Implicit(3.14L);

Jetzt können Sie in C++ mit dem Zuweisungsoperator Folgendes schreiben:

a = UnicodeString(L"assigning a string");
a = 123;
a = 3.14L;

Weitere Einzelheiten finden Sie unter C++-Zuweisungsoperator mit gleicher Funktion wie der implizite Delphi-Operator.

Änderungen der IDE für XE8

Neue Zielplattform: iOS-Gerät - 64 Bit

So erstellen Sie eine App für die neue Plattform iOS Gerät - 64 Bit:

Geräteübergreifende Vorschau

Mit der neuen geräteübergreifenden Vorschau können Sie eine Vorschau Ihrer Anwendung auf verschiedenen Geräten anzeigen. In der geräteübergreifenden Vorschau wird eine Vorschau des Designbereichs gleichzeitig auf verschiedenen Geräten angezeigt. Sie können die Geräte für die Vorschau auswählen.

MDPreviewWindow1.png

Wählen Sie Ansicht > Geräteübergreifende Vorschau, um das Fenster Geräteübergreifende Vorschau zu öffnen.

Weitere Informationen zu dieser Funktion finden Sie unter Geräteübergreifende Vorschau.

Gerätemanager

Der Gerätemanager zeigt eine Tabelle mit den verfügbaren Geräte-Voreinstellungen an. Die Geräte-Voreinstellungen sind eine Liste der verfügbaren Geräte, die Sie beim Entwurf zum Beispiel im Fenster Geräteübergreifende Vorschau verwenden können.

Sie öffnen den Gerätemanager mit Tools > Optionen > Umgebungsoptionen > Formular-Designer > Gerätemanager.

DeviceManager.png

Mit dem Gerätemanager können Sie eine Geräte-Voreinstellung mithilfe des Fensters Geräteeinstellungen hinzufügen, bearbeiten und löschen.

Die Geräte-Voreinstellungen können auch als Ansichten Ihres geräteübergreifenden Projekts verwendet werden, wenn die Ansicht durch Installieren des Package einer solchen Ansicht registriert wurde.

Der Gerätemanager verwaltet die Datei DevicePresets.xml.

Hinweis: In XE8 wurde die Datei MobileDevices.xml in DevicePresets.xml umbenannt.

Ausführen Ihrer Apps auf beliebigen iOS-Simulatoren

Im Knoten Ziel des Plattformknotens iOS-Simulator in der Projektverwaltung ist jetzt die vollständige Liste der Simulatoren enthalten, die von der Xcode-Installation auf Ihrem Mac unterstützt werden. In der Projektverwaltung wird auch die iOS-Version für jeden Simulator angezeigt, und Sie können Ihre Anwendungen auf einem Gerätemodell mit einer der unterstützten iOS-Versionen ausführen.

XE8iOSSimulatorTarget.png

"Weitere Dateien hinzufügen" wird bei Bedarf automatisch geöffnet

Wenn Sie der Projektverwaltung eine Datei hinzufügen, für die weitere Dateien in der Bereitstellungskonfiguration Ihres Projekts erforderlich sein könnten, öffnet RAD Studio jetzt eine gefilterte Ansicht des Dialogfeldes Weitere Dateien hinzufügen, sodass Sie die erforderlichen weiteren Dateien in die Bereitstellungskonfiguration Ihres Projekts einfügen können. Weitere Informationen finden Sie unter Weitere Dateien hinzufügen – Gefilterte Liste.

Deaktivieren von in RAD Studio integrierten Java-Bibliotheken für Android in der Projektverwaltung

In XE8 sind in der Projektverwaltung die integrierten RAD Studio-Java-Bibliotheken für Android aufgeführt, und Sie können jede dieser Bibliotheken deaktivieren. Deaktivieren Sie Java-Bibliotheken, die Ihre Anwendung nicht benötigt, um eine schlankere Anwendung zu erhalten. Weitere Informationen finden Sie unter Verwenden der in RAD Studio integrierten Java-Bibliotheken für Android.

XE8DisableJavaLibrary.png

In XE7 konnten Sie Ihren Android-Anwendungen benutzerdefinierte Java-Bibliotheken einfach in der Projektverwaltung hinzufügen. Um jedoch nicht benötigte Java-Bibliotheken zu entfernen, die RAD Studio standardmäßig in Android-Anwendungen einbezieht, mussten Sie manuell eine benutzerdefinierte classes.dex-Datei anlegen und bereitstellen.

Mercurial-Versionskontrollsystem in die IDE integriert

RAD Studio unterstützt jetzt zur Verwaltung und Protokollierung von Änderungen in Ihren Projekten ein neues in die IDE integriertes Versionskontrollsystem: Das verteilte Mercurial-Versionskontrollsystem.

In der Versionsverwaltung sind jetzt integrierte Informationen der Mercurial-Versionskontrolle aus Ihrem lokalen Repository enthalten. Informationen über die protokollierten Änderungen Ihres Projekts finden Sie auf den Registerkarten "Inhalt", "Information" und "Unterschiede".

Mercurial kann eingesetzt werden, um:

  • Eine Kopie Ihres Remote-Mercurial-Repository zu klonen und damit zu arbeiten.
  • Ihre Änderungen an Ihr lokales Repository zu übergeben.
  • Protokolldaten aus dem Remote-Repository für Ihr Projekt anzuzeigen.

In XE8 wurden der IDE einige Git-Funktionen hinzugefügt:

  • Authentifizierung in Ihrem privaten Remote-Repository.
  • Ablegen Ihrer Änderungen im Remote-Git-Repository (Push ausführen) und Abrufen von Änderungen aus dem Repository (Pull ausführen), um Ihre Arbeitskopie mit den neuesten Remote-Änderungen zu aktualisieren.

Weitere Informationen über die in der IDE integrierten Versionskontrollsysteme finden Sie unter:

Tool zum Migrieren von Einstellungen

Mit dem neuen, in RAD Studio XE8 enthaltenen Tool zum Migrieren von Einstellungen können Sie Konfigurationseinstellungen importieren und exportieren (zwischen RAD Studio und Appmethod sowie zwischen verschiedenen Versionen der Produkte).

Das Migrationstool unterstützt Borland Delphi 7 und alle späteren Versionen.

Mit dem Tool zum Migrieren von Einstellungen können Sie:

Das Tool migrationtool.exe befindet sich in folgendem Verzeichnis: C:\Programme (x86)\Embarcadero\Studio\16.0\bin.

Weitere Einzelheiten finden Sie auf der Seite Tool zum Migrieren von Einstellungen.

Neue Optionen zur Codesignierung von iOS-Anwendungen

Sie können jetzt die Signaturdaten auswählen, die RAD Studio für die Codesignatur Ihrer iOS-Anwendungen verwendet.

Auf der Seite Bereitstellung stehen für die verschiedenen Build-Typen für iOS-Geräte (Entwicklung, Ad hoc, Anwendungs-Store) folgende Optionen zur Auswahl:

Wenn Sie einen dieser Werte auf der Einstellung Auto belassen, wählt RAD Studio ein geeignetes Bereitstellungsprofil und Entwicklerzertifikat, das zum CFBundleIdentifier und zum Gerät passt. Weitere Einzelheiten finden Sie unter Ausfüllen der Bereitstellungsseite.

Neue Option zum Erzeugen von iOS-Binärdateien, die 32-Bit- und 64-Bit-iOS unterstützen

Alle neuen iOS-Apps, die an den App Store übermittelt werden, müssen ab dem 1. Februar 2015 die Unterstützung für 64 Bit umfassen. Das heißt, Anwendungen, die für Geräte mit 32-Bit-iOS entwickelt werden, müssen auch 64-Bit-iOS unterstützen.

Die IDE beinhaltet eine neue Compiler-Option für die Zielplattform 64-Bit-iOS, Universelle iOS-Binärdatei generieren (armv7 + arm64).
Wenn Sie diese Option aktivieren und Ihre Anwendung bereitstellen generiert die IDE eine Fat Binary, die 32-Bit- und 64-Bit-iOS unterstützt.

Sie finden diese Option unter:

  • Projekt > Optionen > Delphi-Compiler > Compilieren > Weitere Optionen (Delphi)
  • Projekt > Optionen > C++-Compiler > Erweitert > Weitere Optionen (C++)

Berechtigung "Push-Benachrichtigungen empfangen" ist für iOS-Anwendungen nicht mehr erforderlich

Um den Empfang von Push-Benachrichtigungen in iOS-Anwendungen zu aktivieren, müssen Sie in den Projektoptionen keine weiteren Berechtigungen mehr festlegen.
RAD Studio führt die Codesignierung der iOS-App mit einem Bereitstellungsprofil durch, das Dienste für Push-Benachrichtigungen auf dem Gerät, auf dem die App installiert ist, zulässt. Weitere Informationen finden Sie unter Push-Benachrichtigungen.

Castalia-Integration

In XE8 ist Castalia mit einem speziellen Menü in die IDE integriert. Castalia fügt Funktionen hinzu, mit denen Sie einige Aufgaben einfacher ausführen können. Die Castalia-Funktionen sind in 4 Abschnitte unterteilt:

  • Visuelle Funktionen: Dem Quelltext-Editor hinzugefügte visuelle Elemente sorgen für ein besseres Verständnis der Struktur und des Ausführungsablaufs Ihres Codes.
  • Steuerelemente im Quelltext-Editor: Der IDE hinzugefügte Steuerelemente unterstützen Sie bei der Navigation durch Ihren Code.
  • Nicht visuelle Funktionen: Eine Reihe von Tastenkürzeln stellen Funktionen für die Verwendung beim Schreiben von Code bereit.
  • Menü "Castalia": Funktionen und Statistiken Ihres Codes, auf die Sie über das neue Menü zugreifen können.

Unter Übersicht über Castalia ist die Verwendung der Castalia-Funktionen beschrieben.

Customer-Experience-Programm

Die IDE enthält eine neue Option für die Teilnahme am Customer-Experience-Programm. Sie können an diesem Programm teilnehmen und Embarcadero helfen, RAD Studio zu verbessern.

Das Customer-Experience-Programm sammelt während der Sitzung Informationen zur Nutzung der IDE (wie oft Sie RAD Studio starten, wie Sie in der IDE navigieren usw.). Diese Informationen sind völlig anonym, da das Programm keine vertraulichen oder personenbezogenen Daten erfasst und übermittelt.

Sie finden diese Option unter:

Weitere Einzelheiten finden Sie auf der Seite Customer-Experience-Programm.

Visuelle Änderungen und Anpassung

Das Erscheinungsbild der IDE wurde für XE8 geändert. Informationen darüber, wie Sie das Erscheinungsbild der IDE anpassen können, finden Sie unter Systemregistrierungsschlüssel für visuelle IDE-Einstellungen. Führen Sie die folgenden Schritte aus, um einige dieser Änderungen in der XE8-IDE auf das Erscheinungsbild der XE7-IDE zurückzusetzen:

  1. Erstellen Sie ein neues Textdokument (Sie können dazu einen beliebigen Texteditor verwenden), und kopieren Sie den folgenden Text in diese Datei: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Embarcadero\BDS\16.0\ModernTheme] "FontName"="MS Sans Serif" "FontSize"=dword:00000008 "MainToolBarColor"="clBtnFace"
  2. Speichern Sie die Datei mit der Erweiterung .reg.
  3. Führen Sie die Datei aus. Es wird eine Warnung bezüglich der Änderung der Registrierung angezeigt. Akzeptieren Sie diese Warnung, damit die Änderungen übernommen werden.
    Hinweis: Zum Ausführen von Registrierungsskriptdateien sind möglicherweise Administratorrechte erforderlich. Wenn die IDE geöffnet war, während Sie Registrierungswerte festgelegt oder geändert haben, müssen Sie die IDE neu starten, damit die Werte wirksam werden.

Änderungen von Datenbanken und Konnektivität für XE8

Änderungen für FireDAC

Sie müssen möglicherweise vorhandenen FireDAC-Code aktualisieren, damit er den folgenden API-Änderungen entspricht:

Basis-Member* Änderungen

FireDAC.Comp.Client.TFDAdaptedDataSet.OnError
FireDAC.Comp.Client.TFDCustomCommand.OnError
FireDAC.Comp.Client.TFDCustomConnection.OnError
FireDAC.Comp.Client.TFDCustomConnection.OnRecover
FireDAC.Comp.Client.TFDCustomSchemaAdapter.OnError
FireDAC.Comp.Client.TFDCustomTableAdapter.OnError
FireDAC.Comp.Client.TFDRdbmsDataSet.OnError
FireDAC.Comp.Script.TFDScript.OnError
FireDAC.Phys.TFDPhysDriverService.OnError

In XE7 war AInitiator ein konstantes IFDStanObject-Objekt-Interface.

In XE8ist AInitiator dasselbe Objekt, aber Sie erhalten es als Instanz von TObject.

FireDAC.Comp.Client.TFDCustomConnection.OnLogin

In XE7 war der zweite Parameter AConnectionDef, ein konstantes IFDStanConnectionDef-Objekt-Interface.

In XE8 ist AParams der zweite Parameter, eine Instanz von TFDConnectionDefParams, die dieselben Daten enthält, die AConnectionDef.Params in XE7 enthielt.

FireDAC.Comp.UI.TFDGUIxScriptDialog.OnProgress

In XE7 war AInfoProvider ein konstantes IFDGUIxScriptDialogInfoProvider-Objekt-Interface.

In XE8ist AInfoProvider dasselbe Objekt, aber Sie erhalten es als Instanz von TObject.

* Die Änderungen wirken sich auch auf Member aus, die von den aufgeführten Membern abgeleitet sind.

Enterprise Mobility Services

Anwendung "EMS Management Console"

Die Anwendung "EMS Management Console" ist eine Beispielanwendung, die zum Lieferumfang von RAD Studio gehört und die Sie nutzen können, um die auf Ihrem EMS-Server gespeicherten Daten zu verwalten und EMS-Push-Benachrichtigungen an die registrierten Geräte zu senden. Sie können diese Anwendung bei Bedarf unter Verwendung des mit RAD Studio ausgelieferten Quellcodes anpassen.

Mit der Anwendung "EMS Management Console" können Sie:

Weitere Informationen zur Verwendung der Anwendung "EMS Management Console" und zum Speicherort des Quellcodes finden Sie unter Anwendung "EMS Management Console".

Datenbankkompatibilität von 64-Bit-iOS-Geräten

Die neue 64-Bit-iOS-Geräteplattform wurde in XE8 hinzugefügt. Diese neue Plattform bietet dieselbe Kompatibilität mit dem Datenbankmanagementsystem (DBMS) wie die 32-Bit-iOS-Geräteplattform:

Änderungen des Bitmap-Stil-Designers für XE8

  • Der Bitmap-Stil-Designer wurde aktualisiert und bietet nun neue Stilvorlagen für die aktuell unterstützten Versionen von iOS und Android.
  • {{Mit der Schaltfläche Neuer Stil kann eine Auswahl von Stilvorlagen angezeigt werden, darunter iOS, Android, VCL, Windows, Mac OS X , Metropolis-UI und verschiedene leere Stile.
  • Sie können mit den neuen Befehlen im Menü "Stil", z. B. Neue Objekte für Grafik in 1.5x-Auflösung hinzufügen, Neue Objekte für Grafik in 2.0x-Auflösung hinzufügen und Neue Objekte für Grafik in 3.0x-Auflösung hinzufügen, Objekte für unterschiedliche Auflösungen erstellen.
  • Objektvorlagen können Sie jetzt mithilfe der neuen Symbolleistenschaltfläche Objektvorlage hinzufügen hinzufügen. Bei Verwendung der Standardobjektstruktur müssen Sie nur die vordefinierten Elemente anpassen und die gewünschten Eigenschaften festlegen.
  • Mit dem neuen Kontextmenübefehl Objekt automatisch für alle Grafikauflösungen anpassen können Sie automatisch andere geeignete Auflösungen für Ihre Objekte erstellen.
  • Sie können Ihre benutzerdefinierten Objekte mit den neuen Kontextmenübefehlen Objektstil testen (mit unterschiedlichen Auflösungen) testen.

Änderungen der Software von Fremdherstellern für XE8

Box2D für Delphi und C++

RAD Studio enthält jetzt Box2D, eine Open-Source-Physik-Engine für Spiele. Sie können Box2D in Delphi- und C++-Anwendungen in RAD Studio verwenden.

Änderungen des Debuggers für XE8

Das Debuggen von iOS64-Apps wird nicht unterstützt (F9 ist für die Zielplattform iOS-Gerät - 64 Bit nicht aktiviert).
Stattdessen sollten Sie iOS-Gerät - 32 Bit als Zielplattform festlegen, Ihre App debuggen und dann Ihre App für die Zielplattform iOS-Gerät - 64 Bit neu erzeugen.

Änderungen des Test-Frameworks für XE8

RAD Studio unterstützt nun DUnitX für Delphi und C++Builder. Mit diesem Test-Framework können Sie Tests für Win32, Win64 und MacOSX entwickeln und ausführen. DUnitX enthält einen eigenen Methodensatz zum Testen einer großen Anzahl von Bedingungen. Diese Methoden repräsentieren allgemeine Assertions, Sie können aber auch eigene Assertions erstellen.

Weitere Informationen finden Sie unter Überblick über DUnitX.

Änderungen der Grafik-Hilfsprogramme für XE8

Neuer GetIt-Package-Manager

RAD Studio enthält ein neues Grafik-Hilfsprogramm: GetIt. GetIt ist ein Package-Manager, mit dem Sie GetIt-Packages suchen, herunterladen und kostenlos in RAD Studio installieren können. GetIt-Packages können Bibliotheken, Komponenten, IDE-Erweiterungen, SDK und mehr bereitstellen.

Weitere Informationen finden Sie unter GetIt-Package-Manager.

Änderungen der Befehlszeilenhilfsprogramme für XE8

Zwei neue Compiler für 64-Bit-iOS:

Änderungen der Anwendungsbeispiele für XE8

Ältere in XE6 entfernte Beispiele stehen auf SourceForge und im XE6-DocWiki zur Verfügung

Weitere Informationen über den Zugriff auf ältere Produktbeispiele, die aus RAD Studio XE6 entfernt wurden, finden Sie unter Ältere Produktbeispiele.

Änderungen der Hilfe

Neues Offline-Hilfesystem (CHM-Hilfe ersetzt H2)

Die mit RAD Studio ausgelieferten Offline-Hilfedateien liegen jetzt im Format Microsoft Compilierte HTML-Hilfe, CHM, vor. Weitere Informationen finden Sie unter Hilfe zur Hilfe - CHM. Früher wurde die Offline-Hilfe im H2-Format ausgeliefert und konnte mit Microsoft DExplore angezeigt werden.

Im Viewer für die "Microsoft Compilierte HTML-Hilfe" kann nur Offline-Hilfe angezeigt werden. Um auf die Online-Hilfe zuzugreifen, müssen Sie entweder die Online-Hilfe selbst öffnen oder in der Fußzeile einer beliebigen Seite der Offline-Hilfe auf Aktuelle Wiki-Seite klicken. Sie können nicht mehr wählen, ob der Hilfe-Viewer die Offline-Hilfe oder die Online-Hilfe anzeigt.

Sie können eigene CMH-Hilfedateien erstellen und sie mit RAD Studio verknüpfen. Weitere Informationen hierzu finden Sie unter Online-Hilfe für die Komponenten bereitstellen.

Themen