Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier. Object Pascal auch bekannt als Delphi ist eine von der Firma Borland entwickelte objektorientierte Erweiterung der Programmiersprache Pascal .
Zuerst eingeführt wurde sie mit Delphi inzwischen ist sie mit Kylix auch für Linux verfügbar. Auch von Drittanbietern wurde diese eine Zeit lang angeboten so von Speedsoft deutschen Firma unter dem Namen Speed Pascal Sibyl als auch von der britischen Firma UK Ltd. unter dem Namen Virtual Pascal. wurden ursprünglich für OS/2 entwickelt und später nach Windows und portiert. Die Entwicklung von Sibyl wurde anscheinend Virtual Pascal ist inzwischen als Freeware erhältlich. Daneben es noch das ebenfalls kostenlose FreePascal welches unter der GPL steht.
Object Pascal ist nicht die erste Erweiterung von Pascal. Borland hatte bereits bei 5.5 von Turbo Pascal ein Objektmodell eingeführt welches interessanterweise von Delphi Compilern bis Version 7.0 immer noch wird wenn man auch nach einer Dokumentation sucht. (Delphi 8 fuer .NET unterstuetzt sie mehr.)
Object Pascal ist die Grundlage der Klassenbibliothek Visual Class Library (VCL) auf der basiert sowie der neueren Class Library for Platform (CLX) auf der Kylix basiert. Beide Bibliotheken sind stark miteinander und es ist häufig einfach eine für VCL geschriebene Komponente nach CLX zu portieren.
Ein Unterschied zu z.B. C++ ist dass es nicht möglich ist auf dem Stack anzulegen d.h. alle Objekte werden auf Heap angelegt. Viele der Elemente und Ideen ObjectPascal sind in die neue Programmiersprache C# und das Microsoft .NET Framework übernommen
type TMyObject = class private FSomePrivateField: protected procedure SomeProtectedMethod(Param1: integer; const Param2: string; OutParam: string); virtual; procedure SetSomeOtherProperty(Value: integer); function integer; public constructor Create; destructor Destroy; override; SomePublicMethod; published property SomePublishedProperty read FSomePrivateField; // property SomeOtherProperty: integer read GetSomeOtherProperty write SetSomeOtherProperty;
Properties dienen zum Information hiding indem direkter Zugriff auf die Variable verhindert wird die Methode entscheiden kann welchen Wert sie Lesen herausgibt und beim Ändern eines Wertes was einen ADT (abstract data type) auszeichnet. Wird beispielsweise bei property SomePublishedProperty keine write-Methode angegeben so handelt es um eine read-only Variable.
Der Datentyp Real entspricht in Delphi standardmässig dem Double . Zur Rückwärtskompatibilität kann man ihm mit Compilerschalter {$REALCOMPATIBILITY ON} dem Real48 gleichsetzen.
Der Datentyp Integer hängt von der jeweiligen Pascal-Implementation ab. 16bit-Implementationen (z.B. Turbo Pascal ) entsprach er einem SmallInt in 32bit-Implementationen einem LongInt und in 64bit-Implementationen wird er einem Int64 entsprechen.
Der Datentyp String entspricht standardmäßig einem AnsiString . Mit {$LONGSTRINGS OFF} entspricht er zur Rückwärtskompatibilität einem ShortString .
and array as asm begin case class constructor destructor dispinterface div do downto else except exports file finalization finally for function if implementation in inherited initialization inline interface label library mod nil not object of out packed procedure program property raise record resourcestring set shl shr string then threadvar try type unit until uses var while xor
In bestimmten Kontexten (sogenannte Direktiven ): absolute abstract assembler at automated cdecl default dispip dynamic export far implements index library nodefault on overload override pascal platform private public published read register reintroduce safecall stdcall virtual write