Release-Hinweise

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen


Diese Release-Hinweise enthalten wichtige Informationen, die möglicherweise nicht in der Hauptdokumentation zu dem Produkt vorhanden sind. Lesen Sie diese Hinweise bitte vollständig durch. Die aktuelle Version dieser Hinweise finden Sie unter Release-Hinweise.

Inhaltsverzeichnis

Installation, Deinstallation und Upgrade von RAD Studio

Bitte lesen Sie vor der Installation, Deinstallation oder dem Upgrade des Produkts die folgenden Dateien für Ihre ausgewählte Sprache:

  • radstudio_install_xx.htm: enthält die Systemanforderungen sowie Installations- und Upgrade-Anleitungen.
  • radstudio_license_xx.rtf: enthält Ihren Softwarelizenz- und Supportvertrag.
  • radstudio_deploy_xx.htm: enthält Informationen zur Bereitstellung.

Die neueste Version der Datei radstudio_install_xx.htm finden Sie an folgenden Speicherorten:

  • Installationshinweise.
  • Im Installationsverzeichnis des Produkts. Der Standardspeicherort ist: C:\Program Files (x86)\Embarcadero\Studio\19.0

Frühere Versionen und Migration

RAD Studio enthält Lizenzen für frühere Versionen

Ihre Tokyo-Lizenz umfasst Lizenzen für frühere Versionen des Produkts.

  • Delphi Tokyo enthält Lizenzen für Delphi Seattle, XE8, XE7, XE6, XE5, XE4, XE3, XE2, XE, 2010, 2009, 2007 und 7.
  • C++Builder Tokyo enthält Lizenzen für C++Builder XE8, XE7, XE6, XE5, XE4, XE3, XE2, XE, 2010, 2009, 2007 und 6.

Weitere Informationen zu Lizenzen finden Sie in der Datei radstudio_license_xx.rtf im Installationsverzeichnis von RAD Studio.

Durch Öffnen werden Projekte aktualisiert

Wenn Sie mit RAD Studio Tokyo ein Projekt öffnen, das mit einer früheren Version von RAD Studio erstellt wurde, aktualisiert RAD Studio das Projekt. Aktualisierte Projekte arbeiten nicht mehr mit früheren Versionen von RAD Studio.

Erstellen Sie immer eine Sicherung Ihres Projektes bevor Sie es mit einer neueren Version von RAD Studio öffnen.

Upgrade von Delphi 7

Wenn Sie ein Upgrade eines in Delphi 7 oder einem anderen frühen Release erstellten Projekts ausführen und das Projekt über eine benutzerdefinierte Dateierweiterung verfügt, müssen Sie Projekt > Optionen > Anwendung wählen, und die Erweiterung der Zieldatei auf den mit Ihrem Projekt übereinstimmenden Typ setzen (.exe, .dll oder .bpl).

FireMonkey

Vor dem Erstellen einer neuen Ansicht im Formular-Designer müssen allen Komponenten Namen zugewiesen werden

Wenn Sie eine ältere FireMonkey-App in Tokyo öffnen, wird möglicherweise die folgende Fehlermeldung angezeigt:

 Cannot inherit from form 'FormName".  It contains a component with a blank name property.

Das neue System zur Vererbung von Ansichten erfordert, dass Sie allen Komponenten vor dem Erstellen einer neuen Ansicht im Formular-Designer einen Namen zuweisen.

iOS-Apps werden nach der Ausführung ohne Debugger auf dem Gerät möglicherweise nicht korrekt geschlossen/erneut geöffnet

Wenn Sie Ihre iOS-App auf dem Gerät ohne Debugger ausführen und dann den Anwendungsprozess abbrechen, müssen Sie den PAServer-Befehl "reset" ausführen, wenn Sie den Prozess außerhalb der IDE ausführen möchten; geben Sie an der Eingabeaufforderung von PAServer "r" ein.

Webbrowser unterstützt möglicherweise bestimmtes Verknüpfungsverhalten auf einigen Plattformen nicht

Wenn Sie auf einer mit TWebBrowser angezeigten Webseite auf einen Hyperlink klicken, dessen Eigenschaft Target auf "_blank" oder "_search" gesetzt ist, könnten die folgenden Probleme auftreten:

  • Auf Android- und iOS-Plattformen öffnet die Anwendung eine verknüpfte Seite im selben TWebBrowser-Fenster.
  • Auf Win32- und Win64-Plattformen öffnet die Anwendung eine verknüpfte Seite in einem neuen Internet Explorer-Fenster.
  • Auf der OS X-Plattform hat das Klicken auf die Links keine Auswirkung (die Anwendung kann die verknüpfte Seite nicht öffnen).

FireDAC

Verwenden von Laufzeit-Packages mit dem FireDAC-DataSnap-Treiber für C++

Wenn Sie in 64-Bit-C++-Anwendungen, die mit Laufzeit-Packages erstellt wurden, den FireDAC-DataSnap-Treiber verwenden, könnte zur Laufzeit ein Fehler auftreten. Fügen Sie den Laufzeit-Packages DataSnapClient mit den folgenden Schritten hinzu, um den Fehler zu vermeiden:

  1. Projekt > Optionen > Packages > Laufzeit-Packages.
  2. Fügen Sie im Feld Laufzeit-Package-Importbibliotheken der Liste DataSnapClient hinzu.

Diese Einstellung behebt das Problem und fügt der Link-Zeile DataSnapClient.bpi anstelle von DataSnapClient.a hinzu.

C++-Anwendung für 64-Bit-Windows mit einer FireDAC-Komponente kann einen Fehler auslösen

Der folgende Fehler wird beim Versuch ausgelöst, eine Anwendung mit einer einzelnen FireDAC-Komponente auf einer Windows x64-Plattform mit statischem Linken zu compilieren:

c:\program files (x86)\embarcadero\studio\<n.n>\Bin\CodeGear.Cpp.Targets : warning : Warning: Out of memory
c:\program files (x86)\embarcadero\studio\<n.n>\Bin\CodeGear.Cpp.Targets(2751,5): error MSB6006: "ilink32" exited with code 2.

Linken Sie zur Umgehung dieses Problems FireDAC nicht statisch in Win64-C++-Apps.

Workaround für INI-Dateifehler bei FireDAC

In früheren Versionen wurden INI-Dateien von FireDAC im Verzeichnis "C:\Programme" erstellt. In neueren Windows-Versionen ist dieses Verzeichnis für normale Windows-Benutzer schreibgeschützt. Wenn Sie beim Hinzufügen neuer FireDAC-Verbindungsdefinitionen mit dem Daten-Explorer oder FDExplorer Fehler wie "Datei kann nicht geändert werden" erhalten, dann befinden sich FireDAC-INI-Dateien wahrscheinlich noch im Verzeichnis "C:\Programme". Laden Sie zum Beheben dieses Problems das Hilfsprogramm FDFixIni herunter, und führen Sie es aus. Dieses Hilfsprogramm verschiebt die FireDAC-INI-Dateien an den korrekten Speicherort und aktualisiert die FireDAC-Registrierung. Standardmäßig ist der korrekte Speicherort "C:\Dokumente und Einstellungen\Alle Benutzer\Dokumente\Embarcadero\Studio\FireDAC".

So beheben Sie dieses Problem:

  • Laden Sie FDFixIni von der Website für registrierte Benutzer herunter: http://cc.embarcadero.com/item/29812 (EN).
  • Extrahieren Sie die EXE-Datei aus dem heruntergeladenen Archiv.
  • Führen Sie sie aus. Wenn das Hilfsprogramm erfolgreich ausgeführt wird, werden zwei Zeilen mit Move [alter Speicherort] to [neuer Speicherort] angezeigt.

Box2D

RAD Studio Tokyo enthält keine vorerzeugten .dcu-Dateien für die Units Box2D.*.pas.

  • Wählen Sie für Delphi-Projekte, die die Units Box2D.*.pas verwenden, Projekt > Optionen > Delphi-Compiler, und geben Sie unter Suchpfad include $(BDS)\source\FlatBox2D ein.
  • Weitere Informationen zur Verwendung von Box2D finden Sie unter Box2D.

Android

Wegen eines Fehlers (EN) des Java Development Kit (JDK) dürfen im Bereitstellungspfad eines Projekts für die Android-Plattform nur ASCII-Zeichen enthalten sein.

C++-Toolkette

Auflösen mehrerer Deklarationen für DWORD oder ULONG in OS X-Anwendungen

In einer für die OS X-Zielplattform compilierten geräteübergreifenden Anwendung kann der Fehler E2238 auftreten, weil die OS X-Header iodbcunix.h und sqltypes.h typedef-Anweisungen für DWORD und ULONG deklarieren, und in der von System.hpp einbezogenen C++Builder-Datei sysmac.h auch ähnliche typedef-Anweisungen dafür vorhanden sind. Unter E2238 finden Sie einen Workaround.

Angeben der abhängigen und erforderlichen Packages beim Verwenden einer Komponente in einem C++-Package

Bei der Verwendung einer vorhandenen Komponente in einem C++-Package fügt die IDE nicht automatisch das abhängige (erforderliche) Package für die Komponente hinzu. Sie müssen diesen Schritt manuell ausführen.

Ohne die relevanten abhängigen (erforderlichen) Packages könnte das Linken des C++-Package fehlschlagen, weil der Linker die OBJ-Dateien, die bei Verwendung dieser Komponente initialisiert werden müssen, nicht finden kann. Sie müssen das Package der Komponente und die abhängigen Packages dem Knoten Erfordert Ihres C++-Package (in der Projektverwaltung) hinzufügen, um derartige Linker-Fehler zu vermeiden.

Das folgende Beispiel zeigt, wie die erforderlichen Packages für eine Komponente ermittelt und die Linker-Fehler xxx.obj kann nicht geöffnet werden durch Erstellen einer Dummy-VCL-Formularanwendung, in der die Komponente verwendet wird, vermieden werden.

Standardmäßig wird eine neue in C++ geschriebene geräteübergreifende Anwendung mit den RTL- und FMX-Packages gelinkt, entsprechend den in der Link-Zeile aufgelisteten *.BPI-Dateien (die in Ansicht > Meldungen angezeigt werden):

Ilink32-Befehlszeile:

 c:\BDSLoc\bin\ilink32.exe ... -aa -V5.0 -Tpe  c0wfmx32w rtl.bpi fmx.bpi memmgr.lib sysinit.obj .\Win32\Debug\Project30.obj .\Win32\Debug\Unit26.obj , .\Win32\Debug\Project30.exe , .\Win32\Debug\Project30.map , import32.lib cp32mti.lib , , Project30.res

Wenn Sie neue Komponenten hinzufügen, ermittelt die IDE abhängige Packages und passt die Link-Zeile an. Um dies an einem Beispiel zu sehen, fügen Sie die Komponente, die Sie in einem C++-Package verwenden möchten, dem geräteübergreifenden Formular hinzu. In diesem Beispiel wird die Komponente TFDSchemaAdapter verwendet. Erzeugen Sie nun die Anwendung neu. Der Link-Zeile wurden mehrere neue BPI-Dateien hinzugefügt:

Ilink32-Befehlszeile:

 c:\BDSLoc\bin\ilink32.exe ... -aa -V5.0 -Tpe  c0w32w rtl.bpi fmx.bpi FireDACCommonDriver.bpi FireDACCommon.bpi xmlrtl.bpi dbrtl.bpi FireDAC.bpi FireDACSqliteDriver.bpi memmgr.lib sysinit.obj .\Win32\Debug\Project30.obj .\Win32\Debug\Unit26.obj , .\Win32\Debug\Project30.exe , .\Win32\Debug\Project30.map , import32.lib cp32mti.lib , , Project30.res

Diese neuen BPI-Dateien sind Packages, von denen Ihre Komponente abhängig ist. Für TFDSchemaAdapter sind dies die folgenden BPI-Dateien:

   FireDACCommonDriver.bpi FireDACCommon.bpi xmlrtl.bpi dbrtl.bpi FireDAC.bpi FireDACSqliteDriver.bpi

Um die TFDSchemaAdapter-Komponente in einem C++-Package verwenden zu können, müssen Sie daher alle diese BPI-Dateien in der IDE als erforderliche Referenzen hinzufügen (siehe Packages (Delphi)).

Herunterladen von DirectX-Header-Dateien

DirectX-Header werden nur im Microsoft Windows Platform SDK ausgeliefert. Wenn Sie Fehler wie "d3d.h-Datei nicht gefunden" erhalten, enthält die für diese Delphi-Unit erzeugte HPP #include <D3D*.hpp>. Führen Sie einen der folgenden Schritte aus:

  • Fügen Sie der Unit, die diese D3D-Unit verwendet, eine {$NOINCLUDE Winapi.D3DX9}-Direktive hinzu, und erzeugen Sie die HPP-Datei für diese Unit neu. Die neu generierte HPP enthält #include <Winapi.D3DX9.hpp> nicht.
  • Laden Sie das DirectX SDK, auf dem der D3D-Header basiert, herunter. Sie können das DirectX SDK kostenlos von Microsoft herunterladen. Weitere Informationen finden Sie unter Where is the DirectX SDK? (Windows) (EN).

Ereignisse mit Strukturen oder Mengen von 5 bis 8 Byte sind für BCC64 nicht gültig

Von der IDE generierte Ereignisse, die eine Struktur oder eine Menge von 5 bis 8 Byte übernehmen, sind für 32-Bit-C++ gültig, für 64-Bit-C++ jedoch nicht. Dies betrifft nur Fälle, bei denen der Typ per Wert übergeben wird. Wenn der Typ per Referenz übergeben wird, besteht kein Unterschied zwischen Win32 und Win64.

Beispielsweise tritt eine Zugriffsverletzung auf, wenn auf den Parameter TPoint &MousePos des Ereignisses OnContextPopup zugegriffen wird, weil der Parameter TPoint &MousePos auf der Win64-Plattform ungültig ist. An der Deklaration für den Typ "__closure" können Sie den Unterschied zwischen Win32 und Win64 erkennen. Im Folgenden finden Sie die Deklaration von "__closure" für das Ereignis PopupMenu von TControl:

#ifndef _WIN64
typedef void __fastcall (__closure *TContextPopupEvent)(System::TObject* Sender, const System::Types::TPoint &MousePos, bool &Handled);
#else /* _WIN64 */
typedef void __fastcall (__closure *TContextPopupEvent)(System::TObject* Sender, System::Types::TPoint MousePos, bool &Handled);
#endif /* _WIN64 */

Damit der Code sowohl für Win64 als auch für Win32 funktioniert, müssen Sie #ifdef in die von der IDE generierte Behandlungsroutine folgendermaßen einfügen:

#ifndef _WIN64
void __fastcall TForm46::FormContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled)
#else
void __fastcall TForm46::FormContextPopup(TObject *Sender, TPoint MousePos, bool &Handled)
#endif
{
  ShowMessage(System::String().sprintf(L"Mouse at (%d,%d)", MousePos.X, MousePos.Y));
}

IDE

Im geräteübergreifenden Formular-Designer können Komponenten nur aus der Master-Ansicht gelöscht werden

Wenn Sie versuchen, eine Komponente, wie z. B. TButton, aus einer anderen Ansicht (nicht der Master-Ansicht) zu löschen, wird die folgende Fehlermeldung angezeigt:

 Selection contains a component, Button1, introduced in an ancestor and cannot be deleted

Die Lösung besteht darin, die Komponente aus der Master-Ansicht zu löschen. Weitere Informationen zu Ansichten finden Sie unter Formular-Designer.

Umbenannte iOS-Projekte könnten zur Laufzeit oder beim Debuggen fehlschlagen

Durch das Umbenennen eines Projekts in der IDE könnte eine iOS-App zur Laufzeit oder beim Debuggen fehlschlagen. Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:

  1. Wählen Sie Projekt > Bereitstellung.
  2. Klicken Sie im Bereitstellungs-Manager auf die Schaltfläche Auf Standard zurücksetzen.

Vererbungseinstellung für Versionsinformationen

Ändern Sie die Schlüsselwerte für das Ziel Alle Plattformen nicht, um Versionsinformationen in ein Windows-Projekt einzubeziehen, sondern ändern Sie die Werte für beide Plattformen (32 Bit und 64 Bit) einzeln. Die Ziele erben die Werte nicht korrekt vom Ziel Alle Plattformen.

InterBase

InterBase XE7 Edition ist in einigen Editionen von RAD Studio Tokyo enthalten

Dieser Hinweis betrifft Benutzer, die sowohl eine frühere Version von RAD Studio als auch RAD Studio Tokyo auf demselben Computer installiert haben. In diesem Hinweis bezieht sich RAD Studio auch auf die Delphi- und C++Builder-Editionen.

Jede Version von RAD Studio enthält eine Lizenz für eine Version von InterBase:

Produkt InterBase-Version
RAD Studio XE3 InterBase XE3 Developer Edition
RAD Studio XE4 InterBase XE3 Developer Edition
RAD Studio XE5 InterBase XE3 Developer Edition
RAD Studio XE6 InterBase XE3 Developer Edition
RAD Studio XE7 InterBase XE3 Developer Edition
RAD Studio XE8 InterBase XE7
RAD Studio Seattle InterBase XE7
RAD Studio Berlin InterBase XE7

Da alle diese RAD Studio-Lizenzsuiten systemweit sichtbar sind, kann nur jeweils eine Lizenz von InterBase verwendet werden.

Wenn Sie beispielsweise die mit RAD Studio XE6 ausgelieferte "InterBase XE3 Developer Edition" ausführen, können Sie gleichzeitig keine Instanz der mit RAD Studio XE7 ausgelieferten "InterBase XE3 Developer Edition" starten. Sie können auch keine Instanz der "XE7 Edition" starten, die mit RAD Studio Tokyo ausgeliefert wird. Wenn Sie dies versuchen, erhalten Sie ein Fehler-Dialogfeld mit der Meldung "InterBase-Lizenzfehler", und das InterBase-Protokoll enthält den Eintrag "Registration file error: License is in use by another instance of InterBase" (Registrierungsdateifehler: Die Lizenz wird von einer anderen Instanz von InterBase verwendet).

Weitere Informationen zum Ausführen mehrerer Instanzen von InterBase finden Sie im Abschnitt Multiple Instances in http://docs.embarcadero.com/products/interbase/IBXE7/OpGuide.pdf (EN).

Workaround für InterBase-Lizenzfehler

  1. Halten Sie alle Instanzen von InterBase an.
    Wenn Sie diese Instanz als Windows-Dienst eingerichtet haben, müssen Sie sie auch in der Systemsteuerung im Dienste-Bereich deaktivieren.
  2. Starten Sie die Instanz von InterBase, die Sie verwenden möchten. Jetzt sollte diese Instanz mit der korrekten Lizenz erfolgreich starten.

Die oben erwähnten früheren Versionen von RAD Studio und Anwendungen, die damit erzeugt wurden, funktionieren auch mit der aktualisierten InterBase XE7-Edition, die mit RAD Studio Tokyo installiert wird. Verbinden Sie die älteren IDE-Tools und -Anwendungen über TCP-Loopback mit dieser InterBase-Instanz. Zum Beispiel:

localhost/gds_db:<dbpath>

In älteren Versionen der RAD Studio-IDE können Sie auch Tools > Optionen > Umgebungsoptionen > Umgebungsvariablen wählen und die folgenden neuen Einträge in "Von Anwender überschrieben" einfügen, um lokale Client-Verbindungen herzustellen.

Variable Wert
IB_Protocol gds_db
InterBase C:\Program Files (x86)\Embarcadero\Studio\19.0\InterBaseXE7

Externe Software

Probleme können bei Anwendungen auftreten, die in einer Umgebung mit einem Programm zur Tastaturumschaltung, wie z. B. Yandex Punto Switcher, gedebuggt wurden. Wenn die Anwendung von Windows geschlossen wird und eine Zugriffsverletzung von der Anwendung ausgelöst wird, ignorieren Sie diesen Zugriffsverletzungsfehler bitte.

Siehe auch