はじめに
『Delphi 2009』 についての概要です。
概要
製品概要です。
項目 | 説明 |
---|---|
製品名 | Delphi 2009 |
コードネーム | Tiburón |
発売年 | 2008 |
発売元 | Embarcadero Technologies |
ビルドバージョン | 12.0 |
コンパイラバージョン | 20.0 |
BDS バージョン | 6.0 |
サポートプラットフォーム | Windows |
前バージョンとの違い
- Unicode 対応
- 標準の string が UnicodeString になった
- ジェネリックスが追加された (Win32 では初)
- ジェネリックリスト (
TList<T>
) やコレクションが使えるようになった - 無名メソッドが使えるようになった
- メソッド参照型が使えるようになった
- 任意の型の「空の値」または「ゼロ値」または「ヌル値」を返すジェネリック型関数
Default()
が使えるようになった (Win32 では初) - 標準で PNG 形式の画像を扱えるようになった
- リボンコントロールが追加された
-
TEncoding
が使えるようになった -
TStringBuilder
が使えるようになった -
TSemaphore
が使えるようになった - 結果パラメータを伴う
Exit()
が使えるようになった - 無名メソッドに対応した
Synchronize()
が使えるようになった - 演算子のオーバーロードで
In()
とInclude()
およびExclude()
が使えるようになった -
{$POINTERMATH ON}
コンパイラ指令を使って、型付きポインタに対するポインタ演算が行えるようになった -
{$SCOPEDENUMS ON}
コンパイラ指令を使って、スコープのある列挙型を作る事ができるようになった - ANSI を扱うための
AnsiStrings
ユニットが追加された - ビルド構成を [プロジェクトマネージャ] から切り替えられるようになった
- リソースファイルをプロジェクトで管理できるようになった (
[プロジェクト | リソース]
) - [ツールパレット] に検索ウィンドウが付いた
-
TRichEdit
がラップしている RichEdit (Riched20.dll
) が変更になった (Delphi 2007 以前はRiched32.dll
をラップしていた)
その他
- 最初の Unicode 系 Delphi
- 生成された実行形式バイナリが Win9x 系や Windows 2000 よりも前の NT 系で動作しない可能性が高い
- クラスヘルパを使うと裏技的にクラスの private メンバにアクセスできるようになった
- 以降『Quick Report』は付属しない
- クラスエクスプローラが復活した
- Unicode に対応したリソースコンパイラ
CGRC.EXE
が付属するようになった - IDE 環境設定のレジストリエントリは
HKEY_CURRENT_USER\Software\CodeGear
にある - 以降、DBX を利用する場合、Profession 版でのリモート接続がライセンス違反となる
- TBitmap にバッファオーバーフローの脆弱性がある
- CodeGear が Embarcadero に買収された
- 2008 年には『Windows XP』の Service Pack 3 がリリースされています
- 2008 年は初代『Android』端末が発売された年です
アプリケーションを Unicode 化するために必要な情報
過去、アプリケーションを Unicode 化するために必要な情報の詰まった記事が EDN にありました。現在 Suppport Wiki にはそれらの記事が転載されています。
- Delphi Unicode ワールド パート I: Unicode とは?なぜ必要なのか?そして、Delphi でどのような作業を行うのか? (Support Wiki)
- Delphi Unicode ワールド パート II: RTL の新機能と、Unicode をサポートするクラス (Support Wiki)
- Delphi Unicode ワールド パート III: コードを Unicode 対応にする (Support Wiki)
- Delphi 2009 と Unicode: Part I (Support Wiki)
- Delphi 2009 と Unicode: Part II (Support Wiki)
- Delphi 2009 と Unicode: Part III (Support Wiki)
- Delphi 2009とUnicode: 番外編(サロゲートペア)(Support Wiki)
どうしても ANSI 版 Delphi からの移植が難しいコードがあるのなら「MECSUtils」を使ってみてください。
おわりに
待望の Unicode 系 Delphi の登場です。バグが多めなので、次バージョンの『Delphi 2010』以降を使った方がいいと思います。
Delphi 2009 よりも前での Unicode アプリケーション
Delphi 2009 よりも前で Unicode アプリケーションを作るには、TntWare の『TNT Unicode Control』を使う必要がありました。『TNT Unicode Control』は Delphi 6 以降 (旧バージョンは Delphi 5 以降) で使う事ができます。
『TNT Unicode Control』は無償だったのですが、2007/03 頃 TMS Software に買収され『TMS Unicode Component Pack』という有償の製品になりました。有償になる前の『TNT Unicode Control』は GitHub で公開されています。
See also:
- Delphi / C++Builder の新機能 (2007 以降) (Qiita)
- Delphi で生成された EXE が動作する Windows のバージョン (Qiita)
- Delphi におけるジェネリックプログラミング (Qiita)
- 【Delphi】文字列とファイルと複数行文字列 [小ネタ] (Qiita)
- 「MS Help 2.x ランタイムがインストールされていない」というエラーを解消する (Qiita)
- MECSUtils リファレンス (ht-deko.com)
- 正規表現の活用 (主に Delphi 2009 以降) (ht-deko.com)
- Delphi 2009 Handbook (Amazon)
- リッチ エディット コントロールについて (learn.microsoft.com)
- TRichEdit で英数字等のフォントが勝手に変わる (Delphi 2009 以降) (ht-deko.com)
- Delphi および C++ Builder における VCL Bitmap LoadFromFile の脆弱性について (Support Wiki)
- "EditorLineEnds.ttr"を作成できません。プロセスはファイルにアクセスできません。別のプロセスが使用中です。エラーが発生する (Support Wiki)
- オフラインインストール用に登録コードを取得する(RAD Studio/Delphi/C++Builder 2009からXE5まで) (Support Wiki)
- 手動アンインストール手順(RAD Studio 2009)(Supprt Wiki)
- TntWare Delphi Unicode Controls (Internet Archive: TntWare at 2007/02/06)
- TntWare Delphi Unicode Controls (Internet Archive: TntWare at 2007/04/05)
- Tnt Delphi UNICODE Controls Project (GitHub: @rofl0r)
- TMS Unicode Component Pack (TMS Software)