ObjectPascal

ObjectPascal

Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung einer ebenfalls vom Unternehmen Borland entwickelten Entwicklungsumgebung. Im November 2006 wurden die Entwicklerteams der Entwicklungswerkzeuge, darunter auch Delphi, von Borland in eine neue Tochtergesellschaft namens CodeGear ausgegliedert. Am 7. Mai 2008 wurde die IDE-Sparte an Embarcadero Technologies verkauft.[1]

Inhaltsverzeichnis

Die Sprache Delphi

Delphi basiert auf der Programmiersprache Object Pascal. Borland benannte Object Pascal jedoch 2003 in Delphi-Language um, mit der Begründung, dass sich bereits so viel in der Sprache verändert habe, dass man es nicht mehr mit Pascal vergleichen könne. So wurden zum Beispiel viele originäre Konstrukte, wie sie von Niklaus Wirth für Pascal als Programmiersprache zu Schulungszwecken erdacht worden sind (wie eine absolut strenge Typisierung), durch die aus der Praxis resultierenden Erfordernisse aufgeweicht.

Zuerst eingeführt wurde Delphi mit der Entwicklungsumgebung Delphi, sie war aber auch mit dem nicht mehr fortgeführten Projekt Kylix für Linux verfügbar. Auch von Drittanbietern wurde diese Sprache eine Zeitlang angeboten, so von Speedsoft, einem deutschen Unternehmen, unter dem Namen Speed Pascal bzw. Sibyl, oder vom britischen Unternehmen fPrint UK Ltd. unter dem Namen Virtual Pascal. Beide wurden ursprünglich für OS/2 entwickelt und später nach Windows und Linux portiert. Die Entwicklung von Sibyl durch das Unternehmen Speedsoft wurde eingestellt und die Quelltexte wurden teilweise veröffentlicht. Auf Basis der Quelltexte und einiger Erweiterungen steht mit WDSibyl eine IDE unter der GPL zur Verfügung. Virtual Pascal ist inzwischen ebenfalls als Freeware erhältlich. Daneben gibt es noch das ebenfalls kostenlose Free Pascal, welches unter der GPL steht und mit Lazarus als RAD-IDE ein freies Gegenstück zu Borlands Implementierungen bietet.

Eine wesentliche Erweiterung gegenüber der zugrunde liegenden Sprache Pascal ist die Einbeziehung objektorientierter Sprachmerkmale. Delphi ist aber nicht die erste objektorientierte Erweiterung von Pascal. Borland hatte bereits bei Version 5.5 von Turbo Pascal ein Objektmodell eingeführt, das von den Delphi-Compilern bis Version 7.0 und ab Version 2006 (10.0) immer noch unterstützt wird, wenn man auch nach einer Dokumentation vergeblich sucht. Delphi 8 für .NET unterstützt sie nicht. Mit dem Erscheinen von Borland Delphi 7 wurde die Programmiersprache offiziell von ObjectPascal in Delphi umbenannt.

Object Pascal ist die Grundlage der visuellen Klassenbibliothek Visual Component Library (VCL), sowie der neueren Component Library for Cross Platform (CLX), auf der Kylix basiert. Beide Bibliotheken sind stark miteinander verwandt, und es ist häufig einfach, eine für die VCL geschriebene Komponente nach CLX zu portieren.

Einige der Elemente und Ideen von Object Pascal wurden in die neue Programmiersprache C# von Microsoft übernommen. Einer der Gründe ist, dass Anders Hejlsberg, vormals Mitentwickler von Delphi bei Borland, zu Microsoft wechselte und maßgeblich an der Entwicklung von C# beteiligt war.

Einzelheiten

Delphi ist keine asketische Sprache: So beruht der größte Teil der Funktionalität auf Klassenbibliotheken, andere sehr häufig benötigte Funktionen werden direkt vom Compiler umgesetzt, so z. B. die nahtlose Integration der COM-Technologie unter Microsoft Win32. Der direkte Zugriff auf das Windows API ist möglich. Von Drittanbietern gibt es eine Vielzahl von Komponenten und Assistenten für die unterschiedlichsten Anwendungen (siehe Weblinks).

Ab der Version 6.0.1 wurden die Bibliotheken (bis zu diesem Zeitpunkt nur die Visual Component Library für Windows) um die Cross Plattform Library CLX erweitert, die die Lauffähigkeit eines Programms unter Windows und Linux ermöglichen sollte. Gleichzeitig wurde die Linuxportierung Kylix aus der Taufe gehoben.

Bis Delphi 2005 wurden Objekte grundsätzlich auf dem Heap angelegt. Dies ermöglicht es in Delphi, jedes Objekt als Rückgabe an den Aufrufenden zu übergeben. In anderen Programmiersprachen, wie z.B. C++ können Objekte sowohl im Heap, als auch im Stack angelegt werden. Objekte im Stack können nicht als Rückgabewert übergeben werden, da diese beim Verlassen der Funktion zusammen mit dem restlichen Stackframe der Funktion gelöscht werden. Somit wurde hier eine Designentscheidung getroffen, die dem Delphi-Programmierer die Entscheidung zwischen Heap/Stack abnimmt, und immer die flexiblere Lösung wählt. Als Nachteil dieser Technik ergibt sich unmittelbar, dass der Programmierer seine erzeugten Objekte selbst aus dem Speicher entfernen muss. Bei Objekten im Stack ist dies nicht notwendig. Somit können sich C++-Programmierer das Aufrufen der Destruktoren ihrer erzeugten Objekte teilweise sparen.

Seit Delphi 2006 werden die alten Objekte aus Turbo Pascal, die zwischenzeitlich nur eingeschränkt genutzt werden konnten, wieder unterstützt, bei denen der Programmierer die Freiheit hat, die Objekte dort abzulegen, wo es zweckmäßig ist.

Beispiel einer Klassen-Deklaration

type
  TCommonObject = class
  private
    FSomeInternalValue: integer; // wird von SomeCommonProtectedMethod verwendet
  protected
    procedure SomeCommonProtectedMethod;
    function GetSomeCommonValue: integer; virtual; abstract;
  published
    property SomeCommonProperty: integer read GetSomeCommonValue;
  end;
 
  TMyObject = class(TCommonObject)
  private
    FSomePrivateField: integer;
  protected
    function GetSomeCommonValue: integer; override;
    procedure SomeProtectedMethod(Param1: integer; const Param2: string; out OutParam: string); virtual;
    procedure SetSomeOtherProperty(Value: integer);
    function GetSomeOtherProperty: integer;
  public
    constructor Create;
    destructor Destroy; override;
    procedure SomePublicMethod;
  published
    property SomePublishedProperty: integer read FSomePrivateField; // kann nur gelesen werden
    property SomeOtherProperty: integer read GetSomeOtherProperty write SetSomeOtherProperty;
  end;

Dieses Beispiel definiert die zwei Klassen TCommonObject und TMyObject. TCommonObject beschreibt eine abstrakte Klasse, zu deren Entwurfszeit noch nichts über die konkrete Implementierung der Methode GetSomeCommonValue bekannt ist. Jedoch kann es für die weitere Verarbeitung verschiedener Nachfahren von TCommonObject zwingend erforderlich sein, dass diese Methode vorhanden ist. TCommonObject enthält also all diejenigen Methoden und Eigenschaften, die allen Nachfahren gemein sind. Hier im Beispiel wird GetSomeCommonValue erst in der Klasse TMyObject, die sämtliche Methoden und Eigenschaften von TCommonObject erbt, konkret implementiert.

Sichtbarkeitsbereiche

Wie im Beispiel zu erkennen, bestehen Klassen in der Delphi Language aus vier, ab Delphi 8 aus sechs, Sichtbarkeitsbereichen, die man auch Sichtbarkeitsattribute nennt:

Sichtbarkeitsattribut Sichtbarkeitsbereich
Selbe Klasse Nachfahren Selbe Unit1 Andere Units
strict private2 X
private X X
strict protected2 X X
protected X X X
public X X X X
published3 X X X X
automated4 X X X X

1) Eine Unit ist eine Datei bzw. ein Modul eines Programms, die beim Kompilieren eingebunden wird.
2) Erst ab Delphi 8 (.NET).
3) published-Elemente besitzen dieselbe Sichtbarkeit wie public-Elemente. Zusätzlich werden für published-Elemente Laufzeit-Typeninformationen erzeugt. Die Laufzeit-Informationen werden für die Darstellung der Eigenschaften im Objektinspektor und zum Laden und Speichern von Formulardaten verwendet.
4) automated-Elemente besitzen dieselbe Sichtbarkeit wie public-Elemente. Zusätzlich erhalten diese Elemente Typinformationen für Automatisierungsserver.

Die Sichtbarkeit kann in Nachfahren durch Redeklaration erhöht, allerdings nicht verringert werden.

Properties

Properties (Eigenschaften) dienen zur Datenkapselung (Information Hiding), indem ein direkter Zugriff auf die Daten verhindert wird und die Methode entscheiden kann, welchen Wert sie beim Lesen herausgibt und beim Ändern eines Wertes akzeptiert, was einen ADT (abstract data type) auszeichnet. Wird beispielsweise wie bei property SomePublishedProperty keine write-Methode angegeben, so kann der Wert der Property nicht (direkt) geändert werden.

Array Properties haben folgende Syntax:

property SomeArrayProperty[index1:TIndexType]: TDatatype read SomeArrayProperty write SomeArrayProperty;

Mit Array Properties lassen sich Assoziative Arrays nachbilden.

Die dazugehörige Implementierung

constructor TMyObject.Create; // legt eine Objektinstanz an
begin
  inherited; // Konstruktor der Oberklasse aufrufen
  fSomePrivateField := 42; // das private Feld mit 42 initialisieren
end;
 
destructor TMyObject.Destroy;
begin   
  inherited; // Destruktor der Oberklasse aufrufen
end;
 
function TMyObject.GetSomeCommonValue: integer;
begin
  Result := FSomeCommonValue * 2;
end;
 
procedure TMyObject.SomeProtectedMethod(Param1: integer; const Param2: string; out OutParam: string);
var
  i: integer; // Deklaration lokaler Variablen
begin
  OutParam := ''; // Ausgabeparameter initialisieren
  // Ausgabeparameter mit dem Eingabeparameter Param1-mal konkatenieren:
  for i:=1 to Param1 do
    OutParam := OutParam + Param2;
end;
 
procedure TMyObject.SomePublicMethod;
begin
  Inc(fSomePrivateField); // privates Feld hochzählen
end;
 
procedure SetSomeOtherProperty(Value: integer);
begin
  fSomePrivateField := Value * 5;
end;
 
function GetSomeOtherProperty: integer;
begin
  Result := fSomePrivateField div 5;
end;


Syntax

Elementare Datentypen

Name Größe Wertebereich Beschreibung
Boolean 1 Byte true (1) oder false (0) boolescher Wert
ByteBool 1 Byte true (nicht 0) oder false (0) boolescher Wert
WordBool 2 Byte true (nicht 0) oder false (0) boolescher Wert
LongBool 4 Byte true (nicht 0) oder false (0) boolescher Wert
Byte 1 Byte 0 bis 255 vorzeichenlose 8-Bit-Ganzzahl, inzwischen auch als UInt8 verfügbar
Word 2 Byte 0 bis 65535 vorzeichenlose 16-Bit-Ganzzahl, , inzwischen auch als UInt16 verfügbar
LongWord / Cardinal 4 Byte 0 bis 4.294.967.295 vorzeichenlose 32-Bit-Ganzzahl, , inzwischen auch als UInt32 verfügbar
UInt64 8 Byte 0 bis 18.446.744.073.709.551.615 vorzeichenlose 64-Bit-Ganzzahl, undokumentiert, teilweise fehlerhaft, beispielsweise keine Literale oberhalb von 263−1
ShortInt 1 Byte −128 bis 127 vorzeichenbehaftete 8-Bit-Ganzzahl
SmallInt 2 Byte −32.768 bis 32.767 vorzeichenbehaftete 16-Bit-Ganzzahl
LongInt / Integer 4 Byte −231 bis 231−1 vorzeichenbehaftete 32-Bit-Ganzzahl
Int64 8 Byte −263 bis 263−1 vorzeichenbehaftete 64-Bit-Ganzzahl
Real48 6 Byte 2,9·10−39 bis 1,7·1038 48-Bit-Gleitkommazahl
Single 4 Byte 1,5·10−45 bis 3,4·1038 32-Bit-Gleitkommazahl (IEEE 754-float)
Double / Real 8 Byte 5,0·10−324 bis 1,7·10308 64-Bit-Gleitkommazahl (IEEE 754-double)
Extended 10 Byte 3,6·10−4951 bis 1,1·104932 80-Bit-Gleitkommazahl
Comp 8 Byte −263 bis 263−1 vorzeichenbehaftete 64-Bit-Ganzzahl, mit der über die FPU gerechnet wird
Currency 8  Byte −922.337.203.685.477,5808 bis 922.337.203.685.477,5807 vorzeichenbehaftete 64-Bit-Festkommazahl
Char1 1 Byte #0 bis #255 8-Bit-Zeichen, z. B. ASCII-/ANSI-Zeichen
AnsiChar 1 Byte #0 bis #255 8-Bit-Zeichen, z. B. ASCII-/ANSI-Zeichen
WideChar 2 Byte #0 bis #65535 16-Bit-Zeichen, z. B. Unicode-Zeichen in UTF-16 Kodierung
ShortString bis 256 Byte Aneinanderreihung von bis zu 255 Chars
AnsiString bis 2 GByte Aneinanderreihung von bis zu 231 Chars
WideString bis 2 GByte Aneinanderreihung von bis zu 230 WideChars. Kompatibel mit COM BSTR (Basic String).
UnicodeString bis 2 GByte Aneinanderreihung von bis zu 230 UnicodeChars. Im Gegensatz zum WideString kümmert sich der Compiler um die Referenzzählung. Als Kodierungsformat wird UTF-16 verwendet.[2]

Der Datentyp Real entspricht in Delphi standardmäßig dem Double. Zur Rückwärtskompatibilität kann man ihn mit dem Compilerschalter {$REALCOMPATIBILITY ON} dem Real48 gleichsetzen.

Der Datentyp Integer hängt von der jeweiligen Pascal-Implementierung ab. In 16-Bit-Implementierungen (z. B. Turbo Pascal) entsprach er einem SmallInt, in 32-Bit-Implementierungen einem LongInt und in 64-Bit-Implementierungen wird er einem Int64 entsprechen. Ähnlich verlängerte sich der Datentyp Cardinal im Laufe der Versionen von 15 auf 16 und heute 32 Bit.

1 Der Datentyp Char entspricht ab Delphi 2009 dem Typ WideChar und belegt damit 2 Bytes.

Der Datentyp String entspricht standardmäßig einem AnsiString bis Delphi 2009 bzw. UnicodeString[2] ab Delphi 2009. Mit {$LONGSTRINGS OFF} entspricht er zur Rückwärtskompatibilität einem ShortString.

Reservierte Symbole

and array as asm begin case class const constructor destructor dispinterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization interface is label library mod nil not object of or out packed procedure program property raise record repeat resourcestring set shl shr static string then threadvar to try type unit unsafe until uses var while with xor

Direktiven

Direktiven sind Symbole, die nur in bestimmten Kontexten reserviert sind, sonst aber als Namen für Variablen, Funktionen, usw. benutzt werden können.

absolute abstract assembler at automated cdecl contains default deprecated dispid dynamic experimental export external far final forward fragment helper implements index inline library local message name near nodefault on operator overload override pascal platform private protected public published read readonly reference register reintroduce requires resident safecall sealed static stdcall stored strict varargs virtual winapi write writeonly

Die Entwicklungsumgebung Delphi

Delphi EEP (Early Experience Program)

Die erste Vorabversion von Delphi wurde im Herbst 1994 von Borland an einen begrenzten Entwicklerkreis verkauft. Diese inkl. des Quellcodes ausgelieferte Version zeigte noch deutliche Unterschiede zur kommenden Delphi 1 Version.

Delphi 1 (Codename: Delphi)

Die erste Version von Delphi wurde am 14. Februar 1995 veröffentlicht und erzeugte nur Code für 16-Bit-Anwendungen für Windows 3.x. Der Umfang der mitgelieferten Komponenten war relativ gering.

Delphi 2 (Codename: Polaris)

Delphi 2 wurde im März 1996 veröffentlicht und ist die erste Version, die 32-Bit-Anwendungen für Windows erzeugen konnte. Die Vorgängerversion Delphi 1 und die englische Version von Delphi 2 waren zusätzlich auf der CD-ROM enthalten.

Delphi 2 war durch den Übergang von 16 auf 32 Bit erheblich weiter entwickelt worden. Neben moderneren Komponenten im Windows-95-Stil lag der Vorteil vor allem bei dem viel größeren lokalen Speicher. Vorher war die Größe aller Datentypen auf maximal 64 KByte (-16 Byte) beschränkt. Zeichenketten konnten nur 255 Zeichen lang sein. Nun konnten Zeichenketten und Datenstrukturen bis zu 2 GByte groß bzw. lang sein.

Delphi 3 (Codename: Ivory)

Delphi 3 wurde im Mai 1997 veröffentlicht.

Wesentliche Veränderungen zur Vorgängerversion waren das Eliminieren zahlreicher Bugs, eine Erweiterung der IDE durch Code Insight, weitere Common-Control-Komponenten (ToolBar, CoolBar) und die Aufnahme von Komponenten für Internet-Protokolle.

Delphi 4 (Codename: Allegro)

Delphi 4 wurde im Juli 1998 veröffentlicht und brachte die Unterstützung dynamischer Arrays sowie einige Verbesserungen der IDE, besonders in Bezug auf Übersichtlichkeit und die Verwaltung großer Projekte und Projektgruppen.

Delphi 5 (Codename: Argus)

Delphi 5 wurde im August 1999 veröffentlicht. Mit Delphi 5 konnte erstmals über ADO auf Datenbanken zugegriffen werden. Diese Erweiterung musste in der Professional-Version allerdings als ADO Express zugekauft werden. Außerdem hielten Komponenten Einzug, mit denen via OLE auf Microsoft-Office-Anwendungen zugegriffen werden konnte. Dies war allerdings durch direkten Aufruf der OLE-Befehle schon vorher möglich.

Delphi 6 (Codename: Iliad)

Delphi 6 wurde im Mai 2001 veröffentlicht. Mit Delphi 6 konnte erstmals mit dem zusätzlichen Modellierungswerkzeug Modelmaker aus UML-Modellen Delphi-Programmcode erzeugt werden. Modelmaker erlaubt das Erstellen von Diagrammen in der Unified Modeling Language UML, einer Standardsprache zur Modellierung objektorientierter Systeme. Die manuelle Programmierung wird somit reduziert. Für Datenbankzugriffe hielt die neue Schnittstelle dbExpress Einzug.

Aufzählungstypen kann ein bestimmter, ordinaler Wert zugewiesen werden.

type
 TState = (stUndefined, stCover, stLoop, stSource = 42);

Delphi 7 (Codename: Aurora)

Delphi 7 wurde im August 2002 veröffentlicht. Mit Delphi 7 wurde ein Preview Compiler für .NET-Entwicklung in Delphi ausgeliefert. Das Modellierungswerkzeug Modelmaker wurde ab dieser Version in Delphi integriert.
Der Berichtsgenerator wurde mit Delphi 7 von QuickReport hin zu Nevrona Rave Reports 5 geändert.

Delphi 8 (Codename: Octane)

Delphi 8 wurde im Dezember 2003 veröffentlicht. Es umfasste nur .NET-Entwicklung.

Delphi 2005 (Codename: DiamondBack)

Delphi 2005 wurde seit November 2004 ausgeliefert. Neben nativen Windows-32-Bit-Anwendungen können mit Delphi 2005 auch .NET-Anwendungen in Delphi und C# erstellt werden. Im Gegensatz zu den Vorversionen Delphi 7 (Win32) und Delphi 8 (.NET) gibt es nun nur noch eine Delphi-IDE oder auch "Borland Developer Studio".

Mit Delphi 2005 hielten umfassende Neuerungen in die IDE Einzug, wie z. B. Refactoring. Auch die Programmiersprache selbst wurde um einige Funktionen, wie z. B. das For-Each-Konstrukt erweitert. Der Compiler kann nun auch sprachspezifische Zeichen interpretieren. So können im deutschen Quelltext auch die Sonderzeichen ä, ö, ü verwendet werden. Die IDE zeigt umfassende Hilfetexte in einer nie dagewesenen Übersichtlichkeit an. Allerdings traten auch viele Fehler innerhalb der IDE und den mitgelieferten Komponenten auf, was zu einer gewissen Unzufriedenheit bei den Nutzern geführt hat, vor allem auch in Bezug auf die lange Ladezeit der IDE. Erst nach mehreren Updates und einigen inoffiziellen Bugfixes konnte man nach Meinung vieler Entwickler mit der IDE sinnvoll arbeiten.
Auch von Delphi 2005 existierte eine kostenlose Personal Edition.

Delphi 2007 / BDS 2006 (Codename: DeXter)

Diese Version hat neue Sprachunterstützung für den Win32-Compiler für Records mit Methoden, Operatorüberladung und Klassenvariablen erhalten; damit wird fast der Stand der bestehenden Features des Delphi für .NET-Compiler erreicht.

Delphi 2006 enthält außerdem volle C++-Sprachunterstützung, inklusive VCL-Formdesigner (wie im Borland C++Builder), welche allerdings, da sie nicht rechtzeitig fertig wurde, erst mit Update 1 komplettiert wurde. Dies wurde offiziell angekündigt, ein Novum in der Produktpolitik von Borland.

Die IDE enthält neue Funktionen wie z. B. die "Live Templates", Blockvervollständigung und Einrückung während des Tippens und veränderte Zeilen-Indikatoren am linken Editor-Rand.

Außerdem ist ein Kommandozeilen-Compiler für .NET-Compact-Framework-Anwendungen enthalten. Damit können prinzipiell Anwendungen für Windows CE und Pocket PCs erstellt werden, auch wenn der Formulardesigner noch nicht dafür ausgelegt ist, es noch keinen Debugger gibt und man einen Emulator von einer anderen Webseite herunterladen muss (kostenlos).

Seit dem 5. September 2006 gibt es von Delphi 2006 sog. "Turbo-Versionen". Es handelt sich dabei um abgespeckte Versionen des Borland Developer Studios 2006 (Professional).

Delphi 2007 for Win32 (Codename: Spacely)

Diese im März 2007 erschienene und separat lieferbare Variante besitzt auf vielfachen Kundenwunsch nur die Delphi for Win32-Personality und wartet unter anderem mit folgenden Neuerungen auf: Anpassungen und Erweiterungen für Windows Vista, überarbeitetem Datenbankframework dbExpress, einer erweiterten Version von Intraweb mit Ajax-Unterstützung unter dem Namen "VCL for the Web" und einer überarbeiteten Hilfe. Diese Version ist auch die erste Version, die als Download über das Internet bezogen werden kann sowie alle Sprachen (Englisch, Deutsch, Japanisch, Französisch) zusammen enthält. Ebenfalls erschienen ist ein Delphi für PHP, welches aber außer dem Namen und einer gewissen Ähnlichkeit der IDE mit Delphi weiter nichts zu tun hat.

RAD Studio 2007 (Codename: Highlander)

Die im September 2007 erschienene Version kombiniert Delphi, Delphi für .NET und C++ Builder unter dem Namen RAD Studio 2007 (RAD steht hierbei für Rapid Application Development). Die ursprünglich für diese Version angekündigte Unterstützung von mobilen Geräten auf Basis des Compact Frameworks wurde auf einen späteren Zeitpunkt verschoben. Zusätzlich wird das mit Delphi 2007 zur Version 4 umgebaute Datenbankframework dbExpress weiter ausgebaut und eine neue embedded Datenbank namens BlackFish SQL mitgeliefert. Diese basiert auf .NET und ist kompatibel zum existierenden JDataStore. Mit RAD Studio 2007 wird auf der .NET Seite das Framework Version 2.0 unterstützt, inklusive ASP.NET 2.0 und damit auch Generics. Klassen des .NET Frameworks 3.0 können mit etwas manueller Arbeit auch genutzt werden, da diese Version keine Spracherweiterungen (wie 2.0 Generics) sondern lediglich neue Funktionen beinhaltet. Die integrierte Hilfe wurde weiter überarbeitet und enthält inzwischen wieder einige Codebeispiele.

Delphi 2009 (Codename: Tiburón)

Ursprünglich als Delphi 2008 angekündigt, ist Tiburón seit dem 25. August 2008 als Delphi 2009 erhältlich[3]. Es gab umfangreiche Änderungen an IDE, RTL und VCL. Bei der IDE wurde u.a. der ClassBrowser überarbeitet, ein RessourceBrowser zum Verwalten der mit in die exe-Datei einzukompilierenden Ressourcen ergänzt und benutzerdefinierte Build-Configurations (debug, release) hinzugefügt. Mehrere neue Komponenten, darunter ein Ribbon Control, mit dem Menüs wie bei Office 2007 möglich sind, erweitern die VCL. Zudem wurde die gesamte RTL und VCL auf Unicode umgestellt. Als Spracherweiterung hielten Anonyme Methoden und Generics Einzug in Delphi für Win32[4].

Neben Delphi 2009 firmiert auch der C++Builder 2009 unter dem Namen Tiburón. Werden beide installiert, integrieren sie sich in eine einzige IDE.

Ein Artikel zu den Neuerungen in Delphi 2009 ist auf entwickler.de [5] zu finden.

Delphi Prism (Delphi .NET)

Die neue Version von Delphi für das .NET-Framework, Delphi Prism, wurde Ende Oktober 2008 von Embarcadero vorgestellt. [6]. Im Gegensatz zu früheren Delphi für .NET Versionen wird für Prism nicht mehr die Delphi-IDE, sondern Visual Studio genutzt. Embarcadero arbeitet hierfür mit RemObjects zusammen, um das Produkt Oxygene als Delphi Prism weiterzuführen.[7]

Mittels Prism wird es auch möglich Mono als .NET Implementation zu nutzen und damit können Programme für Linux und Mac OS X geschrieben werden. Die Entwicklung für Windows Mobile wird weiterhin nicht wirklich offiziell unterstützt, da der WinForms Oberflächen Designer immer noch hard codiert für VB.NET und C# ist.

Die Programmiersprache ist nicht 100% kompatibel zum bestehenden Delphi-NET Sprachumfang, für einige Dinge gibt es Compilerschalter und für die fehlende RTL und VCL.Net Unterstützung gibt es ein Projekt Namens ShineOn.

Delphi 2010 (Codename: Weaver)

Für Mitte 2010 ist die Veröffentlichung der nächsten Delphi-Version, die unter dem Codenamen Weaver entwickelt wird, geplant. Bei dieser Version wird der Fokus auf vielen Kleinigkeiten liegen und es soll eine Vorschau Version des kommenden 64 Bit Compilers enthalten sein. Außerdem sollen alle derzeit noch fehlenden Hilfetexte ergänzt werden. [8][9]

Turbo Delphi

Parallel zum Spin-off der IDE-Sparte von Borland in das neue Unternehmen CodeGear, wurde eine neue "Turbo"-Produktlinie eingeführt, die wohl auf die Erfolge von Turbo Pascal in den 1980ern und frühen 1990ern anspielen soll. Als neue "Turbo"-Produkte werden nun die Komponenten Delphi, Delphi for .NET, C++ und C# wieder als einzelne Module vertrieben.

Hierbei gibt es für alle Produkte eine kostenlose "Explorer"-Version, die insofern im Funktionsumfang eingeschränkt ist, als sich die Tool-Palette nicht mit Komponenten von Drittherstellern erweitern lässt und der Programmierer daher mit den 200 mitgelieferten auskommen muss, es sei denn, man erzeugt diese nur zur Laufzeit aus dem Programm heraus. Außerdem ist der Kommandozeilencompiler nicht enthalten. Daneben gibt es "Professional"-Versionen, die ca. 400 US-Dollar kosten und diese Einschränkung nicht besitzen. Die "Professional"-Versionen sind inzwischen allerdings nicht mehr im Handel erhältlich. Allen Turbo-Versionen ist gemein, dass – zumindest ohne Zusatztools (TEMerger ehemals TurboMerger), die diese Sperre umgehen – auf einem Rechner jeweils nur ein Produkt der Turbo-Reihe installiert werden kann. Dies hat allerdings keine lizenzrechtlichen, sondern ausschließlich technische Gründe.

Ursprünglich war geplant, die Turbo-Versionen als festen Bestandteil in die Produktpalette mit aufzunehmen. Ob und in welchen Abständen weitere Turbo-Versionen folgen werden, bleibt aber weiterhin offen.

Delphi-ähnliche Entwicklungsumgebungen

Für Linux/X11 auf Intel x86 war ein ähnliches Paket unter dem Namen Kylix verfügbar, welches allerdings von Borland nicht mehr gepflegt wird. Da die Entwicklungsumgebung diverse Fehler enthielt, gibt es zahlreiche Unternehmungen, diese zu stabilisieren und die Kompilate unter neuen Linux-Versionen lauffähig zu machen. Dazu zählen inoffizielle Bugfixes, als auch eine Alternative (die Entwicklung von CrossKylix wurde im September 2007 eingestellt), um den Kylix-Compiler unter Windows zu benutzen.

Für die Sprache C++ bietet CodeGear ein ähnliches Entwicklungssystem namens C++Builder an, das eng mit der Delphi-IDE verwandt ist. (Der oft hiermit verwechselte C++BuilderX ist eine auf der Primetime-IDE des JBuilder basierende, erweiterbare IDE für Cross-Platform-Entwicklung und die Unterstützung mehrerer Compiler und hat mit C++Builder kaum Gemeinsamkeiten.)

Lazarus ist eine stark Delphi-ähnliche IDE, die unter der LGPL steht. Die Lazarus-IDE basiert auf dem Free-Pascal-Compiler und ist unter Linux, MacOS(X) und Windows lauffähig ebenso können für diese Plattformen und ein paar andere Programme erzeugt werden.

WDSibyl wurde ursprünglich als kommerzielles Produkt vom Unternehmen Speedsoft entwickelt (Sibyl Pascal). Die Sourcen der IDE unterliegen der GPL (General Public License) und die Sourcen der Laufzeit- und Klassenbibliotheken hat das Unternehmen schon vor Jahren auf ihrer Homepage bereitgestellt. Die ursprünglichen Source-Codes werden weiterentwickelt und unterliegen ebenfalls der GPL. Die Delphi-ähnliche Entwicklungsumgebung läuft unter OS/2 und Windows.

Die von Microsoft vertriebene Entwicklungsumgebung Visual Basic ist ebenfalls mit Delphi optisch bis zu einem gewissen Grad vergleichbar, wobei der Sprachumfang zur Zeit jedoch, insbesondere objektorientierte Aspekte betreffend, nicht an den von Borland Delphi heranreicht. Zusätzlich benötigt jedes Programm, das in Visual Basic geschrieben wurde, die spezielle Visual Basic Runtime (Laufzeitumgebung). Die letzte von Microsoft herausgegebene Version Visual Basic 6 stammt aus dem Jahre 1998, und Microsoft hat den Support dafür im April 2005 eingestellt. Seitdem gibt es nur noch eine in der Programmiersprache inkompatible Version für das .NET Framework.

Der Name „Delphi“

Der Name Delphi hat seinen Ursprung in der starken Datenbankorientierung der Entwicklungsumgebung. Oracle ist sowohl der Name eines Datenbanksystems als auch das englische Wort für Orakel. Als bekanntestes Orakel gilt das Orakel von Delphi. Dieser Zusammenhang wird auch von Borland-Mitarbeitern als Ursprung des Namens genannt.[10]

Literatur

  • Thomas Binzinger: Jetzt lerne ich Delphi. Der einfache Einstieg in Object Pascal – für alle Versionen bis einschließlich Delphi 2006. Markt und Technik, München 2006, ISBN 3-8272-4108-1
  • Walter Doberenz, Thomas Kowalski: Delphi 7 Kochbuch. Hanser, München 2003, ISBN 3-446-22325-8
  • Richard Kaiser: Objekt Pascal mit Delphi – Eine Einführung in die objektorientierte Windows-Programmierung. Springer, Berlin 2001, ISBN 3-540-60340-9
  • Martin Pyka, DirectX 9 in Delphi, BoD, 2004, ISBN 3-833-40835-9
  • Wolf-Gert Matthäus: Grundkurs Programmieren mit Delphi. Vieweg, 2004, ISBN 3-528-05863-3
  • Hans-Georg Schumann: Delphi für Kids. Mitp-Verlag, 2005, ISBN 3-8266-1529-8 (besonders für Schüler/Kinder, aber auch für jung gebliebene)
  • Hans-Georg Schumann: Delphi für Kids, 2.Auflage, bhv-Verlag, ISBN 3-8266-1529-8, mit Delphi 7 Personal

Einzelnachweise

  1. David Intersimone: Community Letter: Embarcadero Technologies agrees to acquire CodeGear from Borland. In: CodeGear Developer Network. 7. Mai 2008. Abgerufen am 7. Mai 2008. (Englisch)
  2. a b Chris Bensens Blog
  3. „Erhältlich“ heißt bestellbar. Die Auslieferung wird wohl noch einige Tage oder Wochen dauern. Siehe hier: http://blogs.codegear.com/nickhodges/2008/08/25/39111/
  4. siehe http://www.delphi-treff.de/backstage/insider-wissen-und-previews/preview-delphi-2009-tiburon/
  5. http://entwickler.de/zonen/portale/psecom,id,101,online,1928,p,0.html
  6. http://www.codegear.com/article/38851
  7. http://www.remobjects.com/oxygene.aspx#1
  8. http://www.delphi-treff.de/news/news-details/article/506/81/
  9. http://edn.embarcadero.com/article/39174
  10. http://dn.codegear.com/article/20396

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • ObjectPascal — Object Pascal Object Pascal est un langage orienté objet dérivé du Pascal. Il a été créé en 1990 par la société Borland comme une amélioration de son logiciel phare de l époque Turbo Pascal. Il s agissait alors de la version 5.5. Même si l ajout… …   Wikipédia en Français

  • Borland Delphi — Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung… …   Deutsch Wikipedia

  • Borland Developer Studio — Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung… …   Deutsch Wikipedia

  • Delphi-Language — Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung… …   Deutsch Wikipedia

  • Delphi Programmiersprache — Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung… …   Deutsch Wikipedia

  • Java Virtual Machine — Java Logo Die Java Virtual Machine (abgekürzt Java VM oder JVM) ist der Teil der Java Laufzeitumgebung (JRE) für Java Programme, der für die Ausführung des Java Bytecodes verantwortlich ist. Hierbei wird im Normalfall jedes gestartete Java… …   Deutsch Wikipedia

  • Object Pascal — Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung… …   Deutsch Wikipedia

  • ISO 7185 — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

  • Langage Pascal — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

  • Langage de programmation Pascal — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”