Anzeigen: Object Pascal C++
Anzeigeeinstellungen

Release-Hinweise

Aus Appmethod Topics
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 Appmethod

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

  • appmethod_install_xx.htm: enthält die Systemanforderungen sowie Installations- und Upgrade-Anleitungen.
  • appmethod_license_xx.rtf: enthält Ihren Softwarelizenz- und Supportvertrag.
  • appmethod_deploy_xx.htm: enthält Informationen zur Bereitstellung.

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

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


FireMonkey

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

Wenn Sie eine ältere FireMonkey-App in 1.17 ö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 Mac OS X-Plattform hat das Klicken auf die Links keine Auswirkung (die Anwendung kann die verknüpfte Seite nicht öffnen).

FireDAC

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.
  • Und führen Sie sie aus. Wenn das Hilfsprogramm erfolgreich ausgeführt wird, werden zwei Zeilen mit Move [alter Speicherort] to [neuer Speicherort] angezeigt.

Box2D

Appmethod 1.17 enthält keine vorerzeugten .dcu-Dateien für die Units Box2D.*.pas.

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

IDE

Weitere Optionen für BCC32C zur Erstellung eines neuen Package

Beim Erzeugen eines Package, das eine Komponente enthält, die die IDE verwenden soll, müssen Sie möglicherweise weitere Optionen für BCC32C, den durch Clang erweiterten C++-Compiler für 32-Bit-Windows, festlegen.

Fügen Sie -tP im Feld Projekt > Optionen > C++-Compiler > Erweitert > "Weitere Optionen" > "Weitere Optionen für die Übergabe an den Compiler" hinzu.

CodeGuard-Option wird von C++-Compilern, die durch Clang erweitert wurden, nicht unterstützt

Die Option CodeGuard in Projekt > Optionen > C++-Compiler > Debuggen wird von Clang-Compilern nicht unterstützt.

Wenn Sie für ein Projekt zum durch Clang erweiterten BCC32C-Compiler wechseln, müssen Sie CodeGuard auf false setzen. Weitere Informationen finden Sie unter Von C++-Compilern, die durch Clang erweitert wurden, nicht unterstützte Optionen.

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 in 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.

Auf Windows Server 2008 wird der Inhalt des mobilen Konfigurationsexperten blockiert

In Windows Server 2008 zeigt Windows ein Internet Explorer-Dialogfeld an (das den Inhalt des Hilfe-Experten für mobile Anwendungen blockiert), wenn der Hilfe-Experten für mobile Anwendungen geöffnet wird. Sie müssen auf die Schaltfläche Hinzufügen klicken (wodurch der Inhalt des Experten der Positivliste von Internet Explorer hinzugefügt wird), um den Inhalt des Experten sehen zu können.

Appmethod zeigt den Hilfe-Experte für mobile Anwendungen an, wenn Sie mit einer mobilen Anwendung arbeiten und Konfigurationsschritte ausführen müssen oder wenn Sie Hilfe bei einem Problem benötigen. (Sie können auch Hilfe > Hilfe-Experten > Hilfe-Experte für mobile Anwendungen auswählen, um den Hilfe-Experte für mobile Anwendungen zu öffnen.)

Der mobile Konfigurationsexperte wird auf den folgenden Seiten beschrieben:

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.

Kompatibilität mit Windows 10

Wenn Sie von Windows 7, 8 oder 8.1 auf Windows 10 upgraden, treten möglicherweise Probleme mit der Strukturansicht in Appmethod C++ auf. Die Ursache dafür liegt an einer fehlerhaften Installation von Microsoft Visual J# Version 2.0 (EN) im Windows-System.

Installieren Sie zur Lösung dieses Problems Microsoft Visual J# Version 2.0 (EN) neu. Führen Sie die folgenden Schritte aus:

  1. Deinstallieren Sie Microsoft Visual J# Version 2.0 (EN). Dieser Vorgang führt zu einem (erwarteten) Fehler.
  2. Durchsuchen Sie die Registrierung, und löschen Sie alle Einträge, die sich auf J# beziehen.
  3. Starten Sie das Gerät neu.
  4. Installieren Sie Microsoft Visual J# Version 2.0 (EN).
  5. Starten Sie das Gerät neu.

Weitere Informationen finden Sie im Forum der Microsoft Community unter: Microsoft Community - Can not install Microsoft Visual J#® 2.0 on Windows 10 (not compatible) (EN)

Änderungen in der Datei AndroidManifest.template.xml

Für Android-Projekte aus früheren Versionen müssen Sie die Datei AndroidManifest.template.xml neu erstellen, um Fehlverhalten aufgrund von Änderungen in der Datei AndroidManifest.template.xml zu vermeiden.

Um Änderungen aus einer alten AndroidManifest.template.xml beizubehalten, bearbeiten Sie die neue Datei, und fügen Sie Ihre früheren Änderungen ein.

Hier finden Sie die dafür erforderlichen Schritte: Neuerstellen der Datei AndroidManifest.template.xml.

Build-Konfiguration für Android-Dienste

Wenn bei der Weitergabe einer Android-Dienstanwendung eine andere Build-Konfiguration ausgewählt wird, als diejenige, die beim Hinzufügen des Android-Dienstes zur Host-Anwendung angegeben wurde, werden dem Bereitstellungs-Manager bestimmte Dateien nicht hinzugefügt, und die Anwendung schlägt zur Laufzeit fehl.

Weitere Informationen zur Lösung dieses Problems finden Sie unter Android-Dienste – Fehlerbehebung.

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 Appmethod C++-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 (Object Pascal)).

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 Object Pascal-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));
}

InterBase

InterBase XE7 Edition ist in einigen Editionen von Appmethod 1.17 enthalten

Dieser Hinweis betrifft Benutzer, die sowohl eine frühere Version von Appmethod als auch Appmethod 1.17 auf demselben Computer installiert haben. In diesem Hinweis bezieht sich Appmethod auch auf die Object Pascal- und Appmethod C++-Editionen.

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

Produkt InterBase-Version
Appmethod InterBase XE3 Developer Edition
Appmethod InterBase XE3 Developer Edition
Appmethod 1.13 InterBase XE3 Developer Edition
Appmethod 1.14 InterBase XE3 Developer Edition
Appmethod 1.15 InterBase XE3 Developer Edition
Appmethod 1.16 InterBase XE7
Appmethod 1.17 InterBase XE7

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

Wenn Sie beispielsweise die mit Appmethod 1.14 ausgelieferte "InterBase XE3 Developer Edition" ausführen, können Sie gleichzeitig keine Instanz der mit Appmethod 1.15 ausgelieferten "InterBase XE3 Developer Edition" starten. Sie können auch keine Instanz der "XE7 Edition" starten, die mit Appmethod 1.17 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 Appmethod und Anwendungen, die damit erzeugt wurden, funktionieren auch mit der aktualisierten InterBase XE7-Edition, die mit Appmethod 1.17 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 Appmethod-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\17.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.

Hilfe

Die Hilfe-Dateien werden standardmäßig in folgendem Verzeichnis installiert:

C:\Program Files (x86)\Embarcadero\Studio\17.0\Help\Doc

Siehe auch

Meine Werkzeuge
In anderen Sprachen