10.4 Sydney – Release 1

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Hauptseite

Nach oben zu Neuerungen in den letzten Releases

Hinweis:

RAD Studio 10.4 Sydney – Release 1 (alias 10.4.1) ist für die Installation verfügbar. 10.4.1 baut auf dem Funktionsumfang von 10.4 auf, wobei im gesamten Produkt Funktionen erweitert und neue hinzugefügt wurden. Delphi 10.4.1, C++Builder 10.4.1 und RAD Studio 10.4.1 stehen für jeden Kunden mit aktiver Update Subscription zum Herunterladen zur Verfügung.

Der Hauptfokus bei RAD Studio 10.4.1 wurde auf Qualitätsverbesserungen gelegt. Zu den wichtigsten Bereichen mit Qualitätsverbesserungen zählen:

  • IDE
  • Delphi Code Insight (LSP)
  • Parallel Library
  • SOAP und XML
  • C++-Toolkette
  • FireMonkey
  • VCL
  • Delphi-Compiler
  • iOS-Bereitstellung

RAD Studio 10.4.1 enthält alle Fixes aus 10.4 Patch 1, Patch 2 und Patch 3.

Außer Qualitätsverbesserungen enthält die Version 10.4.1 auch eine Reihe neuer Features, die unten aufgeführt sind.

Installieren von 10.4.1

Wenn Sie 10.4 Sydney (26. Mai 2020) bereits installiert haben, müssen Sie für 10.4 Sydney – Release 1 eine vollständige Deinstallation und anschließende Neuinstallation durchführen. Im Rahmen der Deinstallation wird eine Option zum Beibehalten Ihrer Einstellungen angezeigt. Diese ist standardmäßig aktiviert. Ihre Einstellungen können Sie auch separat mit dem Tool zum Migrieren von Einstellungen übernehmen.

Wichtige Verbesserungen in 10.4.1 nach Produktbereich

Unterstützte Plattformen

RAD Studio unterstützt jetzt die Bereitstellung von Apps auf Windows Server 2019.

IDE

Projekte

  • AUTO libsuffix für Packages: Packages können jetzt mit einem automatischen Versionssuffix versehen werden, anstatt bei jedem neuen Release das richtige Versionssuffix manuell angeben zu müssen. (Der Compiler hat dies bereits in Version 10.4 im Hintergrund unterstützt, aber die vollständige Unterstützung für dieses Feature in der IDE und in den Package-Projekteinstellungen ist erst in 10.4.1 erfolgt.)
  • Die Compiler-Option "Pentium-sicheres FDIV" wird nicht mehr in den Delphi-Compiler-Optionen angezeigt.
  • Die Kontextmenüoptionen im Bereich "Projekte", die nach der Version 10.3 nicht mehr verfügbar waren (durch Rechtsklick auf einen leeren Bereich im Fenster "Projekte"), stehen jetzt in einem Dropdown-Menü in der Symbolleiste "Projekte" zur Verfügung.

Layouts

  • Verbesserte Unterstützung für Desktop-Layouts mit mehreren Monitoren für die Verwendung von mehreren Editorfenstern auf mehreren Bildschirmen
  • Der unverankerte Formular-Designer wurde entfernt. Sie können aber weiterhin mehrere Editorfenster einschließlich den Formular-Designer in einem zweiten Fenster verwenden. Die Unterstützung dafür wurde verbessert.
  • Wenn in der IDE das Layout gewechselt wird, wie zum/vom Debugger oder zur/von der Startseite (z. B. beim Öffnen oder Schließen eines Projekts) und dasselbe Layout ist für beide Status angegeben, wird das Layout nicht übernommen. Dadurch wird das unnötige Wechseln von Layouts vermieden.
  • Desktop-Layouts, die nicht übernommen werden können (d. h. unverankerte Layouts, nicht unterstützt, siehe oben), werden im Kombinationsfeld "Desktop-Layout" in der Titelleiste in grau aufgeführt. Wenn ein unverankertes Layout angewendet wird, zeigt die IDE stattdessen ein Dialogfeld an.
  • Verbesserte Unterstützung für 4K-Monitore: In der IDE werden jetzt Layouts auf einem nicht skalierten 4K-Monitor korrekt wiederhergestellt.
  • Wenn die IDE die .dsk-Datei eines Projekts erwartet, diese aber nicht findet, wird es mit dem Standard-Layout geöffnet.

UI

  • "Optionen" und andere Dialogfelder:
    • Die Dialogfelder "Projektoptionen", "IDE-Optionen", "GetIt" und "Objektgalerie" verfügen nun über eine Bildlaufleiste (wird verschoben, wenn Sie die Bildlaufleiste ziehen). Der Bildlauf per Mausrad ist ebenfalls möglich.
    • Beim Öffnen des Dialogfelds "Optionen" (Umgebungsoptionen) wurden immer die Einstellungen für die Win64-Zielplattform angezeigt. Jetzt werden die Einstellungen der aktuellen aktiven Plattform angezeigt.
  • Einige Listenansichts-Steuerelemente, die im dunklen Design mitunter schwer lesbar waren, wurden durch die virtuelle Hierarchieansicht ersetzt.
  • Die interaktive Einführung wurde aus der Willkommensseite entfernt.
  • Mehrere Fixes am Objektinspektor, insbesondere in Bezug auf Flimmern und Auswahl der falschen Eigenschaft
  • Verbesserte Auswahl von Elementen in der Strukturansicht, einschließlich wenn durch Klicken auf ein Element ein anderes ausgewählt wurde

Allgemein

  • "Übertragung an Geräte" ist standardmäßig deaktiviert. Die Option hat beim Start der IDE immer auf das Netzwerk zugegriffen, was bei manchen Kunden zu Fehlern führte. Die Option ist jetzt deaktiviert, (gültige) Netzwerkfehler treten nur auf, wenn Sie die Option aktivieren.
  • Die Namen der 64-Bit-Windows-Debugger (sichtbar im Dialogfeld "Mit Prozess verbinden") wurden präzisiert und geben jetzt an, welche für Delphi und welche für C++ sind. Dies vereinfacht die Auswahl des Debuggers, der beim Verbinden mit einem Prozess verwendet werden soll.

Kleinere, aber nennenswerte Fixes

  • "Ungültige Pfade löschen" sollte nun keine gültigen Pfade mehr entfernen.
  • Das Verschieben von Symbolleisten verursacht keine Probleme mehr.
  • "-showotamenunames" (verwendet von ToolsAPI-Entwicklern) wurde wieder aktiviert.
  • Die Bearbeitung von Stringlisten im Quelltext-Editor funktioniert wieder.
  • Dialogfelder in der IDE werden in einem modernen Stil angezeigt.
  • Darstellungsprobleme, wie die Anzeige des IDE-Fensters in einer Volltonfarbe beim Öffnen eines Projekts, wurden behoben.
  • Unter Windows 7 hat die Titelleiste oben keine weiße Linie mehr.
  • Der Aktionseditor hat Bilder in schwarz angezeigt; dies wurde behoben.
  • Einige IDE-Menüs werden jetzt korrekt dargestellt (z. B. Popup-Menüs in Audits). In einigen Menüs wurde der "Ausgewählt"-Status nicht angezeigt, auch dies wurde behoben.
  • Der Suchpfad für Debug-Symbole unterstützt jetzt die Umgebungsvariablen $(Platform) und $(Config).
  • Der Quelltext-Editor ließ die Auswahl falscher Codierungen für eine Unit zu (nur anwendbar für Formulare). Diese sind nun nicht mehr verfügbar.
  • Ein Problem beim Installieren von Packages, das sich so darstellte, als könne ein Package nicht geladen werden, und das durch Packages mit unterschiedlicher Groß-/Kleinschreibung des Dateinamens auf der Festplatte verursacht wurde und gewöhnlich bei großen Projekten auftrat, wurde behoben.

Delphi-LSP/Änderungen der Programmierhilfe

  • Signifikante Leistungsverbesserungen:
    • Verbesserungen der Speichernutzung, sodass DelphiLSP-Prozesse weniger Arbeitsspeicher beanspruchen
    • Erhöhte Geschwindigkeit: Ergebnisse der Programmierhilfe werden wesentlich schneller angezeigt
  • Wenn Sie jetzt in der Programmierhilfe den Mauszeiger über eine Definition führen, erhalten Sie bessere Ergebnisse (z. B. zeigt die Programmierhilfe eine verbesserte Liste der vorgeschlagenen Symbole an).
  • Es sind jetzt Optionen zum Steuern der Programmierhilfe verfügbar, mit denen Sie die Funktionalität so verändern können, dass sie sich ähnlicher wie die klassische Vervollständigung verhält. Lesen Sie mehr über diese Einstellungen.
  • Beim Filtern der Programmierhilfe bei der Eingabe können die übereinstimmenden Zeichen jetzt unterstrichen dargestellt werden.
  • Die Einstellungen der Klassenvervollständigung wurden auf die Einstellungsseite von Code Insight verschoben.
  • Dateien, die außerhalb der IDE geändert wurden (z. B. durch einen externen Editor oder die Versionskontrolle) werden vom LSP-Server erkannt und erneut analysiert.
  • Mehrere Fixes für allgemeine Probleme bei Code Insight, wie z. B. keine Vervollständigungsergebnisse, einschließlich eines Problems mit einem "+"-Zeichen im Pfad, und andere mehr.
  • Verbesserte Behandlung von Packages
    • Packages mit enthaltenen Units verursachen keine Fehler mehr.
    • Die Programmierhilfe bietet Symbole aus einem erforderlichen Package an.
    • In Packages sollten keine falschen Fehler mehr gemeldet werden.
    • Die Programmierhilfe in Packages wurde allgemein verbessert.
  • Die Symbolbeschreibung zeigt den richtigen Inhalt an, wenn der Mauszeiger über ein Symbol geführt wird.
  • Die Programmierhilfe funktioniert, wenn "MSBuild extern für die Compilierung verwenden" aktiviert ist.
  • Fehler bei der Darstellung "roter Kringel", wie eine falsche Länge der Linie der roten Kringel, wurden behoben.
  • Wenn die Sortierung der Liste der Programmierhilfe nach Name und nicht nach Gültigkeitsbereich festgelegt war, wurde bei der Auswahl eines Elements der falsche Text eingefügt. Diese wurde behoben.
  • 10.4.1 enthält zudem alle Fixes aus 10.4 Patch 2, wie z. B. runde Klammern () wurden nicht eingefügt, wenn sie bereits vorhanden waren, durch Drücken der Leertaste wurde nicht die aktuelle Vervollständigung ausgewählt, verzögerte Vervollständigung und das nicht korrekte Einfügen von Text, um einen Tastenanschlag verzögerte Fehlermarkierung in der Strukturansicht usw.

Code Insight für große Projekte

Die folgenden Fixes fallen besonders bei großen Projekten ins Gewicht. Beachten Sie, dass die oben genannten Fixes in Bezug auf Speichernutzung und Leistung auch für große Projekte von wesentlicher Bedeutung sind.

  • Beim Compiler wurden die Analyse früherer schwerwiegender Fehler verbessert.
  • Die Benachrichtigungen an den Server bei IDE-seitigen Änderungen wurden verbessert. Dies reduziert übermäßige Aktivität und verbessert die Vervollständigungsgenauigkeit.

RTL-Verbesserungen

Neuer TLightweightMREW-Record

Wir führen eine neue Reader-Writer-Sperr-Implementierung ein, die auf allen unterstützten Plattformen funktioniert und schneller und schlanker ist als der alte TMultiReadExclusiveWriteSynchronizer (auch bekannt als TMREWSync). TLightweightMREW kapselt eine native Implementierung einer Reader-Writer-Sperre auf allen Plattformen.

Weitere Informationen finden Sie in der TLightweightMREW-Dokumentation.

Parallel Programming Library

Viele Fixes für TThread.WaitFor, TParallel.For, TParallel.Join, TConditionVariableMutex.WaitFor for Linux, TTask.WaitForAny und IdleWorkerThreadCount der Klasse TPoolThread. Außerdem wurden einige Probleme bei TThreadedQueue hinsichtlich PopItem, die Verwendung einer großen Anzahl von Threads und mehr behoben.

SOAP und XML

  • XML-Qualitätsverbesserung: Einige seit langem bestehende Probleme mit der TXMLDocument-Komponente wurden behoben, die mit den verschiedenen von uns unterstützten DOM-Anbietern zusammenhängen (OmniXML, ADOM). Einige dieser Probleme beziehen sich auf die UTF-Unterstützung und Codierungen.
  • Import von SOAP-WSDL: Die WSDL-Importlogik sowie der Aufruf von SOAP-Clients wurden verbessert.

Web-Clients

  • Winapi.Winsock2 enthält jetzt inet_ntop zur besseren Unterstützung von IPv6-Adressen
  • TRESTResponseDataSetAdapter importiert JSON-Strings mit passender Länge
  • Verbesserte Unterstützung für Enums in TJSONSerializer
  • Einige Fixes für TRestResponseDataSetAdapter
  • Das Erstellen einer TIPAddress aus einer URL funktioniert jetzt auch unter Windows
  • Die NSURLConnection-API wurde von Apple unter MacOS X 10.11 und iOS 9 als veraltet erklärt, aber sie wird weiterhin in unserer HTTP-Client-Bibliothek verwendet. 10.4.1 unterstützt die neuere NSURLSession-API auf beiden Plattformen. Durch diese Änderung wurden auch Probleme mit der Proxy-Unterstützung unter MacOS behoben.

Datenbank

  • Es wurde eine erhebliche Anzahl an DataSnap-Problemen behoben, einschließlich einige Leistungsprobleme und Speicherlecks, MidasLib-, DatasetProvider- und TClientDataSet-Probleme
  • Verbesserte FireDAC-Unterstützung für Funktionsparameter von SQL Server
  • Fix in TFDMemTable FindFirst bei IndexFieldNames
  • Verbesserte TFDQuery bei berechneten und BLOB-Feldern
  • Bessere Feldreihenfolge bei mehrspaltigem TFDTable PostgreSQL-Index
  • FireDAC-PostgreSQL-Analyse von QuoteTag in Strings

Andere RTL-Verbesserungen

  • Leistungsverbesserungen für TStrings mit benutzerdefiniertem LineBreak
  • Optimierte TObject-Methoden bei Rückgabe oder Überprüfen von Strings
  • Offengelegte UTF8IdentXxx-Funktionen
  • Optimierter LoadResString

VCL-Verbesserungen

  • Mehrere TGrid-Regressionen in 10.4 (teilweise bereits in 10.4 Patch 2 gelöst) wurden behoben, einschließlich TStringGrid und andere Gitterkomponenten, Fehlausrichtung in der StretchDraw-Methode in OnDrawCell und andere.
  • Verbesserte Verarbeitung prozentbasierter Abstände durch TGridPanel. Sie können jetzt exakte Prozentwerte für Spalten oder Zeilen angeben und diese anwenden lassen. Dadurch wird die Verwendung des TGridPanel-Layout-Steuerelements erheblich verbessert und Sie erhalten genau die Abstände, die Ihr Layout benötigt.
  • Die in TBitBtn integrierten Glyphen wurden für High DPI ausgelegt, außerdem wurden Verbesserungen bei der Skalierung vorgenommen.
  • Die benutzerdefinierte Titelleiste unterstützt die hochauflösende Skalierung (High DPI) und es wurde eine Reihe weiterer Qualitätsverbesserungen vorgenommen.
  • Verbesserungen der Eigenschaft Position und des Ereignisses OnChangingEx der Komponente TUpDown
  • Die StatusBar-Komponente unterstützt das DoubleBuffered-Zeichnen.
  • Die SetTabIndex-Methode von TPageControl funktioniert jetzt richtig, wenn verborgende Registerkarten vorhanden sind.
  • Der Text von TDateTimePicker wird nicht mehr unscharf angezeigt, wenn die Maus darüber geführt wird.
  • Der Zeilenumbruch von TLabel wurde durch Ersetzen der Berechnungslogik für die Schrifthöhe verbessert.
  • Der InfoTip von TListView bleibt länger sichtbar.
  • Der Rahmen von DB-Steuerelementen entspricht jetzt dem von nicht datensensitiven Steuerelementen.
  • Mehrere Stilverbesserungen
  • Probleme mit der Breite der Beschriftung von Owner-Drawn-Menüelementen der obersten Ebene sowie mit Stilen versehene Menüs und deren Skalierung wurden verbessert.
  • Stile berücksichtigen jetzt die ImageMargins und Textpositionen von TButton.

FireMonkey

FMX-TMemo-Verbesserungen

Wir arbeiten weiterhin an der neuen FireMonkey-TMemo-Komponentenarchitektur, indem wir weitere Verbesserungen bei der Windows-Implementierung sowie Unterstützung für macOS hinzufügen. Der Hauptfokus liegt auf dem TMemo-IME-Modus für koreanisch, japanisch und chinesisch (und anderen Sprachen), aber es wurden auch allgemeine Verbesserungen bei Leistung, Stabilität, Bildlaufverhalten, Mausauswahl, Kopieren und Einfügen und mehr vorgenommen. Es sind auch Fixes für TEdit erfolgt.

Kleinere, aber nennenswerte Fixes

  • Das Storyboard für den Startbildschirm unterstützt jetzt Symbolgrößen, die für Apple für iOS erforderlich sind.
  • Verbesserte Berechtigungsverwaltung für iOS-Push-Benachrichtigungen
  • TListView OnItemClick wird auch, wenn es bereits ausgewählt war, ausgelöst.
  • Es wurde ein Problem mit inkonsistenten Werten für TMediaPlayer.Duration unter Android behoben.
  • Problem von iOS-WebBrowser mit externen Links
  • Ereignis TStringGrid OnCellDblClick
  • Das Häkchen von TListView Accessory verschwindet

Delphi-Sprache

Im Release 10.4.1 wurde der Delphi-Compiler in verschiedenen Bereichen verbessert. Insbesondere lag der Schwerpunkt auf der Unterstützung der LSP-Programmierhilfe und auf der Verbesserung der Qualität der verwalteten Records, aber wir haben auch einige 10.4-Regressionen und unerwartete Änderungen (einschließlich Problemen mit goto-Anweisungen und anderen ungewöhnlichen Szenarien) behoben. Einige Verbesserungen wurden bei Package-Referenzen und der C++-HPP-Dateierzeugung vorgenommen. In diesem Release wurde zudem die Compiler-Leistung in einigen Bereiche verbessert, wodurch eine Optimierung der Suche nach Unit-Namen und anderen internen Suchen erfolgt ist, was insbesondere großen Projekten zugutekommt. Es wurden auch einige Verbesserungen bei der Codeerzeugung vorgenommen (das heißt, der Compiler kann Code mit besserer Leistung erzeugen).

Verwaltete Records

In diesem Release wurde die Qualität verwalteter Records verbessert. Zum Beispiel:

  • Optimierungen von Rückgabewerten
  • Bereinigung einiger Compiler-Fehler
  • Verbesserungen des Operators Assign
  • Änderungen von Default(T) für verwaltete Records
  • Bessere Koexistenz von verwalteten Records und Generics
  • Einige Fälle mit fehlendem Aufruf von Initialize

C++-Sprache

Win64-Debugger

  • Am LLDB-basierten Win64-Debugger wurden einige Verbesserungen vorgenommen, hauptsächlich beim Abfangen und Fortsetzen von Exceptions und bei der Leistung (insbesondere, wenn viele Threads vorhanden sind).
  • Es wurde ein Problem behoben, bei dem Delphi-Visualisierungen aufgerufen wurden: Visualisierungen für TStringList, Currency, TDateTime werden nicht mehr aufgerufen.
  • Es wurde ein Problem behoben, bei dem das Exception-Dialogfeld angezeigt wurde, wenn mit F7 eine neue Debugger-Sitzung gestartet wurde.
  • Die Verarbeitung von Betriebssystem-Exceptions wurde verbessert.
  • Die Leistung der IDE wurde bei der Einzelschrittausführung mit Hunderten von Threads verbessert.

Linker

  • Die Nutzung des Arbeitsspeichers durch Win64-Linker (ilink64) wurde erheblich überarbeitet. Dies sollte Speicherfehler in großen Projekten oder bei Debug-Builds reduzieren.

Exception-Behandlung

  • Mehrere wichtige Probleme bei der Exception-Behandlung wurden behoben. Unter anderem ein Problem, das sich auf die ACE/TAO-Speicherzuweisung ausgewirkt hat, bei dem die Windows-API eine SEH-Exception auslösen konnte.

Allgemeine Qualität

  • Mehrere Abstürze, interne Compiler-Fehler und Ähnliches wurden im Clang-Compiler behoben.
  • Probleme beim Erzeugen von RTTI für Closures wurden behoben.
  • Verbesserungen bei der Erzeugung von Debug-Infos, insbesondere für Klassen im Delphi-Stil.
  • Verbesserungen in der RTL, hauptsächlich in Bezug auf die Entfernung des MFC-Kompatibilitätsmakros und dem Export dieser Symbole, sowie Kompatibilitätsprobleme, die bei der Unterstützung gängiger C++-Bibliotheken festgestellt wurden.

Sonstige Verbesserungen

  • Es wurde eine Zugriffsverletzung in der Lizenzmanager-Anwendung behoben.
  • Der direkte Aufruf von GetItCmd.exe entfernt installierte Packages nicht mehr aus dem System.

Siehe auch