Neuerungen in Delphi und C++Builder 2009

Aus RAD Studio (Deutsch)
Wechseln zu: Navigation, Suche

Nach oben zu Neuerungen in den letzten Releases

Dieses Release stellt neue Leistungsmerkmale zur Entwicklung von Delphi- und C++Builder-Anwendungen bereit.

Dieses Release ist als Breaking Change in Delphi und C++ einzustufen. Das wesentlichste und umfassendste Feature dieser Version ist der Wechsel von ANSI-basierten Strings zu dem Unicode-basierten Stringtyp UnicodeString. Diese Änderung erfordert für die Verwendung bereits vorhandener Anwendungen in Delphi oder C++Builder 2009, dass Sie Modifikationen am Quelltext vornehmen — hauptsächlich in Bezug auf die Stringbehandlung —, und den Quelltext neu compilieren müssen.

Unicode: Der Unicode-Standard wurde bereits von vielen führenden Unternehmen der Computer-Industrie übernommen, und nun auch von CodeGear. Unicode stellt für jede Glyphe — unabhängig von der verwendeten Plattform, dem Programm oder der Sprache — eine eindeutige Nummer zur Verfügung. Laut des Unicode Consortium (http://www.unicode.org) ist Unicode für moderne Standards, wie XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML usw., erforderlich und stellt die offizielle Methode für die Implementierung von ISO/IEC 10646 dar. Unicode wird von vielen Betriebssystemen, allen modernen Browsern und vielen anderen Produkten unterstützt. Das Auftauchen des Unicode-Standards und die Verfügbarkeit von Tools, die ihn unterstützen, zählt zu den wichtigsten globalen Software-Technologietrends der jüngsten Zeit.

Die Aufnahme von Unicode in Client-Server- oder mehrschichtige Anwendungen und Websites erbringt im Vergleich mit herkömmlichen Zeichensätzen eine signifikante Kostenersparnis. Unicode ermöglicht die Verwendung eines einzelnen Software-Produkts oder einer einzelnen Website auf vielen verschiedenen Plattformen, für viele Sprachen und Länder, ohne jegliches Reengineering. Daten können ohne Einbußen über verschiedene Systeme hinweg transportiert werden.

Inhaltsverzeichnis

Unicode innerhalb des Produkts

Die IDE ist in all ihren Bereichen vollkommen Unicode-fähig. Die gesamte IDE ist nun eine Unicode-basierte Anwendung, was erfordert, dass alle Komponenten und der gesamte Quellcode bei der Entwicklung auch auf dem Typ UnicodeString basieren. Unicode-Zeichen werden von Bezeichnern und Strings vollständig unterstützt. Unter Unicode in der IDE finden Sie weitere Einzelheiten.

Es gibt aber einige Ausnahmen: Unicode-Zeichen können nicht in DLL-Namen verwendet werden. Einige Befehlszeilenhilfsprogramme, wie MAKE, IMPDEF und IMPLIB, können keine Unicode-Dateinamen verarbeiten.

Die Änderung des Standard-Stringtyps wirkt sich auch auf andere Datentypen und viele Funktionen aus. Zum Beispiel ist SizeOf(Char) jetzt 2 Byte groß, nicht mehr 1 Byte. Aufrufe von Length(MyString) geben die Anzahl der Zeichen, nicht die Anzahl der Bytes in dem String zurück.

Sie können Unicode in der Befehlskonsole verwenden, indem Sie die Eigenschaften Schriftart und Codeseite anpassen.

Konvertieren Ihrer Projekte

Wichtig: Um Ihre Anwendungen Unicode-fähig zu machen, damit Sie mit Delphi oder C++Builder 2009 verwendet werden können, müssen Sie einige Änderungen an dem vorhandenen Quelltext vornehmen und dann die Anwendungen neu compilieren. Eine Anleitung dazu finden Sie in dem Hilfethema Anwendungen für Unicode anpassen (Delphi) und C++-Anwendungen für Unicode anpassen.

Sicherungskopien Ihrer Projekte: Sie können ein Projekt aus der 2009-Version nicht in frühere Versionen migrieren. Bevor Sie ein vorhandenes Projekt in Delphi oder C++Builder 2009 öffnen, sollten Sie eine Sicherungskopie des Projekts anlegen, damit Sie das gesamte Projekt wiederherstellen können, falls unerwartete Probleme auftreten.

Das Format der Projektdatei wurde geändert: Das Format der Projektdatei wurde sowohl für Delphi als auch für C++Builder wegen der neuen Features in diesem Release geändert. Projektdateien haben die Dateierweiterung .dproj, .cbproj oder .bdsproj. Wenn Sie ein bereits vorhandenes Delphi- oder C++-Projekt öffnen, speichert der Compiler zunächst eine Sicherungskopie des Projekts mit der Erweiterung .2007.

Bei einem Delphi-Projekt wird die folgende Meldung angezeigt (eine ähnliche Meldung erscheint für C++-Projekte):

Upgrade von Projekt <Projektname> wird gleich ausgeführt. Das Projekt kann dann nicht mehr mit früheren Produktversionen verwendet werden. Es wird eine Sicherung des Projekts angelegt.

Sicherungsname des Projekts:  <bearbeitbares Feld>

Mit einem Kontrollkästchen lässt sich diese Meldung deaktivieren. Sicherungsdateien werden dann automatisch erstellt. Die Projektdatei wird geöffnet, im MSBuild-Format gespeichert und dann in der IDE erneut geöffnet. Beachten Sie bitte, dass die Compiler in Delphi und C++Builder 2009 die Version 12 haben.

Änderungen des Delphi-Compilers

Die folgenden Änderungen wurden am Delphi-Compiler vorgenommen:

IDE-Änderungen

Die folgenden Änderungen wurden an der IDE (Integrated Development Environment) vorgenommen:

  • Umfangreiche Verbesserungen im Dialogfeld Projekt > Optionen. Die mit dem Compiler zusammenhängenden Seiten der Projektoptionen wurden so umgestaltet, dass alle Optionen in einer Spalte und die zugehörigen Werte in einer zweiten Spalte stehen. Diese Anordnung ist übersichtlicher und erleichtert das Finden bestimmter Optionen. Einige Wertefelder haben eine Popup-Schaltfläche (Ellipse oder Pfeil nach unten), mit der ein weiteres Dialogfeld, entweder das Dialogfeld Generische sortierte Liste oder das Standarddialogfeld Ordner suchen, geöffnet wird.
  • Build-Konfigurationen und Optionsgruppen arbeiten jetzt für Delphi und C++Builder auf dieselbe Weise. Build-Konfigurationen können nun für Delphi und C++ von der Basis-Konfiguration geerbt werden. Sowohl Delphi als auch C++Builder unterstützen jetzt benannte Optionsgruppen (wurden früher nur von C++Builder 2007 unterstützt). Sie können Optionsgruppen zu Build-Konfigurationen per Referenz oder per Wert hinzufügen (früher wurde nur per Wert unterstützt). Beispielsweise gibt es eigene Basisoptionen für Suchpfade, Compiler-Warnungen und Optimierungen. Mit dem Dialogfeld Optionsgruppe anwenden steuern Sie die Priorität, in der die Optionen übernommen werden. Weitere Informationen finden Sie unter Überblick über Build-Konfigurationen und Übersicht über Optionsgruppen.
  • Verschiedene Ansichten für die Projektverwaltung. Aus dem Dropdown-Menü im oberen Bereich der Projektverwaltung können Sie eine der folgenden drei Ansichten auswählen:
    • Verzeichnis (Hierarchisch). Das ist die aktuelle Methode, wo jedes Verzeichnis ein eigener erweiterbarer Knoten ist.
    • Verzeichnis (Linear). Dateien werden direkt unter einem Verzeichnisknoten mit der vollständigen Pfadenangabe angezeigt.
    • List. Es werden keine Verzeichnisknoten angezeigt.
  • Umgestaltung der Experten "Komponente importieren" und "Neue VCL-Komponente". Die Experten Komponente importieren und Neue VCL-Komponente wurden so erweitert und umgestaltet, dass Typbibliotheken, ActiveX-Steuerelemente und Assemblies einbezogen werden können. Beide Experten haben neue Optionen: In vorhandenes Package installieren und In neues Package installieren.
  • Änderungen des Quelltext-Editors. Die Funktionen von Code Insight wurden aktualisiert, damit die neuen Sprachfeatures von C++ und Delphi erkannt und unterstützt werden. Die Syntaxhervorhebung, Programmierhilfe, Symbolbeschreibung (Delphi) und Fehlermarkierung (Delphi) arbeiten korrekt mit den anonymen Methoden und Generics von Delphi als auch mit den neuen C++0x-Sprachfeatures.
  • Alternative Ressourcen-Compiler: Im Dialogfeld Projekt > Optionen > Ressourcen-Compiler können Sie zwei verschiedene Ressourcen-Compiler auswählen. Entweder BRCC32.exe oder RC.exe, den Ressourcen-Compiler für die Microsoft SDK-Plattform. RC unterstützt Unicode-Zeichen in Ressourcendateien und Dateinamen sowie neue Vista-Ressourcentypen, wie z.B. Symbole mit Alphakanal. Wenn Sie den RC auswählen, müssen Sie sowohl für C++ als auch für Delphi folgende Zeile in den Quelltext aufnehmen: #include <winresrc.h>.
  • Der neue Ressourceneditor ist ein Dialogfeld, in dem Sie Ihrem Projekt Ressourcendateien (verschiedene Grafiktypen, wie Bitmaps, Symbole und Schriftarten) hinzufügen können. Im Ressourceneditor erhalten Sie einen Überblick über alle Ressourcendateien Ihres Projekts.
  • Der neue Klassen-Explorer für Delphi ermöglicht die Anzeige der Vererbungshierarchie von Klassen und Interfaces in Ihrem Projekt. Die Klassenansicht und die Member-Liste sind die Hauptbereiche des Klassen-Explorers. Mithilfe der vier Gehe zu-Befehle können Sie zur Deklaration einer ausgewählten Klasse, eines Feldes, einer Eigenschaft oder einer Methode, zur Definition einer ausgewählten Methode und zu den Definitionen der Getter und Setter einer Methode wechseln. Außerdem können Sie einer Klasse Felder, Eigenschaften und Methoden hinzufügen. Weitere Informationen finden Sie unter Klassen-Explorer.

C++Builder 2009

Die folgenden Features sind neu oder wurden signifikant verändert:

  • C++0x-Features: Elf aus dem neuen C++0x-Standard übernommene Features wurden in C++Builder 2009 implementiert:
  • Die neue UnicodeString-Klasse basiert auf AnsiString. Siehe die Hilfe zu System.UnicodeString.
  • Die neue Option _TCHAR entspricht steuert die Floating-Definition von _TCHAR. wchar_t und char sind die möglichen Alternativen. wchar_t setzt die UNICODE- und _UNICODE-Definitionen. Bevor Sie diese Option auf wchar_t setzen können, muss Ihr Projekt einen Einsprungspunkt namens "_tmain" oder "_tWinMain" haben. Neue (mit C++Builder 2009 erstellte) Projekte enthalten standardmäßig diese Einsprungspunkte, aber bei importierten Projekten müssen Sie sie manuell hinzufügen. Weitere Informationen finden Sie in der Hilfe zu Projekt > Optionen > Verzeichnisse und Bedingungen und unter TCHAR-Zuordnung.
  • Emulieren von Delphi-Klassenmethoden: Früher wurden Delphi-Klassenmethoden in C++ durch statische Funktion mit einem expliziten Metaklassenparameter emuliert. Mit dem neuen Spracherweiterungsschlüsselwort __classmethod können nun Delphi-Klassenmethoden emuliert werden. Eine Klassenmethode kann für den Typ als auch für Objekte dieses Typs aufgerufen werden. Siehe Klassenmethoden in C++.
  • Verbesserungen der Exception-Behandlung: Sie können die Optimierung jetzt bedenkenlos aktivieren, weil die Exception-Behandlung in C++Builder 2009 verbessert wurde.
  • Boost-Bibliotheken verfügbar: Boost ist eine Bibliothek für C++, die die Sprache durch die Metaprogrammierung von Vorlagen erheblich erweitert. Es wurde ein Teil der Boost 1.35-Bibliotheken aufgenommen, vollständig getestet und speziell für C++ Builder 2009 vorkonfiguriert. Binärversionen wurden für Funktionen, die sie benötigen, bereits erzeugt. Include-Pfade wurden für die Boost-Bibliotheken gesetzt, und alle erforderlichen Bibliotheken werden wegen der #pragma-Linkzeilen im Boost-Quelltext automatisch gelinkt. Zum Beispiel sollte Ihr Quelltext für die Verwendung der Boost-Minmax-Bibliothek die folgende Zeile enthalten:
#include <boost/algorithm/minmax.hpp>

Unter http://www.boost.org/doc/libs/1_35_0/libs/libraries.htm finden Sie die Hilfe zu den Boost-Bibliotheken.

  • Aktualisierte Namensergänzung: Die Namensergänzung und das Hashing-Schema wurden überarbeitet, damit Namen, die früher Konflikte (und Fehler) verursachten, erfolgreich verwendet werden können. Vereinzelt können Sie noch auf einen ergänzten Namen treffen, der mit einer Ellipse (...) endet. Das kommt vor, wenn ein ergänzter Name zu lang ist, um in der 255 Zeichen OMF-Grenze repräsentiert zu werden und daher abgeschnitten wird. Außerdem könnten sehr lange, nicht ergänzte Namen abgeschnitten werden, wenn sie vom Linker oder anderen Tools ausgegeben werden. Das kommt vor, wenn ein nicht ergänzter Name aus einem ergänzten Namen, der abgeschnitten wurde, entschlüsselt wird.
  • Behandlung neuer Delphi-Features: Anonyme Methoden, Generics und mit der Codeseite festgelegte AnsiStrings aus Delphi können möglicherweise Programmierprobleme in C++ verursachen. See Behandlung der anonymen Methoden von Delphi in C++, Behandlung von Delphi-Generics in C++, Behandlung der AnsiString-Codeseitenspezifikation in C++.
  • Deaktivieren des Bibliothekssuchpfads für hinzugefügte Dateien: Der Linker findet Bibliotheken und Objektdateien, die Sie Ihrem C++-Projekt hinzufügen, mithilfe des Bibliothekssuchpfades. Der Bibliothekssuchpfad ermöglicht das Auffinden von Bibliotheks- und Objektdateien. (Der Bibliothekssuchpfad wird im Dialogfeld Projekt > Optionen > Verzeichnisse und Bedingungen gesetzt.) Um eine Bibliothek oder eine Objektdatei explizit über den Pfad zu verknüpfen, klicken Sie die Datei in der Projektverwaltung mit der rechten Maustaste an und deaktivieren Nur über Namen verknüpfen. Der Linker erhält dann den voll qualifizierten Pfadnamen der Bibliothek oder der Objektdatei und ignoriert den Bibliothekssuchpfad.
  • Die HPP-Erzeugung durch den Delphi-Compiler wurde geändert. Versiegelte Delphi-Klassen und endgültige Delphi-Überschreibungen werden jetzt dem Attribut final in C++ zugeordnet.
  • Unterstützung für neue Schlüsselwörter: Zu C++Builder 2009 wurden einige neue Schlüsselworttypen hinzugefügt:
    • Sechs neue Schlüsselwörter werden im Standardmodus unterstützt: alignof, char16_t, char32_t, decltype, static_assert und __classmethod.
    • Neun neue reservierte Wörter werden mit der aktivierten Option —Ax unterstützt: alignas, constrexpr, nullptr, concept, concept_map, axiom, late_check, requires, thread_local.
    • Elf alternative Repräsentationen von Operatoren und Interpunktionszeichen werden unterstützt: and, and_eq, bitand, bit_or, compl, not, not_eq, or, or_eq ,xor, xor_eq.
    • Vier neue C99 reservierte Wörter werden mit der aktivierten Option —An unterstützt: _Bool, _Complex, _Imaginary, restrict.

Änderung der Modellierung in C++

C++Builder enthielt früher die Code-Visualisierung in einer unidirektionalen Ansicht des UML-Klassendiagramms. C++Builder verfügt nun über Live-Quelltext und bidirektionaler UML-Modellierung im Klassendiagramm. Das bedeutet, dass Sie zwischen der Bearbeitung des Quelltextes und des UML-Modells bei vollständiger Live-Synchronisierung wechseln können - "der Quelltext ist das Modell, das Modell ist der Quelltext."

C++Builder unterstützt Klassen-, Anwendungsfall-, Sequenz-, Kollaborations-, Komponenten-, Verteilungs-, Zustands- und Aktivitätsdiagramme.

Zu Modellierungsunterstützung von C++Builder gehören auch Design-Pattern einschließlich von "Nach Pattern erstellen" und das Speichern von Objekten in Ihren Modellen mit "Als Pattern speichern". C++Builder unterstützt die Design-Pattern "Gang of Four" einschließlich der Pattern-Gruppen Behavioral, Creational und Structural.

Zum Erzeugen einer HTML-Dokumentation für Ihr Projekt können Sie ein beliebiges Diagramm mit der rechten Maustaste anklicken, im Popup-Menü Dokumentation generieren wählen, und dann auswählen, ob Diagramme, eine JavaScript-Navigationshierarchie und Interfaces für den aktuellen Namespace, für den aktuellen Namespace mit abgeleiteten Namespaces, für das aktuelle Diagramm oder für alle Diagramme erzeugt werden sollen.

COM-Änderungen

Die COM-Experten wurden überarbeitet und für Delphi und C++Builder 2009 verbessert, und ein neuer COM-Experte wurde hinzugefügt (ActiveX-Element). Diese Experten befinden sich in den Ordnern ActiveX und Multi-Tier des Dialogfelds Objektgalerie. Folgende COM-Experten stehen zur Verfügung: COM-Objekt, Automatisierungsobjekt, Active Form, Active Server-Objekt, Externes Datenmodul, COM+-Ereignisobjekt, COM+-Subskriptionsobjekt, Eigenschaftsseite, ActiveX-Element, Transaktionales Objekt, Transaktionales Datenmodul, Typbibliothek, ActiveX-Bibliothek. Sowohl der ActiveX-Bibliotheksexperte als auch der Typbibliotheksexperte sind Experten auf Projektebene und stehen daher nur in der Objektgalerie zur Verfügung, wenn kein aktives Projekt vorhanden ist. Alle anderen COM-Experten sind nur verfügbar, wenn ein für sie gültiges Projekt geöffnet ist. Siehe COM-Experten verwenden.

Der COM-Architektur wurde ein neuer Dateityp hinzugefügt – die textbasierte RIDL-Datei (Restricted Interface Definition Language). Die RIDL-Datei ist der Mechanismus, mit dem das Projekt die Daten der Typbibliothek auf der Festplatte speichert. Die binäre .tlb-Datei ist jetzt eine Zwischendatei (wie .res-, .dcu-, .obj-Dateien usw.). Das bedeutet, dass Sie die .tlb-Datei von der Befehlszeile aus (außerhalb der IDE) neu erzeugen können, dass die .tlb -Dateien mit einem Texteditor bearbeitet werden können, und dass die Historie von der IDE gespeichert wird. Siehe Typbibliotheken speichern und registrieren.

Der Typbibliothekseditor arbeitet jetzt mit einer Textdatei (der .RIDL-Datei) anstatt mit der binären .tlb. Die Textdatei wird mit dem neuen Typbibliotheks-Generator, GenTLB.exe, compiliert, um die binäre .TLB-Datei zu erzeugen. Diese Änderung bedeutet im Einzelnen:

  • Sie müssen die binäre .tlb-Datei nicht mehr einchecken, weil das Build-System sie aus der letzten .ridl-Datei erzeugen kann.
  • Mehrere Programmierer können gleichzeitig an der Typbibliothek arbeiten und dann einfach ihre Änderungen in der RIDL-Textdatei zusammenführen. (Binärdateien können nicht zusammengeführt werden; die letzte Bearbeitung würde also immer die vorherigen Änderungen überschreiben.)
  • Das RIDL-Format bietet eine größere Flexibilität für bestimmte Konstrukte als der Typbibliothekseditor. Zum Beispiel können Sie mit einer RIDL-Datei benutzerdefinierte Daten aller Typen, Funktionen oder Member hinzufügen und bearbeiten. Es lassen sich komplexe Typen, wie etwa sichere Arrays von sicheren Arrays, beschreiben.
  • Sie können Vergleiche mit RIDL-Dateien einfach ausführen und Einblick über die Entwicklung des von einem Server im Laufe der Zeit bereitgestellten Modells gewinnen.

Der Typbibliothekseditor hat drei neue Register, die sich am unteren Rand des Fensters befinden:

  • Die Seite Code zeigt den RIDL-Code an.
  • Die Seite Design ist der Typbibliothekseditor, der die Felder in der RIDL-Datei anzeigt.
  • Die Seite Historie ist die Versionsverwaltung.

Die Aktualisierung arbeitet im Typbibliothekseditor jetzt anders. Sie klicken auf der Seite Design auf die Schaltfläche Aktualisieren, um die Delphi- oder C++-Quelltextdaten nach Änderungen der Typbibliothek zu aktualisieren. Die IDE führt außerdem nach den folgenden Ereignissen eine automatische Aktualisierung durch:

  • Wenn Sie von der Seite Code zur Seite Design und umgekehrt wechseln.
  • Wenn Sie das Projekt erzeugen.

Verwenden Sie den Typbibliotheksexperten zum Anzeigen von schreibgeschützten binären .tlb-Dateien. Wählen Sie Datei > Öffnen und dann eine .tlb-Datei.

Debugger

Die folgenden Features sind neu oder wurden signifikant verändert:

  • Threads-Ansicht und Wait Chain Traversal (nur Windows Vista): Das neue Feature Wait Chain Traversal hilft Ihnen bei der Lösung von Thread-Konflikten oder Deadlock-Problemen. Das Feature stützt sich auf eine Funktion im Betriebssystem Windows Vista, die dem Debugger Informationen über den Wartestatus der Threads einer Anwendung in Form einer Wait Chain (Wartekette) liefert. Eine Wait Chain ist eine alternierende Sequenz aus Threads und Synchronisierungsobjekten. Jeder Thread wartet auf das nachfolgende Objekt, und der Eigentümer dieses Objekts ist der folgende Thread in der Kette. In der Ansicht Threads listet eine neue Spalte ("Wait Chain") den Inhalt der Wait Chain auf. Obwohl nicht alle Synchronisierungsobjekte unterstützt werden, hilft Ihnen diese Information dabei, das Objekt zu finden, auf das ein blockierter Thread wartet. Darüber hinaus wird in der Ansicht gemeldet, wenn ein Deadlock gefunden wird, eine Situation, in der ein Zyklus von Abhängigkeiten verhindert, dass alle Threads der Anwendung ausgeführt werden.
  • Anhalten bei Abbruch-Exception. Die C/C++-Laufzeitbibliothek wurde verändert, so dass eine Exception ausgelöst wird (mit dem Exception-Code 0x40000015), wenn eine im Debugger ausgeführte Anwendung abort() aufruft. Im Zusammenhang damit erscheint der neue native Betriebssystem-Exception-Typ "C/C++-Abbruch-Exception" in der Liste der Exceptions unter Tools > Optionen > Debugger-Optionen > Native BS-Exceptions. Der Debugger benachrichtigt Sie standardmäßig, wenn diese Exception auftritt. Genau wie bei den anderen Exception-Benachrichtigungen des Debuggers haben Sie die Option den Debugger anzuhalten oder die Ausführung des Programms fortzusetzen. Wenn Sie keine Benachrichtigung des Debuggers wünschen, ändern Sie die Einstellung Behandelt von für diese Exception von Debugger auf Anwenderprogramm.
  • Sie müssen für jede Debugger-Sitzung die Datenhaltepunkte neu aktivieren. Datenhaltepunkte werden automatisch deaktiviert, wenn eine Debugger-Sitzung beendet ist, weil sich die Adresse einer Variablen von einer Debugger-Sitzung zur nächsten ändern kann. Um einen Datenhaltepunkt in einer nachfolgenden Debugger-Sitzung wiederzuverwenden, müssen Sie den Datenhaltepunkt nach Beginn der Debugger-Sitzung erneut aktivieren.

Datenbank

Es wurden viele Änderungen vorgenommen, um die Datenbankentwicklung besser zu unterstützen.

dbExpress

Unicode-Unterstützung wurde zu den Oracle-, Interbase- und MySQL dbExpress-Treibern hinzugefügt.

Am dbExpress-Treiber-Framework wurden die folgenden Änderungen vorgenommen:

  • Die Erweiterungsklassen, die in der Vorgängerversion des Produkts hinzugefügt wurden, wurden entfernt, und ihr Inhalt in die Basisklasse verlagert. Zum Beispiel wurde die Klasse TDBXConnectionEx entfernt. Ihre Methoden und Eigenschaften wurden in die Klasse TDBXConnection verlagert.
  • Der Parametertyp WideString vieler Methoden wurde in den neuen Typ UnicodeString geändert.
  • TDBXValue und TDBXWritableValue verfügen nun über GetAs...- und SetAs...-Methoden, die den Datentyp so konvertieren, dass er von abgeleiteten Klassen verwendet werden kann. TDBXValue und TDBXWritableValue verfügen auch über neue As...-Eigenschaften für die Typumwandlung, z.B. AsBcd.
  • Wenn Parametermetadaten in einer Datenbank unterstützt werden, wird bei Ausführung der Methode DBXCommon.TDBXCommand.Prepare die DBXCommon.TDBXCommand-Parameterliste automatisch mit Parametern für den Befehl gefüllt.

DataSnap

DataSnap ist eine mehrschichtige Architektur für Datenbankanwendungen. DataSnap stellt einen Anwendungsserver der mittleren Schicht bereit, der externe Datenmodule enthält und verwaltet. DataSnap wurde verbessert, um einen allgemeinen Verbindungsmechanismus zwischen Komponenten in verschiedenen Schichten zu ermöglichen.

Die neue Klasse DSServer.TDSServer verwaltet die Erstellung und die Lebensdauer von Transporten und Servermethodenklassen. Mit DSServer.TDSServer können Sie einen eigenen Mittelschichtserver erstellen. Mit der neuen Komponente DSServer.TDSServerClass können Sie eine anwendungsserver-seitige Klasse mit published Methoden festlegen, die von einem Remote-Client über dynamische Methoden aufgerufen werden kann. Methoden in dieser Klasse können von Remote-Clients, wie z.B. dem DBX Client-Provider oder dem ADO.NET-Provider, aufgerufen werden.

Nach dem Verbinden zu einem DataSnap-Server lassen sich Methoden in einem Anwendungsserver genauso wie Stored Procedures aufrufen. Sie können mit der neuen Klasse SqlExpr.TSqlServerMethod beispielsweise Servermethoden aufrufen, indem Sie eine Textklasse und einen Methodennamen für den Befehlstext und die Parameter der jeweiligen Methode angeben. Servermethoden können einen DBXCommon.TDBXReader verwenden, um Datenmengen von dem Client zu ermitteln und wieder zurückzugeben.

Die neuen Tabellen sind eine Abstraktion der verschiedenen Datenmengen, die DataSnap unterstützt. Sie können transparent zwischen dem Client und dem Server übergeben werden.

Sie können weiterhin anwendungsserver-seitige Klassen entwickeln, die DataBkr.TRemoteDataModule erweitern, damit die neue client-seitige DSConnect.TDSProviderConnection-Client-Komponente auf die enthaltenen Provider zugegreifen kann. DSConnect.TDSProviderConnection stellt für den DataSnap-Server mittels dbExpress Konnektivität bereit. Vorhandene Anwendungen bleiben damit kompatibel und können die Vorteile der DataSnap-Features nutzen. Neue Anwendungen müssen DataBkr.TRemoteDataModule und DSConnect.TDSProviderConnection nicht mit DataSnap verwenden.

Anwendungsserver müssen nicht mit einer Datenbank verbunden sein. Eine Servermethodenklasse muss nur zwei Anforderungen erfüllen:

  • Die Klasse muss von TPersistent abgeleitet sein.
  • Die Direktive MethodInfo muss aktiviert sein.

Weitere Informationen zu DataSnap finden Sie unter http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912.

BlackfishSQL-Lizenzen: Die Art des Erwerbs von Deployment-Lizenzen für Blackfish SQL wurde verändert. Die .slip-Datei, die früher in dem Produkt enthalten war, wird nicht mehr verwendet. Sie generieren jetzt online unter http://reg.codegear.com eine Deployment-Lizenzdatei. Weitere Informationen zur Installation, zum Deployment und zur Lizenzierung finden Sie in den Dateien "Install", "Deploy" und "License", die standardmäßig im Ordner C:\Programme\CodeGear\RAD Studio\6.0 enthalten sind.

VCL und RTL

Für einen Überblick über die VCL-Erweiterungen finden Sie unter (PDF) Using New Delphi Coding Styles and Architectures, by Marco Cantu.

Geschützte API jetzt in der Hilfe: Geschützte (protected) Methoden (Prozeduren und Funktionen) und geschützte Eigenschaften sind jetzt in den API-Themen enthalten.

Eine Vorschau der VCL-Komponenten finden Sie in CDN: Einen Überblick über die neuen und erweiterten Komponenten in diesem Release finden Sie in diesem Artikel von Anders Ohlsson: http://dn.codegear.com/article/38349.

Beschreibung einiger neuer VCL/RTL-Features für die Unicode-Unterstützung: Der CDN-Artikel ist der 2. Teil der Serie von Nick Hodges über Delphi in einer Unicode-Welt. Nick Hodges beschreibt die herausragendsten Merkmale der API für Unicode, wie z.B. Zeichen und TEncoding: http://dn.codegear.com/article/38498.

Microsoft Windows-Kompatibilität: Einige Komponenten, Klassen, Methoden und Eigenschaften sind mit dem Erscheinungsbild des Windows Vista-Betriebssystems kompatibel. Eine Liste der für Vista verfügbaren Steuerelemente finden Sie unter Nur für spezielle Betriebssysteme verfügbare Komponenten.

VCLJPG zu VCLIMG: Das Package vcljpg wurde entfernt und sein Inhalt in vclimg aufgenommen. Projekte, die vcljpg verwenden, müssen für die Verwendung des Packages vclimg aktualisiert werden.

TDataSet-Änderung bei der Behandlung von Positionsmarken: An DB.TDataSet wurden wichtige Änderungen hinsichtlich der Behandlung von Positionsmarken vorgenommen:

  • Der Typ TBookmarkStr ist veraltet.
  • Die Definition des TBookmark-Typs wurde von Pointer in TBytes geändert. D.h., dass der Typ jetzt über einen Referenzzähler verfügt und verwaltet ist.
  • Die Eigenschaft TDataSet.Bookmark gibt jetzt TBookmark anstatt TBookmarkStr zurück.
  • Im Benutzercode verwendete TBookmarkStr oder Pointer sollten in TBookmark geändert werden.
  • Der folgende Code ergibt in der Zeile GotoBookmark einen ungültigen Zugriff auf freigegebenen Speicher, weil keine gültige TBookmark-Referenz vorhanden ist:
var
 Bookmark: Pointer;
begin
 Bookmark := MyDataSet.GetBookmark;
 ...
 MyDataSet.GotoBookmark(Bookmark);

Neue VCL- und RTL-Komponenten/Klassen

  • TButtonedEdit und TCategoryPanel (TPanel mit einer Kopfleiste zum Aus- und Einblenden des Bedienfeldes) wurden dem Namespace ExtCtrls hinzugefügt.
  • TCategoryPanelGroup, ein Container-Steuerelement, das ein oder mehrere ausblendbare Bedienfelder enthält.
  • Die Klasse TCharacter wurde dem neuen Namespace Character hinzugefügt.
  • TLinkLabel zum Hinzufügen von HTML-Links zu Beschriftungen.
  • TTListGroup, TListGroups zur Unterstützung von Gruppen bei Listenansichten.
  • TEncoding und TStringBuilder wurden dem Namespace SysUtils hinzugefügt (siehe A. Lanusse's Blog about TStringBuilder).
  • TCustomHint wurde dem Namespace Controls hinzugefügt; TBalloonHint, das von TCustomHint abgeleitet ist, wurde hinzugefügt.
  • TStringReader und TStringWriter wurden dem Namespace Classes zum Lesen und Schreiben von Strings über das Interface TTextReader/Writer hinzugefügt.
  • TStreamReader und TStreamWriter wurden dem Namespace Classes zum Lesen und Schreiben von Streams über das Interface TTextReader/Writer hinzugefügt.

Änderungen an VCL/RTL-Komponenten/Klassen

Für die String-Behandlung im neuen Unicode-Modus sollten Sie die Klasse SysUtils.TEncoding verwenden (siehe Verwendung von TEncoding für Unicode-Dateien).

Siehe (PDF) Using New Delphi Coding Styles and Architectures, by Marco Cantu

Die folgenden Klassen wurden erweitert:

  • TActionManager
  • TApplication
  • TBitmap
  • TButton
  • TComboBox
  • TControl
  • TCustomListView
  • TDBImage
  • TEdit/TLabeledEdit
  • TGraphic
  • TImageList
  • TLabel
  • TListView
  • TCustomHeaderControl
  • THeaderSection
  • TMaskEdit
  • TMemo
  • TObject
  • TPanel
  • TPopupActionBar
  • TProgressBar
  • TRadioGroup
  • TScreen
  • TTrayIcon
  • TTreeView
  • TWinControl

Sonstige Erweiterungen:

  • Unterstützung des PNG-Bildformats, einschließlich der Unterstützung von Transparenz.
  • Published DoubleBuffered-Eigenschaft für die meisten Komponenten.
  • Eigenschaft ParentDoubledBuffered hinzugefügt.
  • Themes-bezogenes Anzeigedesign für Aktionsmenüs/Symbolleisten (erfordert Windows Vista oder höher).
  • ActionManager-Design “Plattformvorgabe” hinzugefügt, damit Aktionsmenüs/Symbolleisten dem Erscheinungsbild des Betriebssystems entsprechen (führt das Themes-bezogene Windows Vista-Erscheinungsbild ein).

Ribbon-Steuerelemente

Ein neues Feature ist die Unterstützung des 2007 Microsoft(®) Office Fluent(TM) User Interface. Dies ist unter dem Namen Ribbon bekannt. Das Ribbon wird vom TActionManager verwaltet. Der TActionManager ermöglicht die Entwicklung zweckmäßigerer Anwendungen, indem Sie in der IDE Ribbons für Ihre Delphi-Anwendung erstellen. Mit dem TActionManager können Sie Befehle, Schaltflächen und Grafiken erstellen, die mit diesen Ribbons verknüpft sind.

Für die Unterstützung von Ribbon-Steuerelementen wurden die folgenden zentralen Komponenten hinzugefügt:

  • TRibbon: Stellt die Hauptfunktionalität für das Ribbon mit Registerkarten und Befehlsgruppen bereit.
  • TRibbonApplicationMenuBar: Stellt die Funktionalität für das Hauptmenü der Anwendung bereit.
  • TRibbonQuickAccessToolbar: Ermöglicht die Entwicklung der Symbolleiste für den Schnellzugriff für Ihr Ribbon.

Um eine Anwendung mit einem Ribbon zu erstellen, beginnen Sie mit dem Erstellen einer neuen Delphi Win32 VCL-Anwendung. Bei Anwendungen, die bereits einen TActionManager enthalten, können Sie einfach die Eigenschaft Style auf einen der drei Ribbon-Stile setzen, oder konvertieren Sie Ihre vorhandene Benutzeroberfläche für die Verwendung des Ribbon.

Demo für Ribbon-Steuerelemente: Mit dem Produkt werden drei Demos für Ribbon-Steuerelemente installiert. Wechseln Sie zu Eigene Dokumente | RAD Studio | 6.0 | Demos | DelphiWin32 | VCLWin32 | RibbonControls.

Weitere Themen über Ribbon-Steuerelemente:

Integrierte Übersetzungsumgebung/Externer Translation-Manager

ITE und ETM sind jetzt für Delphi und C++Builder verfügbar.

Die Integrierte Übersetzungsumgebung (Integrated Translation Environment ITE) ist ein Bestandteil der IDE, die die Lokalisierung Ihrer Projekte vereinfacht. ITE kann aus einem vorhandenen Projekt ein neues lokalisiertes Projekt erstellen. ITE übersetzt Text nicht automatisch, stellt aber ein Dialogfeld mit dem gesamten zu lokalisierenden Text und Feldern bereit, in die die entsprechende Übersetzung eingegeben werden kann. Nach Eingabe des übersetzten Textes und dem Erzeugen des lokalisierten Projekts, können Sie die lokalisierte als aktive Sprache festlegen und Formulare aus dem Projekt in dieser Sprache anzeigen; Sie müssen die Gebietseinstellung nicht ändern und das System nicht neu starten. Dies ermöglicht Lokalisierungen, ohne dass lokalisierte Systeme erforderlich sind.

Der Externe Translation-Manager (ETM) ist eine eigenständige Anwendung, die mit DFM-Dateien und Text-Strings im Quelltext arbeitet. Mit ETM können keine neuen lokalisierten Projekte erstellt werden. ETM stellt aber ähnlich wie ITE ein Dialogfeld mit dem Originaltext und dem übersetzten Text bereit.

Änderungen der Online-Hilfe

Hilfe zu Befehlen: Für die Befehle der verschiedenen Dropdown-Menüs in der IDE, wie z.B. Datei oder Komponenten, steht nun Hilfe zur Verfügung.

  • Zum Anzeigen der Hilfe zu den Befehlen, wählen Sie einen Befehl in einem Menü in der IDE aus und drücken F1.
  • Um Hilfe für einen Befehl anzuzeigen, der aktuell nicht aktiviert oder sichtbar ist, wechseln Sie auf die Seite Inhalt des Hilfe-Viewer und suchen Allgemein | Referenz | RAD Studio-Dialogfelder und -Befehle | <Menüname> | <Befehlsname>.

Optimieren des Zugriffs auf die Online-Hilfe: Haben Sie manchmal Probleme bei der Verwendung der Online-Hilfe? Im folgenden Artikel im CodeGear Developer Network finden Sie wertvolle Tipps zum Verwenden und Anpassen des Hilfe-Viewer, zum Setzen der Filter und weiterer Optionen zur Steuerung des Verhaltens der Index- und Suchfunktion: Getting the Best Results with RAD Studio Online Help.

Geschützte API jetzt in der Hilfe: Geschützte (protected) Methoden (Prozeduren und Funktionen) und geschützte Eigenschaften sind jetzt in den API-Themen enthalten.

Das kontextsensitive Hilfedialogfeld (F1) zeigt jetzt die RAD Studio-Ergebnis am Anfang der Liste an.

Siehe auch

In anderen Sprachen