# Delphi XE を Windows 10 / 11 にインストールする --- tags: Delphi programming マイグレーション embarcadero created_at: 2021-07-15 updated_at: 2022-02-25 --- # はじめに **Delphi XE** は 2010 年に Embarcadero からリリースされました [^1]。 - 純粋な Win32 開発環境としての Unicode Delphi 最終版 - インストール時間が比較的短くて済む 上記理由により、現在でも VCL アプリケーションのマイグレーション用、あるいはマイグレーションの中間ステップ用として有用なバージョンです [^2]。 Embarcadero 製品のインストーラ及びアップデータは同社のサイト - [登録製品ポータル](https://my.embarcadero.com/) - [登録ユーザダウンロード](https://cc.embarcadero.com/myreg) いずれかからダウンロードできます。しかしながら Delphi XE は古い製品という事もあり、[登録製品ポータル](https://my.embarcadero.com/)からだとダウンロードできないアイテムがあるようです。 本記事は、各種ファイルを[登録ユーザダウンロード](https://cc.embarcadero.com/myreg)からダウンロードして Windows 10 / 11 にインストールする手順となっています。 # ■ インストーラとアップデータとホットフィックス ## \#1 Delphi XE and C++Builder XE ISO セットアップ DVD イメージファイル (ISO) です。完全インストーラと ESD インストーラもあります。Update1 が含まれています。 インストール先はデフォルトの `%ProgramFiles(x86)%\Embarcadero\RAD Studio\8.0\` ではなく、`C:\Embarcadero\Studio\8.0\` のような UAC の影響を受けない場所にインストールした方がトラブルは少ないと思います。 ![image.png](./images/178387b7-0fff-211d-75e8-a7fdb7e9d27e.png) - [ID: 27984, Delphi XE and C++Builder XE ISO](http://cc.embarcadero.com/item/27984) - [ID: 28009, Delphi XE and C++Builder XE Complete Installer](http://cc.embarcadero.com/item/28009) - [ID: 27986, RAD Studio XE Install from the Web](http://cc.embarcadero.com/item/27986) - [Embarcadero Delphi XE および C++Builder XE のインストール ノート (EDN)](https://edn.embarcadero.com/article/40793) Delphi XE のインストーラやアップデータは管理者権限で実行する事をオススメします。 ※ 環境によっては事前に `[Windows の機能の有効化または無効化]` にて .NET Framework 3.5 を有効にしなければならないかもしれません。 ![image.png](./images/c177e39f-ab3d-5636-119c-498352456a7f.png) ![image.png](./images/f3e84b63-c6d6-a858-3489-4f7e7b5f3ecc.png) `[Windows の機能の有効化または無効化]` は `[ファイル名を指定して実行 (〔Win〕+〔R〕)]` から `optionalfeatures.exe` を実行する事で素早く開く事ができます。 ![image.png](./images/f6e93983-73d2-fd77-9c78-e5376b231535.png) ### ・BMP のバッファオーバーフロー対策 バッファオーバーフロー対策を行います。`$(BDS)\source\Win32\vcl` にある `graphics.pas` を次のように改変します。 ```pascal:graphics.pas function PaletteFromDIBColorTable(DIBHandle: THandle; ColorTable: Pointer; ColorCount: Integer): HPalette; ... begin if ColorCount > 256 then // ADD InvalidGraphic({$IFNDEF CLR}@{$ENDIF}SInvalidBitmap); // ADD Pal.palNumEntries := ColorCount; {$IF DEFINED(CLR)} if Length(ColorTable) > 0 then for I := 0 to ColorCount - 1 do Pal.palPalEntry[I] := ColorTable[I]; {$ELSE} Move(ColorTable^, Pal.palPalEntry, ColorCount * 4); {$IFEND} end; ... ``` ```pascal:graphics.pas procedure TMetafile.ReadEMFStream(Stream: TStream); ... begin NewImage; HeaderSize := SizeOf(TEnhMetaheader); SetLength(Buffer, HeaderSize); Stream.ReadBuffer(Buffer, HeaderSize); EnhHeader := TEnhMetaheader(BytesToStructure(Buffer, TypeOf(TEnhMetaheader))); if EnhHeader.dSignature <> ENHMETA_SIGNATURE then InvalidMetafile; if EnhHeader.nBytes < Sizeof(EnhHeader) then // Add InvalidMetafile; // Add SetLength(Buffer, EnhHeader.nBytes); ... ``` ```pascal:graphics.pas {$IF NOT DEFINED(CLR)} procedure TBitmap.ReadDIB(Stream: TStream; ImageSize: LongWord; bmf: PBitmapFileHeader); ... // Read the color palette if biClrUsed = 0 then biClrUsed := GetDInColors(biBitCount); if (biClrUsed * DIBPalSizes[OS2Format]) > (256 * SizeOf(TRGBQuad)) then // ADD InvalidGraphic({$IFNDEF CLR}@{$ENDIF}SInvalidBitmap); // ADD Stream.ReadBuffer(ColorTable^, biClrUsed * DIBPalSizes[OS2Format]); Dec(ImageSize, biClrUsed * DIBPalSizes[OS2Format]); ... ``` 改変した `graphics.pas` をプロジェクトフォルダにコピーして使ってください。 ※ バッファオーバーフローの問題は Delphi XE4 以前で発生します。XE5 / XE6 / XE7 には修正パッチが配布されています。現在販売されている Delphi では問題解決済みです。 **See also:** - [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) - [Delphi および C++ Builder の VCL ライブラリのバッファ オーバーフロー (SupportKB)](https://support.embarcadero.com/article/44089) ## \#2 Hotfix for Delphi XE, C++Builder XE and RAD Studio XE Delphi XE Update 1 用のホットフィックスです。SKU 毎にアーカイブが分かれています。 | HotFix | Starter | Professional | Enterprise | Architect| |:---|:---:|:---:|:---:|:---:| | [ID: 28247, RAD Studio XE Hotfix for RAID 280864 (QC 88928)](https://cc.embarcadero.com/item/28247) | × | 〇 | 〇 | 〇 | | [ID: 28248, RAD Studio XE Hotfix for RAID 280988 (QC 89242) ](https://cc.embarcadero.com/item/28248) | × | × | 〇 | 〇 | | [ID: 28249, RAD Studio XE Hotfix for RAID 280988 (QC 89242)](https://cc.embarcadero.com/item/28249) | × | 〇 | × | × | アーカイブを解凍し、サブフォルダごと Delphi XE のインストールフォルダに上書きします。`system32` サブフォルダ内のファイルは次のフォルダに上書きします。 | Windows | パス | |:---:|:---| | 64bit | C:\Windows\SysWOW64 | | 32bit | C:\Windows\System32 | - [ID: 28247, RAD Studio XE Hotfix for RAID 280864 (QC 88928)](https://cc.embarcadero.com/item/28247) - [ID: 28248, RAD Studio XE Hotfix for RAID 280988 (QC 89242) ](https://cc.embarcadero.com/item/28248) - [ID: 28249, RAD Studio XE Hotfix for RAID 280988 (QC 89242)](https://cc.embarcadero.com/item/28249) - [Delphi XE, C++Builder XE, RAD Studio XE 向け Hotfix (EDN)](https://edn.embarcadero.com/article/41313) ## \#3 Help Update 3 for Delphi XE and C++Builder XE オンラインヘルプのアップデータです。 アーカイブを解凍するとインストーラ ( `Help_Setup.exe` ) がありますので、このファイルと同じフォルダに `setup.cmd` を作成します。 ```bat:setup.cmd @echo off cls Help_Setup /upgrade ``` `setup.cmd` を右クリックし、\[管理者として実行\] で開きます。 もちろん、管理者権限で開いたコマンドプロンプト (あるいは PowerShell) から `Help_Setup /upgrade` を行っても構いません。 - [ID: 28256, Help Update 3 for Delphi XE and C++Builder XE](https://cc.embarcadero.com/item/28256) - [Readme - Help Update 3 for Delphi and C++Builder XE (DocWiki)](http://docwiki.embarcadero.com/RADStudio/XE/en/Readme_-_Help_Update_3_for_Delphi_and_C%2B%2BBuilder_XE) ## \#4 Hotfix 2 for Delphi XE, C++Builder XE and RAD Studio XE Delphi XE Update 1 用のホットフィックス 2 です。SKU 毎にアーカイブが分かれています。 | HotFix | Starter | Professional | Enterprise | Architect| |:---|:---:|:---:|:---:|:---:| | [ID: 28257, RAD Studio XE Hotfix for QC 90864 (RAID 281617)](https://cc.embarcadero.com/item/28247) | 〇 | × | × | × | | [ID: 28258, RAD Studio XE Hotfix for QC 90864 (RAID 281617) ](https://cc.embarcadero.com/item/28248) | × | 〇 | × | × | | [ID: 28259, RAD Studio XE Hotfix for QC 90864 (RAID 281617)](https://cc.embarcadero.com/item/28249) | × | × | 〇 | 〇 | アーカイブを解凍し、サブフォルダごと Delphi XE のインストールフォルダに上書きします。 - [ID: 28257, RAD Studio XE Hotfix for QC 90864 (RAID 281617)](https://cc.embarcadero.com/item/28247) - [ID: 28258, RAD Studio XE Hotfix for QC 90864 (RAID 281617) ](https://cc.embarcadero.com/item/28248) - [ID: 28259, RAD Studio XE Hotfix for QC 90864 (RAID 281617)](https://cc.embarcadero.com/item/28249) - [Delphi XE, C++Builder XE, RAD Studio XE 向け Hotfix (EDN)](https://edn.embarcadero.com/article/41313) # ■ 追加コンポーネント 過去のバージョンで使っていたかもしれないコンポーネントを有効にする方法です。 ## ・\[Samples\] カテゴリの VCL インストール時に \[サンプルアプリケーション\] を選択しなかった場合、TGauge 等の一部のコンポーネントが利用できなくなります。 1. スタートメニューから \[Embarcadero RAD Studio XE | 変更、修正、アンインストール\] 2. インストーラのオプションで `[変更`] を選択 3. インストールする項目で `サンプルアプリケーション` を選択。 上記手順で後からサンプルコンポーネントをインストールできます。 スタートメニューに `変更、修正、アンインストール` が見当たらない場合には `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Embarcadero RAD Studio XE` を参照してみてください。 ## ・TServerSocket / TClientSocket 古いバージョンでは **\[Internet\]** カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。 ![image.png](./images/2a5b1852-4d6c-1c00-699d-830f8da5dcad.png) 1. \[コンポーネント | パッケージのインストール\] 2. \[追加\]ボタンを押下。 3. `$(BDS)\bin` [^3] にある `dclsockets150.bpl` を指定。 上記手順で TServerSocket / TClientSocket が有効になります。 ## ・TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier 古いバージョンでは **\[Samples\]** カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。 ![image.png](./images/81446ac3-9b6d-4283-19c8-5fcd8327e646.png) 1. \[ファイル | プロジェクトを開く\] 2. `$(BDSCOMMONDIR)\Samples\Delphi\VCL\ShellControls` [^4] にある `dclshlctrls.dpk` を指定。 3. \[プロジェクトマネージャ\] で `dclshlctrls140.bpl` を右クリックし、コンテキストメニューから \[インストール\]。 ![image.png](./images/673cd1ea-b01c-6c27-9b1d-ec0f76b60155.png) 上記手順で TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier が有効になります。 # ■ その他のダウンロード可能ファイル その他、Delphi XE で有用なファイル群です。 ## ・Embarcadero RAD Studio XE Partner DVD ISO パートナー DVD です。無償で使えるサードパーティ製コンポーネント等が含まれています。 **TMS Smooth Controls pack** も含まれていますが、この後のバージョン以降含まれておらず、Windows 10 / 11 で実行すると GDI+ のエラーが出る事があります。 - [ID: 28074, Embarcadero RAD Studio XE Partner DVD ISO](http://cc.embarcadero.com/item/28074) - [TMS Smooth Controls pack (TMS Software)](https://www.tmssoftware.com/site/advsmoothcontrols.asp) ## ・BDE Merge Module for RAD Studio 2007-XE2 BDE マージモジュールです。アプリケーションと共に BDE を配布するインストーラを作る際に使います。 - [ID: 24996, BDE Merge Module for RAD Studio 2007-XE2](http://cc.embarcadero.com/item/24996) - [今更ながら BDE (Borland Database Engine) (ht-deko.com)](https://ht-deko.com/tech024.html) ## ・Indy (Internet Direct) **Indy** に関しては別記事があります。 - [Unicode 版 Delphi (2009 以降) に最新版の Indy10 をインストールする (ht-deko.com)](https://ht-deko.com/tech033.html) ## ・IntraWeb (VCL for the Web) **IntraWeb** に関しては別記事があります。 - [Delphi に最新版の IntraWeb (VCL for the Web) をインストールする (Qiita)](./e75d56487ff2395103a5.md) ## ・IP*Works for Delphi XE Delphi XE 用の **IP*Works** です。 - [ID: 28012, IP*Works for Delphi XE](https://cc.embarcadero.com/item/28012) ## ・DB Optimizer XE IDE Plug-in for Delphi XE and C++Builder XE Delphi XE 用の **DB Optimizer XE** です。 - [ID: 28043, DB Optimizer XE IDE Plug-in for Delphi XE and C++Builder XE](https://cc.embarcadero.com/item/28043) ## ・FinalBuilder for Delphi, C++Builder and RAD Studio XE Delphi XE 用の **FinalBuilder** です。 - [ID: 28278, FinalBuilder for Delphi, C++Builder and RAD Studio XE](https://cc.embarcadero.com/item/28278) # おわりに 使う頻度がそこそこ高い Delphi XE の環境構築方法でした。実行の際には管理者権限があった方がいいような気がします。 ![image.png](./images/35b6133f-4419-ea4a-2cea-8243d12e176a.png) Delphi の最新バージョンでは、旧バージョンライセンスを使用することができます。「ソースコードはあるけどコンパイル環境がない!」という場合には同グレードの最新版 Delphi を購入するといいですよ。 **See also:** - [Delphi 旧バージョン情報 (Embarcadero)](https://www.embarcadero.com/jp/products/delphi/previous-versions) - [Supported Versions (Support Wiki)](https://docwiki.embarcadero.com/Support/en/Supported_Versions) - [Platform Status (Support Wiki)](https://docwiki.embarcadero.com/PlatformStatus/en/Main_Page) - [Delphi コードのクリーンアップ (Qiita)](./9cc54ba5802f034c58a6.md) - [Delphi/C++Builder XE の手動アンインストール (SupportKB)](https://support.embarcadero.com/article/43030) - [Delphi 7 (7.1) を Windows 10 / 11 にインストールする](./a815f81c83068ba2fb7c.md) - [Delphi 2007 (R2) for Win32 を Windows 10 / 11 にインストールする](./95c95a0ca97551f0adb4.md) [^1]: Starter Edition は 2011 年です。 [^2]: 残念ながら 32bit コンパイラのみなので、64bit コンパイラが必要な場合には最新版の使用をおすすめします。 [^3]: `$(BDS)` は Delphi インストールフォルダを表します。\[ツール | オプション...\] の \[環境変数\] で実際のパスを確認する事ができます。 [^4]: `$(BDSCOMMONDIR)` は標準で `C:\Users\Public\Documents\RAD Studio\8.0` です。\[ツール | オプション...\] の \[環境変数\] で実際のパスを確認する事ができます。