Anzeigen: Delphi C++
Anzeigeeinstellungen

Release-Hinweise für XE2 Update 4

Aus RAD Studio XE2
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen in Delphi und C++Builder XE2

Inhaltsverzeichnis

Diese Datei enthält wichtige ergänzende Informationen, die möglicherweise nicht in der Hauptdokumentation zu dem Produkt vorhanden sind. Embarcadero Technologies empfiehlt Ihnen, diese Datei vollständig durchzulesen.

In diesem Dokument wird der Begriff "das Produkt" verwendet, wenn sich die Informationen auf RAD Studio XE2 oder auf eine oder beide Personalities, Delphi XE2 und C++Builder XE2, beziehen.

Allgemeine Informationen zur Installation, zum Deployment und zur Lizenzierung finden Sie in den HTML-Dateien "Install", "Deploy" und "License", die sich standardmäßig im Ordner C:\Programme\Embarcadero\RAD Studio\9.0 befinden. Auf 64-Bit-Windows-Systemen lautet der Verzeichnisname C:\Programme (x86)\Embarcadero\RAD Studio\9.0.

Installation dieses Updates

Delphi und C++Builder XE2 Update 4 ist ein vollständiges Inline-Update, zu dessen Installation Sie Ihr vorhandenes RAD Studio-Produkt deinstallieren müssen.

Sie erhalten das Update über eine der drei folgenden Möglichkeiten:

Verwenden der automatischen Upgrade-Funktion oder manuelle Suche nach Updates

  • Wenn Sie bei der Installation des Produkts Automatisch nach Aktualisierungen suchen ausgewählt haben, werden Sie automatisch informiert, wenn ein Update zum Download bereitsteht.
    1. Klicken Sie auf die Benachrichtigung, um das Installationsprogramm des Updates zu starten.
    2. Befolgen Sie die Anweisungen des Installationsprogramms.
    3. Führen Sie nach Abschluss der Installation die unter #Weitere Installationsschritte beschriebenen Schritte aus.
  • Wenn Sie keine automatische Benachrichtigung über Updates erhalten (oder wann immer Sie wollen), können Sie manuell danach suchen:
    1. Wählen Sie dazu Start | Alle Programme | Embarcadero RAD Studio XE2 | Suchen von Aktualisierungen.
    2. Wählen Sie Update 4 aus der Liste der verfügbaren Updates aus. Dadurch wird das Installationsprogramm gestartet.
    3. Befolgen Sie die Anweisungen des Installationsprogramms.
    4. Führen Sie nach Abschluss der Installation die unter #Weitere Installationsschritte beschriebenen Schritte aus.

Download von der Webseite für registrierte Benutzer

Das Update 4 steht für registrierte Benutzer auch auf den folgenden Seiten bereit:

  1. Laden Sie das Update auf Ihren Computer herunter, und extrahieren Sie die Zip-Datei.
  2. Deinstallieren Sie das Produkt. Eine Anleitung dazu finden Sie unter Installationshinweise für XE2#Deinstallation des Produkts.
  3. Installieren Sie das Update durch Doppelklicken auf das Installationsprogramm.

Führen Sie dann zum Installieren des Updates die unter #Weitere Installationsschritte beschriebenen Schritte aus.

Weitere Installationsschritte

Nach dem in den vorherigen Abschnitten beschriebenen Herunterladen und Installieren des Updates sollten Sie den Platform Assistant und die FireMonkey iOS-Tools (anhand der folgenden Schritte) aktualisieren, wenn Sie plattformübergreifende Entwicklungen durchführen oder FireMonkey für iOS verwenden:

1. Installieren des Updates für "Platform Assistant"

Wenn Sie mit dem "Platform Assistant" plattformübergreifende Anwendungen entwickeln, müssen Sie nach der Installation des Update 4 den "Platform Assistant" deinstallieren und dann den aktualisierten "Platform Assistant" folgendermaßen installieren:

  1. So deinstallieren Sie den "Platform Assistant":
    • Unter Windows: Deinstallieren Sie den Platform Assistant mit der vorhandenen Datei Uninstall PAServer.exe.
    • Auf dem Mac: Deinstallieren Sie den Platform Assistant mit dem vorhandenen Befehl Uninstall.
      Hinweis: Die Uninstall-Programme befinden sich auf dem PC und dem Mac im Installationsverzeichnis von Platform Assistant.
  2. So installieren Sie den aktualisierten "Platform Assistant" auf den Zielplattformen:
    • Unter Windows: Doppelklicken Sie auf PAServer.exe.
    • Auf dem Mac: Verschieben Sie die Datei PAServer.zip auf den Mac, und doppelklicken Sie auf PAServer.zip.

Weitere Informationen finden Sie unter Installieren und Ausführen des "Platform Assistant" (paserver) auf der Zielplattform.

2. Installieren Sie die FireMonkey iOS-Tools erneut

Wenn Sie FireMonkey iOS-Tools auf dem Mac verwenden, müssen Sie auch das Package FireMonkey-iOS-XE2.pkg folgendermaßen neu installieren:

  1. Übertragen Sie die Disk-Image-Datei FireMonkey-iOS.dmg auf den Mac. (FireMonkey-iOS.dmg befindet sich im obersten "FireMonkey-iOS"-Ordner des Produktinstallationsverzeichnisses.)
  2. Doppelklicken Sie auf dem Mac auf FireMonkey-iOS.dmg.
  3. Führen Sie das Installationsprogramm in jedem Package aus.

Für die FireMonkey iOS-Tools ist keine Deinstallation erforderlich. Wenn Sie die FireMonkey iOS-Tools bereits installiert hatten, können Sie das neue Installationsprogramm (FireMonkey-iOS.dmg), das Bestandteil dieses Updates ist, ohne vorherige Deinstallation ausführen.

Hinweise:

  • Das FireMonkey-iOS-Installationsprogramm ist mit Xcode 4.2 kompatibel.
  • Obwohl Xcode 4.2 den iOS 5.0 SDK enthält, werden die neuen Funktionen von iOS 5 nicht unterstützt. FireMonkey-Anwendungen können aber auf Geräten mit iOS 5 bereitgestellt werden.
  • Das FireMonkey-iOS-Installationsprogramm schlägt fehl, wenn Xcode 4.3/iOS 5.1 (Beta) auf dem Mac installiert ist.

Weitere Informationen zu FireMonkey iOS finden Sie unter:


Deinstallation dieses Updates

Um dieses Update zu deinstallieren, müssen Sie das gesamte Produkt deinstallieren und das vollständige Build erneut installieren. Es ist nicht möglich, nur das Update zu deinstallieren.


Allgemeine Hinweise

Fehlerliste

Eine vollständige Liste der in diesem Update behobenen Probleme finden Sie in "Liste der Korrekturen im Update 4 für Delphi und C++Builder XE2" unter: http://edn.embarcadero.com/article/42090/

Änderungen und neue Funktionen im XE2 Update 4

Dieses Update enthält die folgenden neuen und geänderten Funktionen:

Interface-Änderungen im Update 4

Interface-Änderungen für FireMonkey: Die folgenden Änderungen wurden für das Update 4 in FireMonkey vorgenommen.

Hinzugefügte oder geänderte Typen und Methoden

FMX.Colors:

  • TColorQuad.GetIsTracking
  • TColorQuad.PreviewColor
  • TColorQuad.SetColor
  • TColorComboBox.GetDefaultStyleLookupName
  • TColorListBox.GetDefaultStyleLookupName
  • TColorListBox.SetItems
  • TComboColorBox.GetDefaultStyleLookupName
  • FillChessBoardBrush

FMX.Consts:

  • sCannotCreateCircularDependence
  • sCantEndPrintJob
  • sCantPrintNewPage
  • sCantSetNumCopies
  • sCantStartPrintJob
  • sInvalidPageFormat
  • sInvalidPrinterSettings
  • sMkcCmd
  • SPropertyOutOfRange
  • SPrinterDPIChangeError
  • SPrinterSettingsReadErro
  • SPrinterSettingsWriteError


FMX.Controls:

  • TAniIndicator.ApplyStyle
  • TAniIndicator.FreeStyle
  • TBitmapTrackBar.GetDefaultStyleLookupName
  • TCustomTrack.GetThumbSize

FMX.Dialogs:

  • TPageSetupDialog.SetPageHeight
  • TPageSetupDialog.SetPageWidth

FMX.Edit:

  • TComboEditBase
  • TComboEdit.Clear
  • TComboEdit.MouseWheel
  • TComboEdit.GetDefaultStyleLookupName
  • TComboEdit.SetText
  • TComboTrackBar.GetDefaultStyleLookupName
  • TComboTrackBar.DoComboMouseDown
  • TCustomEdit.DoChangeTracking
  • TCustomEditBox


FMX.Effects:

  • TInnerGlowEffect.GetGlowColor
  • TInnerGlowEffect.SetGlowColor
  • TInnerGlowEffect.SetOpacity
  • TInnerGlowEffect.SetSoftness

FMX.ExtCtrls:

  • TCalendarBox.GetDefaultStyleLookupName
  • TCalendarEdit.GetDefaultStyleLookupName
  • TImageViewer.GetDefaultStyleLookupName

FMX.FilterCatStyle:

  • TGlowFilter
  • TInnerGlowFilter
  • TReflectionFilter

FMX.Grid:

  • TColumn.SetVisible
  • TColumn.TextChangeProc
  • TColumn.TextTypingProc
  • TCustomGrid.DoSelChanged
  • TCustomGrid.GetVisibleColumnCount
  • TCustomGrid.SetTopRow

FMX.Layers3D:

  • TImage3D.SetBitmap

FMX.Layouts:

  • TScrollBox.CreateHScrollTrackAni
  • TScrollBox.CreateVScrollTrackAni
  • TScrollBox.Center

FMX.Memo:

  • TMemo.DefineProperties
  • TMemo.DoContentPaintWithCache
  • TMemo.HScrollChange
  • TMemo.ReadTextData
  • TMemo.ResetLineWidthCache

FMX.Menus:

  • TextToShortcut
  • TPopupMenu.DialogKey

FMX.Objects3D:

  • TDisk
  • TCone.RebuildMesh
  • TCone.SetSubdivisionsAxes
  • TCone.SetSubdivisionsCap
  • TCone.SetSubdivisionsHeight
  • TCube.RebuildMesh
  • TCube.SetSubdivisionsDepth
  • TCube.SetSubdivisionsWidth
  • TCube.SetSubdivisionsHeight
  • TCylinder.RebuildMesh
  • TCylinder.SetSubdivisionsAxes
  • TCylinder.SetSubdivisionsCap
  • TCylinder.SetSubdivisionsHeight
  • TMesh.Render
  • TPlane.RebuildMesh
  • TPlane.SetSubdivisions.Height
  • TPlane.SetSubdivisions.Width
  • TSphere.RebuildMesh
  • TSphere.SetSubdivisionsAxes
  • TSphere.SetSubdivisionsHeight
 
FMX.Printer:
  • EPrinterSettingsError
  • TPrinterDevice.Destroy
  • TPrinterDevice.DPIChangeError
  • TPrinterDevice.GetActiveDPI
  • TPrinterDevice.GetDPI
  • TPrinterDevice.GetDPICount
  • TPrinterDevice.SelectDPI
  • TPrinterDeivce.SetActiveDPIIndex

FMX.Printer.Win:

  • TPrinterWin-Destruktor
  • TPrinterWin.RefreshActivePrinter
  • TPrinterWin.SetCanvasDefaultSettings


FMX.Types:

  • CreateScaleMatrix
  • CreateTranslateMatrix
  • MergeObjectFromStream
  • TBrushBitmap.DoChanged
  • TControl.GetAcceptsControls
  • TControl.SetAcceptsControls
  • TStyleBook.LoadFromFile
  • PClipRects
  • TClipRects
  • TCanvas.BeginScene
  • TCanvas.DoBeginScene
  • TCanvas.DoEndScene
  • TFmxObject.IsChildren
  • TStyledControl.GetDefaultStyleLookupName


FMX.Types3D:

  • ColorToVector3D
  • CreateTranslateMatrix3D
  • DefaultAmbient
  • DefaultDiffuse
  • DefaultSpecular
  • MaxLights
  • TContext3D.AssignTo
  • TContext3D.DoBeginScene
  • TContext3D.DoEndScene
  • TContext3D.AddLight
  • TContext3D.CreateBuffer
  • TContext3D.CreateDefaultShader
  • TContext3D.DeleteLight
  • TContext3D.FreeBuffer
  • TContext3D.FreeDefaultShader
  • TContext3D.GetPixelToPixelPolygonOffset
  • TContext3D.SetMatrix
  • TContext3D.SetParams
  • TControl3D.GetAcceptsControls
  • TControl3D.SetAcceptsControls
  • TLight.SetAmbient
  • TLight.SetConstantAttenuation
  • TLight.SetDiffuse
  • TLight.SetLinearAttenuation
  • TLight.SetQuadradicAttenuation
  • TLight.SetSpecular
  • TLight.SetSpotCutOff
  • TLight.SetSpotExponent
  • TMaterial.SetShininess
  • TMeshData.Clear
  • TTextureFiltering
  • TMaterial.SetTextureFiltering
Entfernte Typen und Methoden

FMX.Dialogs:

  • TCommonDialog.FHelpMsg


FMX.Edit:

  • TComboEdit.MouseDown
  • TComboTrackBar.MouseDown
  • TNumberBox.Destroy
  • TNumberBox.Change
  • TNumberBox.GetData
  • TNumberBox.KeyDown
  • TNumberBox.Paint
  • TNumberBox.SetNumValueType
  • TNumberBox.SetData
  • TNumberBox.SetDecimalDigits
  • TNumberBox.SetMax
  • TNumberBox.SetMin
  • TSpinBox.Destroy
  • TSpinBox.Change
  • TSpinBox.GetData
  • TSpinBox.KeyDown
  • TSpinBox.SetNumValueType
  • TSpinBox.SetData
  • TSpinBox.SetDecimalDigits
  • TSpinBox.SetMax
  • TSpinBox.SetMin


FMX.ExtCtrls:

  • TCalendarEdit.MouseDown

FMX.Forms:

  • TCustomForm3D.AddLight
  • TCustomForm3D.ApplyLights
  • TCustomForm3D.DeleteLight

FMX.Objects3D:

  • TCone.Render
  • TCylinder.Render
  • TPlane.Render
  • Destruktor von TPlane
  • TRoundCube.Render
  • Destruktor von TSphere
  • TSphere-Darstellung

FMX.Types3D:

  • TViewPort3D.AddLight
  • TViewPort3D.ApplyLights
  • TViewPort3D.DeleteLight

Sonstige hinzugefügte Methoden

  • System.Variants.DispatchUnsignedAsSigned
Weitere Informationen finden Sie unter Automatisierungsserver und vorzeichenlose Integerwerte.

Neu hinzugefügte VCL-Stile

Dieses Update enthält acht neue VCL-Stile:

  • Auric.vsf
  • CharcoalDarkSlate.vsf
  • CyanDusk.vsf
  • CyanNight.vsf
  • MetroBlack.vsf
  • MetroBlue.vsf
  • MetroGreen.vsf
  • TurquoiseGray.vsf


VCL-Stile werden normalerweise im Verzeichnis C:\Benutzer\Öffentlich\Öffentliche Dokumente\RAD Studio\9.0\Styles installiert.

Weitere Informationen zu VCL-Stilen finden Sie unter Überblick über VCL-Stile.

TLIBIMP.EXE kann 64-Bit-Typbibliotheken importieren

Von TLIBIMP.EXE stehen jetzt eine 32-Bit- und eine 64-Bit-Version zur Verfügung, wenngleich eine 64-Bit-Anwendung auch eine 32-Bit-Typbibliothek verwenden kann.

Wenn die aktuelle Zielplattform 64-Bit-Windows ist, übergibt die IDE jetzt "-E64" an GenTLB.exe. Das Ergebnis ist eine Typbibliothek, deren Feld SYSKIND den Eintrag SYS_WIN64 enthält (im Vergleich zu SYSKIND=SYS_WIN32 für eine 32-Bit-Typbibliothek).

Wenn Sie eine 64-Bit-Typbibliothek importieren, die von einer anderen nur in den 64-Bit-Schlüsseln der Registrierung registrierten Typbibliothek abhängt, müssen Sie die 64-Bit-Version von TLIBIMP aus dem folgenden Verzeichnis verwenden:

$(bds)\bin64\tlibimp.exe

Weitere Informationen dazu finden Sie unter TLIBIMP.EXE und GenTLB.exe.

Zugreifen auf globale Variablen in ASM auf Windows und OS X

Verwenden Sie die in Zugreifen auf globale Variablen in ASM auf Windows und OS X beschriebenen Verfahren.

Neue C++-Audits

Die folgenden neuen C++-Audits wurden hinzugefügt:

Bekannte Probleme im XE2 Update 4

Verschachtelte try ... finally-Blöcke können in DCCOSX-Anwendungen ein Problem verursachen

In Delphi OS X-Anwendungen können verschachtelte try ... finally-Blöcke in der compilierten Anwendung zur Laufzeit zu einem Absturz führen. Platzieren Sie daher keinen try ... finally-Block in den finally-Abschnitt eines anderen try ... finally-Blocks. Verschieben Sie zur Lösung dieses Problems den inneren try ... finally-Block in eine lokale/native Prozedur.

Beispiel:

 
 program BTS289095;
 { Nested try...finally crashes application }
 {$APPTYPE CONSOLE}
 uses
   System.SysUtils;
 var
   Expected: Integer = 0;
   Counter: Integer = 0;
 
 procedure DoTest1;
 { SIMPLE CASE }
 var
   s: string;
 begin
   Writeln('DoTest1');
   try
     raise Exception.Create('#1');
   finally
     s := '';
   end;
 end;
 
 procedure DoTest3;
 { FAILURE OCCURS HERE. INVOLVES NESTED TRY..FINALLY }
 var
   S: String;
 begin
   Writeln('DoTest3');
   try
     raise Exception.Create('#2');
   finally
     try
       s := '';
     finally
     end;
   end;
 end;
 
 procedure DoTest2;
 { WORKAROUND - NESTED TRY..FINALLY PUT INTO LOCAL PROC }
 var
   S: String;
 
   procedure Temp;
   begin
     try
       s := '';
     finally
     end;
   end;
 begin
   Writeln('DoTest2');
   try
     raise Exception.Create('#2');
   finally
     Temp;
   end;
 end;
 var
   Procs: array [0..2] of TProcedure = (DoTest1, DoTest2, DoTest3);
 procedure DoBTS289095;
 var
   Proc: TProcedure;
 begin
   for Proc in Procs do
     begin
       Inc(Expected);
      try
        Proc;
        WriteLn('FAIL - Exception Expected');
      except
        Inc(Counter);
      end;
     end;
 end;
 begin
   DoBTS289095;
   if Counter = Expected then
     WriteLn('PASS')
   else
     WriteLn('FAIL');
 end.

Erzeugen von Mac OS X-Anwendungen auf dem Mac

Wenn Sie eine frühe Version von XE2 verwenden, könnten auf dem Mac beim Erstellen eines Installationspakets mit dem Befehl productbuild Probleme auftreten:

  • Es könnte eine Fehlermeldung, wie etwa die folgende, ausgegeben werden:
productbuild: error: Can't write temporary package  to "/private/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/TemporaryItems/(A Document Being Saved By   productbuild)/FireFlow.app.pkg" (Path "/Users/name/Applications/Embarcadero/PAServer/scratch-dir/name- Lion/./FireFlow.app" is not a valid bundle component (using destination path  "/Users/name/Applications/Embarcadero/PAServer/scratch-dir/name-Lion/.")).
So beheben Sie dieses Problem:
  1. Öffnen Sie die Mac-Anwendung in der IDE.
  2. Wählen Sie Projekt > Bereitstellung.
  3. Suchen Sie im Bereitstellungs-Manager die Remote-Datei Projektname.info.plist.
  4. Ändern Sie den Dateinamen in info.plist.
  5. Speichern Sie die Mac-Anwendung, und übertragen Sie sie auf den Mac.
  • Für Ihre Mac OS X-Anwendung könnte ein falsches Symbol angezeigt werden.
So beheben Sie dieses Problem:
  1. Wählen Sie Projekt > Optionen > Anwendung.
  2. Klicken Sie im Bereich Einstellungen für Programmsymbol auf die Schaltfläche Vorgabe.

Weitere Informationen zum Entwickeln von Anwendungen für Mac OS X finden Sie in den folgenden Themen:

Framework-Verbindungsprobleme bei Datenmodulen, die von DLLs für OS X verwendet werden

Wenn Sie die Erstellung einer C++-DLL ohne Angabe der Framework-Verbindung beginnen, und Sie später das VCL-Framework verwenden möchten, müssen Sie dem Projektquelltext die Anweisung #include <vcl.h> hinzufügen. Außerdem muss die Pseudo-Eigenschaft ClassGroup des Datenmoduls auf Vcl.Controls.TControl gesetzt werden.

Darüber hinaus müssen gemeinsame Bibliotheken, die VCL-Komponenten (oder beliebige Delphi-Komponenten) verwenden sollen, als Packages und nicht als reine DLL-Projekte erstellt werden.

Weitere Informationen zur Plattformverbindung von Datenmodulen finden Sie in den folgenden Themen:

Der Experte für DataSnap-Client-Module setzt das Passwort-Feld auf UserName

Die Eigenschaft Password in einem DataSnap-REST-Client (oder einem DataSnap-Client) übernimmt beim Erzeugen des Projekts den Wert der Eigenschaft User Name. Jedes Passwort, das Sie in dem Experten eingeben, geht verloren. Sie sollten nach dem Erstellen des Clients das Passwort im Objektinspektor setzen.

Automatisierungsserver und vorzeichenlose Integerwerte

In XE2 wurde für Delphi die Unterstützung der Weiterleitung von Word-, LongWord- und UInt64-Parameter als vorzeichenlose Integerwerte (VT_UI2, VT_UI4 bzw. VT_UI8) eingeführt. Aus historischen Gründen ist TOleEnum ein Alias für ein LongWord, und beim Importieren von Typbibliotheken in Delphi werden Aufzählungen vorzeichenlos deklariert. Das Ergebnis ist, dass Aufzählungen als VT_UI4 weitergeleitet werden. Server, wie MS-Excel, verarbeiten aber vorzeichenlose Aufzählungen nicht. Daher könnte der folgende Code fehlschlagen:

 V.Insert(TOLEEnum(xlShiftDown)); // Insert in Range
 

Zur Umgehung dieses Fehlers ohne Rücknahme der Automatisierungsunterstützung für vorzeichenlose Integerwerte wurde in Update 4 eine globale Variable, System.Variants.DispatchUnsignedAsSigned, eingeführt, mit der die Laufzeit angewiesen werden kann, vorzeichenlose Werte als Integerwerte mit Vorzeichen zu senden.

Im Folgenden finden Sie ein Beispiel dazu, wie diese Variable gesetzt werden kann:

{$IF CompilerVersion >= 23}
{$IF DECLARED(System.Variants.DispatchUnsignedAsSigned)}
  System.Variants.DispatchUnsignedAsSigned := True;
{$IFEND}
{$IFEND}

Sie können den obigen Code in den initialization-Abschnitt einer Unit des Automatisierungs-Clients aufnehmen.

HINWEIS: Die obigen Erläuterungen betreffen nur die Variant- und DispInterface-basierte Automatisierung. D.h., Automatisierungsaufrufe über vtable/interface sind von diesem Fehler und der hier beschriebenen Lösung nicht betroffen.

Siehe auch


Copyright 2012 Embarcadero Technologies. Alle Rechte vorbehalten.

Frühere Versionen
In anderen Sprachen