7以降にリリースされたDelphiに搭載された、数多くの新しい言語機能を解説します。ルーチンにinline指令を指定できるようになりました。これは、コンパイラに対して、そのルーチンを実際に呼び出す代わりに、呼び出し側にそのルーチンを含むコードを出力するよう指示します。演算子のオーバーロードDelphiでは、いくつかの関数または演算子をレコード宣言内でオーバーロードできます。end;クラスヘルパークラスヘルパーは、別のクラスに関連付けられて、そのクラス(またはその派生クラス)のコンテキスト下において使用される追加のメソッドおよびプロパティを導入するための型です。クラスヘルパーは、継承を使用することなくクラスを拡張する手法です。クラスヘルパーは単に、コンパイラが識別子を解決する際に使用するスコープを広げます。クラスヘルパーを宣言する場合は、ヘルパー名とヘルパーによって拡張するクラス名を指定します。クラスヘルパーは、拡張クラスを使用できる場所ならどこでも使用できます。コンパイラの解決スコープは,元のクラスとクラスヘルパーを合わせたものになります。クラスヘルパーはクラスを拡張する手法を提供しますが、新規にコードを開発する際に使用する設計手法とは考えないでください。privateキーワードは実際には同一ユニット内のクラス間に「フレンド」な関係を作成します。private宣言は、同一ユニット内のクラスはもちろんのこと、他のクラスからは見えない、真にプライベートなフィールドを作成します。protectedは、それを宣言したクラスおよび派生クラスからしか見えない、真にプロテクテッドなメンバーを作成します。メソッドを持つレコードレコードは、フィールドに加えて、プロパティ/メソッド(コンストラクタも含む)/クラスプロパティ/クラスメソッド/クラスフィールド/ネストした型を持てるようになりました。Red);end;abstractクラスメソッドだけでなく、クラスもabstractを宣言できるようになりました。sealedが指定されたクラスは継承して拡張するはできません。クラスは、クラス定数を持てるようになりました。これは、クラスのインスタンスごとではなく、クラスそのものに付随する定数です。クラスに、そのクラス内でのみ利用可能な型を宣言できるようになりました。クラスは、クラスのインスタンスごとではなく、クラス単体で利用可能なクラス変数を持てるようになりました。「クラス型」の例を参照してください。クラスは、クラスのインスタンスに対してではなく、クラスへの参照に対するプロパティであるクラスプロパティを持てるようになりました。クラスプロパティへのアクセッサは、クラスメソッドかクラス変数でなければなりません。「静的なクラスメソッド」の例を参照してください。クラス宣言の中で、ネストした型宣言が可能になりました。これは、概念的に関連する型をまとめたり、名前の競合を回避するための手段になります。...end;finalメソッドオーバーライドしたvirtualメソッドにfinal指令を指定できるようになりました。これにより、派生クラスがそのメソッドをオーバーライドするのを防ぎます。sealedを指定したクラスは継承による拡張はできません。「finalメソッド」の例を参照してください。クラスは静的なクラスメソッドを持てるようになりました。クラス型を使って呼び出し可能なメソッドです。静的なクラスメソッドは、オブジェクトの参照無しにアクセス可能です。クラスの通常のメソッドとは違い、静的なクラスメソッドはSelfパラメータを有しません。あらゆるインスタンスメンバにアクセスすることもできません(クラスフィールド/クラスプロパティ/クラスメソッドにはアクセス可能です)。クラスのメソッドとは違い、静的なクラスメソッドはvirtual宣言することもできません。形式の繰り返しをサポートします。次に、コンパイラが認識するコンテナ繰り返しパターンを示します。