# Delphi 2007 (R2) for Win32 を Windows 10 / 11 にインストールする --- tags: Delphi programming マイグレーション embarcadero CodeGear created_at: 2021-06-09 updated_at: 2021-10-06 --- # はじめに **Delphi 2007 for Win32** は Borland の開発部門を分社化した CodeGear から 2007 年にリリースされました [^1]。 - ANSI Delphi 最終版 - QuickReport が利用可能 - Delphi 2 ~2006 の多くのコードがそのまま動作 - UAC 対応可能 上記理由により、今でもマイグレーション用、あるいはマイグレーションの中間ステップ用に使われる事が多いです。 Embarcadero 製品のインストーラ及びアップデータは同社のサイト - [登録製品ポータル](https://my.embarcadero.com/) - [登録ユーザダウンロード](https://cc.embarcadero.com/myreg) いずれかからダウンロードできます。しかしながら Delphi 2007 (R2) は古い製品という事もあり、[登録製品ポータル](https://my.embarcadero.com/)からだとダウンロードできないアイテムがあるようです。 本記事は、各種ファイルを[登録ユーザダウンロード](https://cc.embarcadero.com/myreg)からダウンロードして Windows 10 / 11 にインストールする手順となっています。 # ■ インストーラとアップデータとホットフィックス ## \#1 RAD Studio 2007 ISO (Dec 2007) セットアップ DVD イメージファイル (ISO) です。以前にリリースされたアップデータとホットフィックスを含めた `December 2007 Update` が適用された状態です。 インストーラが自動起動した場合にはそれを閉じ、Explorer で **install.exe** を右クリックしたら \[管理者として実行\] で開きます。 ![image.png](./images/898d1374-93cc-00e8-41cd-9e48aad6f060.png) インストール先も、デフォルトの `%ProgramFiles(x86)%\CodeGear\RADStudio\5.0\` ではなく、`C:\Embarcadero\Studio\5.0\` のような UAC の影響を受けない場所にインストールした方がトラブルは少ないと思います。 - [ID: 26067, CodeGear RAD Studio 2007 ISO (Dec 2007)](https://cc.embarcadero.com/item/26067) - [ID: 25238, December 2007 Update for CodeGear RAD Studio 2007](http://cc.embarcadero.com/item/25238) - [RAD Studio 2007 December Update のコアバグ修正リスト (EDN)](http://edn.embarcadero.com/article/37496) ※ 環境によっては事前に `[Windows の機能の有効化または無効化]` にて .NET Framework 2.0 を有効にしなければならないかもしれません。 ![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) ### ・Blackfish SQL のサービス停止 **Delphi 2007 R2** をインストールした場合、恐らくもう使わないであろう **Blackfish SQL** がサービスとして起動しますので、スタートアップの種類を `手動` にした上で停止しておくとよいでしょう [^2]。 ![image.png](./images/75396ee2-a1dd-5c5c-01a8-011b15dfbd50.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; Move(ColorTable^, Pal.palPalEntry, ColorCount * 4); end; ... ``` ```pascal:graphics.pas procedure TMetafile.ReadEMFStream(Stream: TStream); ... NewImage; Stream.ReadBuffer(EnhHeader, Sizeof(EnhHeader)); if EnhHeader.dSignature <> ENHMETA_SIGNATURE then InvalidMetafile; if (biClrUsed * DIBPalSizes[OS2Format]) > (256 * SizeOf(TRGBQuad)) then // Add InvalidGraphic({$IFNDEF CLR}@{$ENDIF}SInvalidBitmap); // Add GetMem(Buf, EnhHeader.nBytes); ... ``` ```pascal:graphics.pas 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 April 08 Hotfix for CodeGear RAD Studio 2007 `December 2007 Update` が適用された環境用のホットフィックスです。 アーカイブを解凍するとインストーラ ( `radstudio2007apr08hotfix.exe` ) がありますのでこれを右クリックし、\[管理者として実行\] で開きます [^3]。 - [ID: 25495, April 08 Hotfix for CodeGear RAD Studio 2007](https://cc.embarcadero.com/item/25495) - [リリースノート: Apr08 Hotfix for CodeGear RAD Studio 2007 (EDN)](http://edn.embarcadero.com/article/37880) ## \#3 Updated Deployment Terms for CodeGear RAD Studio 2007 配布可能ファイル一覧の更新です。アーカイブを解凍し、インストールフォルダの `deploy.htm` を上書きします。 ライセンスの話なので `deploy.htm` を更新しなくとも、動作に影響はありません。 - [ID: 25620, Updated Deployment Terms for CodeGear RAD Studio 2007](http://cc.embarcadero.com/item/25620) ## \#4 May/June 08 Help Update 4 for CodeGear RAD Studio 2007 オンラインヘルプのアップデータです。 アーカイブを解凍するとインストーラ ( `Help_Setup.exe` ) がありますので、このファイルと同じフォルダに `setup.cmd` を作成します。 ```bat:setup.cmd @echo off cls Help_Setup /upgrade ``` `setup.cmd` を右クリックし、\[管理者として実行\] で開きます。 もちろん、管理者権限で開いたコマンドプロンプト (あるいは PowerShell) から `Help_Setup /upgrade` を行っても構いません。 - [ID: 25688, May/June 08 Help Update 4 for CodeGear RAD Studio 2007](http://cc.embarcadero.com/item/25688) - [RAD Studio 2007 ヘルプアップデート インストールおよびリリースノート (EDN)](http://edn.embarcadero.com/article/37603) ## \#5 June 08 Linker Hotfix for CodeGear RAD Studio 2007 `link32.exe` で、特定の種類の obj ファイルをリンクするときに発生するアクセス違反エラーに対応したホットフィックスです。 アーカイブを解凍してできた `link32.exe` をインストールフォルダの `bin` サブフォルダへ上書きコピーします。 - [ID: 25694, June 08 Linker Hotfix for CodeGear RAD Studio 2007](https://cc.embarcadero.com/item/25694) ## \#6 GIF and JPG source files for CodeGear RAD Studio 2007 GIF / JPG サポート用ソースファイルです。インストールフォルダの `Source` サブフォルダに `Extras` フォルダごとコピーしておきます。[^4] - [ID: 25696, GIF and JPG source files for CodeGear RAD Studio 2007](http://cc.embarcadero.com/item/25696) ## \#7 Updated Deployment Licenses for Blackfish SQL 8 Blackfish SQL の更新された配布ライセンスです。現在ではダウンロードできないかもしれませんが、動作に影響はありません。 - [ID: 25650, Updated Deployment Licenses for Blackfish SQL 8](https://cc.embarcadero.com/item/25650) ## \#8 Remote Debugger for CodeGear RAD Studio 2007 `December 2007 Update` が適用された環境用のリモートデバッガです。 リモートデバッグするターゲット環境で実行してインストールします。リモートデバッグを行わないのであれば不要です。 - [ID: 24995, Remote Debugger for CodeGear RAD Studio 2007](https://cc.embarcadero.com/item/24995) - [リモートデバッグを行う (ht-deko.com)](https://ht-deko.com/tech031.html) ## \#9 RAD Studio 2007 Debugger Fix 64bit 環境でデバッグ実行すると `bordbk105N.dll` が `Assertion failure: "(!"SetThreadContext failed")"` のエラーを吐く問題を解決します。 ![image.png](./images/b50bc3b2-9286-41ea-7094-e6aaef0fc942.png) アーカイブを解凍してできた `bordbk105N.dll` をインストールフォルダの `bin` サブフォルダへ上書きコピーします。 64bit Windows 環境では必須のホットフィックスなのですが、Unofficial 扱いとなっているために[登録製品ポータル](https://my.embarcadero.com/)からも[登録ユーザダウンロード](https://cc.embarcadero.com/myreg)からもダウンロードできないという罠があります。 - [ID: 27521, RAD Studio 2007 Debugger Fix for Windows 7](https://cc.embarcadero.com/item/27521) # ■ 追加コンポーネント 過去のバージョンで使っていたかもしれないコンポーネントを有効にする方法です。 ## ・\[Samples\] カテゴリの VCL インストール時に \[サンプルアプリケーション\] を選択しなかった場合、TGauge 等の一部のコンポーネントが利用できなくなります。 1. スタートメニューから \[CodeGear RAD Studio | RAD Studio の変更、修正、アンインストール\] 2. インストーラのオプションで `[変更`] を選択 3. インストールする項目で `サンプルアプリケーション` を選択。 上記手順で後からサンプルコンポーネントをインストールできます。 スタートメニューに `RAD Studio の変更、修正、アンインストール` が見当たらない場合には `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\CodeGear RAD Studio` を参照してみてください。 ## ・TServerSocket / TClientSocket 古いバージョンでは **\[Internet\]** カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。 ![image.png](./images/2a5b1852-4d6c-1c00-699d-830f8da5dcad.png) 1. \[コンポーネント | パッケージのインストール\] 2. \[追加\]ボタンを押下。 3. `$(BDS)\bin` [^5] にある `dclsockets100.bpl` を指定。 上記手順で TServerSocket / TClientSocket が有効になります。 ## ・TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier 古いバージョンでは **\[Samples\]** カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。 ![image.png](./images/81446ac3-9b6d-4283-19c8-5fcd8327e646.png) 1. \[ファイル | プロジェクトを開く\] 2. `$(BDSCOMMONDIR)\Demos\DelphiWin32\VCLWin32\ShellControls` [^6] にある `dclshlctrls.dpk` を指定。 3. \[プロジェクトマネージャ\] で `dclshlctrls110.bpl` を右クリックし、コンテキストメニューから \[インストール\]。 ![image.png](./images/4b3d3788-50c6-dc70-0c96-3c576ad180e5.png) 上記手順で TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier が有効になります。 # ■ その他のダウンロード可能ファイル その他、Delphi 2007 で有用なファイル群です。 ## ・QuickReport 4 Standard for Delphi レポートツール **QuickReport** の RAD Studio 2007 バンドル版である **QuickReport 4 Standard for Delphi** です。 - [ID: 25002, QuickReport 4 Standard for Delphi](https://cc.embarcadero.com/item/25002) - [Delphi 2007 に QuickReport をインストール (ht-deko.com)](https://ht-deko.com/tech012.html) ## ・Source code of QRChart control (QuickReport chart) packages for BDS 2006 上記 QuickReport 用 **TeeChart (QRChart)** です。BDS 2006 用ですが、少々の改変で Delphi 2007 でも使えます。 QuickReport をインストールしないのであれば不要です。 - [Source code of QRChart control (QuickReport chart) packages for BDS 2006 (steema.com)](http://www.steema.com/support/teechart/7/QuickReport/) - [Delphi 2007 に QuickReport をインストール (ht-deko.com)](https://ht-deko.com/tech012.html) ## ・Rave Reports BE for CodeGear RAD Studio 2007 レポートツール **Rave Reports** の RAD Studio 2007 バンドル版である **Rave Reports BE for CodeGear RAD Studio 2007** です。 - [ID: 24998, Rave Reports BE for CodeGear RAD Studio 2007](http://cc.embarcadero.com/item/24998) ## ・IntraWeb (VCL for the Web) **IntraWeb** に関しては別記事があります。 - [Delphi に最新版の IntraWeb (VCL for the Web) をインストールする (Qiita)](./e75d56487ff2395103a5.md) Delphi 2007 以前にインストール可能な IntraWeb 9 は Enterprise 版が無償となっています。 - [IntraWeb 9 が無償に (Owl's perspective)](http://owlsperspective.blogspot.jp/2011/08/intraweb9-is-now-free.html) - [IntraWeb 9 Enterprise Free Edition is available now (atozed.com)](https://www.atozed.com/2011/01/20110716a-en/) - [IntraWeb 9.0.42 (atozed.com)](https://www.atozed.com/2017/01/9-0-42/) ## ・InstallAware Express CodeGear Edition インストーラ作成ツール **InstallAware** の RAD Studio 2007 バンドル版である **InstallAware 6 CodeGear Special Edition** です。 最新版の Delphi をお持ちの方はこれよりも新しいバージョンのバンドル版である **InstallAware 2012 RAD Studio Edition** を使うといいでしょう。英語版ではありますが、UAC のエレベーション (権限昇格) に対応しています。 - [ID: 24997, InstallAware Express CodeGear Edition](http://cc.embarcadero.com/item/24997) - [InstallAware (ht-deko.com)](https://ht-deko.com/tech023.html) ## ・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) ## ・RAD Studio Help Update 1 CHM files - Japanese HTML Help (\*.CHM) 形式のヘルプファイルです。 `May/June 08 Help Update 4` に比べると内容は古いのですが、Html-Help2 (Document Explorer) よりも快適に閲覧できると思います。 - [ID: 25267, RAD Studio Help Update 1 CHM files - Japanese](https://cc.embarcadero.com/item/25267) ## ・IDE Fix Pack 2007 または dzEditorLineEndsFix Windows 7 / 8.x で IDE 起動時に起こる `EditorLineEnds.ttr` エラーを回避します。Windows 10 以降では発生しないと思われるのですが、一応紹介しておきます。 ![image.png](./images/27a1a46f-21ae-4087-4a71-81564f8dd45f.png) ``` --------------------------- エラー --------------------------- ファイル "C:\Users\user\AppData\Local\Temp\EditorLineEnds.ttr" を作成できません。プロセスはファイルにアクセスできません。別のプロセスが使用中です。. --------------------------- OK --------------------------- ``` - [IDE Fix Pack 2007 (Andy's Blog and Tools)](https://www.idefixpack.de/blog/ide-tools/ide-fix-pack-2007/) - [dzEditorLineEndsFix (sourceforge.net)](https://sourceforge.net/projects/dzeditorlineendsfix/) - [「"EditorLineEnds.ttr"を作成できません。プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 (SupportKB)](https://support.embarcadero.com/jp/article/44023) - ["EditorLineEnds.ttr"エラーについて(続報) (SupportKB)](https://support.embarcadero.com/jp/article/44044) - [「EditorLineEnds.ttr を作成できません」の対処方法 (Qiita: @CYonezawa)](https://qiita.com/CYonezawa/items/c8e2299e5f96f233de0d) # おわりに 使う頻度がそこそこ高い Delphi 2007 (R2) の環境構築方法でした。Delphi 2007 (R2) の実行の際にも管理者権限で実行するようにしてくださいね。 ![image.png](./images/57f9ccaf-68e6-b92a-8c75-9c66a189402e.png) それと、Windows 8.1 や Windows 10 / 11 はちょっと大きめのアップデートがあると、Delphi 2007 (R2) が使っている .NET アセンブリを削除するので注意が必要です。 ![image.png](./images/ad92ac74-f70f-b1ea-9ab1-79596223976a.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) - [Windows 8.x / 10 / 11 が Delphi 2007 の .target ファイルを消すのでどうにかする (Qiita)](./1b1e80e8476c05fed372.md) - [Delphi コードのクリーンアップ (Qiita)](./9cc54ba5802f034c58a6.md) - [Delphi 2007 – Serial Number が不正のエラーについて (SupportKB)](https://support.embarcadero.com/article/36545) - [Delphi 2007 - HAS_SLIP エラーについて (SupportKB)](https://support.embarcadero.com/article/36660) - [インストールエラー 1580 について (SupportKB)](https://support.embarcadero.com/article/36961) - [RAD Studioのアンインストール (SupportKB)](https://support.embarcadero.com/article/37469) - [Delphi 7 (7.1) を Windows 10 / 11 にインストールする](./a815f81c83068ba2fb7c.md) - [Delphi XE を Windows 10 / 11 にインストールする](./84b5b0b0d591757ae129.md) [^1]: 後に BlackfishSQL を同梱した R2 がリリースされました。 [^2]: BlackfishSQL は 2010/09 でサポートが切れています。 [^3]: シールドアイコンの付いた EXE は普通にダブルクリックしても管理者権限で実行されますが、たまにシールドアイコンの付いていないアップデータがあるため、明示的に右クリックから管理者権限で実行する事をオススメします。 [^4]: Delphi での PNG サポートは 2009 からとなります。Delphi 2007 で PNG を扱う際は[こちらを参照](https://github.com/JackTrapper/pngdelphi)してください。 [^5]: `$(BDS)` は Delphi インストールフォルダを表します。\[ツール | オプション...\] の \[環境変数\] で実際のパスを確認する事ができます。 [^6]: `$(BDSCOMMONDIR)` は標準で `C:\Users\Public\Documents\RAD Studio\5.0` です。\[ツール | オプション...\] の \[環境変数\] で実際のパスを確認する事ができます。