【Delphi】Delphi XE4 について

# はじめに
**『Delphi XE4』** についての概要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/f6fc3c7d-b4f1-2784-2a08-eb8e2aabe4f6.png)

# 概要
製品概要です。


| 項目 | 説明 |
|:---|:---|
| 製品名 | Delphi XE4 |
| コードネーム | Quintessence |
| 発売年 | 2013  |
| 発売元 | Embarcadero Technologies |
| ビルドバージョン | 18.0  |
| コンパイラバージョン | 25.0 |
| BDS バージョン | 11.0 |
| サポートプラットフォーム |  Windows (32/64 bit) / macOS (32bit) / iOS デバイス (32bit) / iOS シミュレータ (32bit)|

## 前バージョンとの違い

 - iOS デバイス用コンパイラ `dcciosarm.exe` が追加された
 - iOS シミュレータ用コンパイラ `dccios32.exe` が追加された
 - プリミティブ型 (Integer 等) へのヘルパーが追加された
 - 無名メソッドで即時実行関数式 (IIFE) が使えるようになった
 - `System.FSetExceptMask()` が使えるようになった
 - モバイル用コンパイラでは 0 ベース文字列がデフォルトで On になった
 - モバイル用コンパイラでは **ARC (自動参照カウント)** が有効となった
 - ARC が有効な環境かどうかは `{$IFDEF AUTOREFCOUNT}` で判断できる [^1]
 - ARC が有効な環境で `Create()` されたオブジェクトはスコープを抜けると自動で破棄される。手動で破棄したい場合には `Free()` ではなく `DisposeOf()` を使う
 - ARC が無効な環境で `DisposeOf()` を呼び出すと `Free()` が実行される
 - `System.Character` ユニット内のメソッドと `TCharacter` が非推奨となり、Char 型のヘルパーを使う事が推奨されるようになった
 - Enterprise 版以上の SKU では『FireDAC』が標準でインストールされるようになった

## その他

 - 0 ベース文字列など、XE4 での新機能とされている機能のいくつかは XE3 で実装されている
 - 『RAD Studio XE4』では『Delphi Prism』が付属しなくなった
 - これ以前のバージョンに実装された `TMonitor` はパフォーマンスに問題を抱えている
 - <font color="Crimson">TBitmap にバッファオーバーフローの脆弱性がある</font>
 - 2013 年は『Windows 8.1』が発売された年です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/6e023318-8478-6f55-7eb4-bacde2467702.png)

### Delphi Professional 版の Add-On Pack について

本物の iOS 開発が可能になりました。但し、モバイル開発は上位 SKU にのみ用意されています。

 - Delphi Enterprise SKU 以上
 - RAD Studio Professional 以上

Delphi Professional でモバイル開発を行うには『Mobile Add-On Pack』を別途購入する必要がありました。

同様に、XE3 で導入された『FireDAC』も Professional には用意されず、RAD Studio / Delphi Professional 版で FireDAC を使うには『FireDAC Client/Server Pack』を別途購入する必要がありました。

:::note
Starter 版にはいずれのアドオンも追加できません。
:::

# おわりに

このバージョンから変則スケジュールでのリリースとなります。

FireMonkey にドラスティックな変更が加わっています。このバージョンの FireMonkey は **FireMonkey 3** と呼ばれる事があります。

本バージョンからしばらくは FireMonkey 関連の変更が多くの割合を占めます。

**See also:**

 - [Delphi / C++Builder の新機能 (2007 以降) (Qiita)](https://qiita.com/ht_deko/items/23f51b4345f5d9ef14b1)
 - [「MS Help 2.x ランタイムがインストールされていない」というエラーを解消する (Qiita)](https://qiita.com/ht_deko/items/be1fb0aa801abbcdaa5c)
 - [旧バージョンの Delphi に FireDAC をインストールするには？ (Qiita)](https://qiita.com/ht_deko/items/ab472231ec6a8681991a)
 - [Delphi の型をレコードヘルパで拡張する (Qiita)](https://qiita.com/ht_deko/items/950f472efcdf1c0361b7)
 - [Delphi とラムダ式とクロージャ (Qiita)](https://qiita.com/ht_deko/items/bd33a26bec9e4cf25a8d)
 - [Delphi および C++ Builder における VCL Bitmap LoadFromFile の脆弱性について (Support Wiki)](https://docwiki.embarcadero.com/Support/ja/Delphi%E3%81%8A%E3%82%88%E3%81%B3C%2B%2BBuilder%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BVCL_Bitmap_LoadFromFile%E3%81%AE%E8%84%86%E5%BC%B1%E6%80%A7%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)
 - [オフラインインストール用に登録コードを取得する（RAD Studio/Delphi/C++Builder 2009からXE5まで） (Support Wiki)](https://docwiki.embarcadero.com/Support/ja/%E3%82%AA%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E7%94%A8%E3%81%AB%E7%99%BB%E9%8C%B2%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%EF%BC%88RAD_Studio/Delphi/C%2B%2BBuilder_2009%E3%81%8B%E3%82%89XE5%E3%81%BE%E3%81%A7%EF%BC%89)
 - [手動アンインストール手順（RAD Studio XE4）(Supprt Wiki)](https://docwiki.embarcadero.com/Support/ja/%E6%89%8B%E5%8B%95%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86%EF%BC%88RAD_Studio_XE4%EF%BC%89)

# 索引
[ [← Delphi XE3](https://qiita.com/ht_deko/items/8a1785bb278e6e691b29) ] [ [↑ 目次へ](https://qiita.com/ht_deko/items/eb96629d705542e3a980) ]  [ [→ Delphi XE5](https://qiita.com/ht_deko/items/b035425182913df5a48c) ]

[^1]: 但し、10.4 Sydney で廃止されている。