5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Delphi】Delphi XE2 について

Last updated at Posted at 2024-12-14

はじめに

『Delphi XE2』 についての概要です。

image.png

概要

製品概要です。

項目 説明
製品名 Delphi XE2
コードネーム Pulsar
発売年 2011
発売元 Embarcadero Technologies
ビルドバージョン 16.0
コンパイラバージョン 23.0
BDS バージョン 9.0
サポートプラットフォーム Windows (32/64 bit) / macOS (32bit) / iOS (32bit)

前バージョンとの違い

  • 64bit Windows 対応
  • 64bit Windows 用コンパイラ dcc64.exe が追加された
  • マルチプラットフォーム対応
  • マルチプラットフォーム用フレームワークとして FireMonkey が採用された
  • macOS 用クロスコンパイラ dccosx.exe が追加された
  • iOS 開発のための FPC ツールチェインが含まれる
  • ユニット名前空間が拡張された (ユニットスコープ。.NET 以外では初)
  • [プロジェクトマネージャ] でターゲットプラットフォームを追加/切替できるようになった
  • [プロジェクトオプション] でカスタムマニフェストを指定できるようになった
  • [プロジェクトオプション] でビルド番号の自動生成が行われるようになった (XE 以前のはビルド番号の自動更新)
  • リモートデバッガも兼ねるプラットフォームアシスタントサーバーアプリケーション (PAServer) が用意された
  • VCL スタイル (テーマ) が使えるようになった
  • FMX スタイル (テーマ) が使えるようになった
  • 『FastReports』が付属するようになった
  • 『Documentation Insight』が付属するようになった
  • zip を標準で扱えるようになった (System.zip)
  • TEncoding.GetEncoding() で文字列によるエンコーディング指定が可能となった
  • OS の情報を得るための SysUtils.TOSVersion が用意されている
  • LiveBindings が使えるようになった
  • FireMonkey には TAnimation が用意されている
  • FireMonkey 用の条件コンパイル用の定数として FireMonkeyVersion が使えるようになった (Update 2 以降の FMX.Types)

その他

  • インストールに .NET Framework 3.5 が必要となった
  • XE6 辺りまで FireMonkey 関連はリファクタリングが続き、混乱がみられる。このため、XE2 以降の全バージョンの Delphi を網羅した FireMonkey のクラスやルーチンを作る事は困難になっている
  • FireMonkey のフォームファイルにも互換性の問題がある
  • FMX 名前空間にあるクラスやルーチンのうち、汎用的なものは XE6 辺りまでにかけて System 名前空間に移動する
  • TBCD レコードに演算子のオーバーロードが追加され、BCD 演算を簡単に行えるようになった
  • PAServer が Windows 8 (64bit) に対応していない (Windows 8 以降の 64bit Windows で 64bit アプリケーションをデバッグ実行できない)
  • TBitmap にバッファオーバーフローの脆弱性がある
  • 2011 年には『Windows 7』の Service Pack 1 がリリースされています

image.png

macOS について

macOS (当時は OS X) 用の開発には Mac 実機が必要なのですが、XE2 は Mac 実機なしでも実行形式ファイルを生成可能です (XE6 あたりまで可能だったかと)。

プロジェクト名が MyApp だった場合、次のようなフォルダ構成にして Mac に持って行くだけです。

[MyApp.app]
  |  
  +-[Contents]
    |  
    +-[MacOS]
    |  |
    |  +-MyApp
    |  |
    |  +-libcgcrtl.dylib       <- $(BDS)\Redist\osx32 から持ってくる: C++Builder のみ
    |  |
    |  +-libcgstl.dylib        <- $(BDS)\Redist\osx32 から持ってくる: C++Builder のみ
    |  |
    |  +-libcgunwind.1.0.dylib <- $(BDS)\Redist\osx32 から持ってくる
    |   
    +-[Resources]
    |  |
    |  +-MyApp.icns
    |
    +-info.plist               <- MyApp.info.plist をリネーム

iOS について

iOS 開発では FPC (Free Pascal Compiler) がツールチェインに使われています。FPC とは微妙に方言が異なるので、そのままコンパイルできない箇所が出てきます。このツールチェインは不評だったのか XE2 のみで消える事となります 1

FireMonkey はどこから来たのか?

『FireMonkey』は元々 KSDev の『VGScene』という製品でした。これが Embarcadero に売却され、組み込まれたものが FireMonkey です (FireMonkey 3D は恐らく『DXScene』がベース)。このため、初期の FireMonkey には「VG~」と名の付く識別子があったり、プロパティや関数名が英語圏ではあまり使われないようなものになっていたりします。

XE2 の最初期のリリースでは、『FireMonkey』に 『GLScene』(MPL) からのソースコード流用があり (『DXScene』の時点で流用があったのかは不明です)、その問題を解決するための Update 1 が急遽リリースされました。

Update 1 で解決されたライセンス上の問題
FireMonkey の 3D サポートの一部のコードが MPL オープン ソース プロジェクトである GLScene のコードに似ているという連絡がありました。当社では、GLScene プロジェクトの主要な貢献者である Eric Grange 氏と協力して、この問題を修正しました。このアップデートにより、問題になっているコードが置き換えられます。そのため、このアップデートをインストールし、その後、元の FireMonkey ユニットを使ってコンパイルしたあらゆるアプリケーションをビルドし直すことを強くお勧めします。

重要: これまでに FireMonkey 3D アプリケーションを作成されている場合: Delphi XE2 または C++Builder XE2 の Update 1 を使って FireMonkey 3D アプリケーションをビルドし直す必要があります。Update 1 をインストールしてソースをビルドし直すと、有効な再配布可能ライセンスがアプリケーションに含まれるようになります。

そういった経緯があるため、XE2 無印の使用はオススメしません。

おわりに

XE で搭載されなかった機能がこれでもかと言わんばかりに、このバージョンに追加されています。64bit Windows 用の実行形式バイナリも吐けるようになりました。

FireMonkey は 2D だけではなく 3D も使えるので、(使い所が難しいものの) 表現力を上げる事が可能になりました。

image.png

2011 年と言えば東日本大震災のあった年で、XE2 関連のイベントも余震の続く中で行なわれました。

See also:

索引

[ ← Delphi XE ] [ ↑ 目次へ ] [ → Delphi XE3 ]

  1. だって、そんな面倒な事するくらいなら最初から『Lazarus (Free Pascal)』使うよね?

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?