はじめに
Delphi 2007 for Win32 は Borland の開発部門を分社化した CodeGear から 2007 年にリリースされました 1。
- ANSI Delphi 最終版
- QuickReport が利用可能
- Delphi 2 ~2006 の多くのコードがそのまま動作
- UAC 対応可能
上記理由により、今でもマイグレーション用、あるいはマイグレーションの中間ステップ用に使われる事が多いです。
Embarcadero 製品のインストーラ及びアップデータは同社のサイト
いずれかからダウンロードできます。しかしながら Delphi 2007 (R2) は古い製品という事もあり、登録製品ポータルからだとダウンロードできないアイテムがあるようです。
本記事は、各種ファイルを登録ユーザダウンロードからダウンロードして Windows 10 / 11 にインストールする手順となっています。
■ インストーラとアップデータとホットフィックス
#1 RAD Studio 2007 ISO (Dec 2007)
セットアップ DVD イメージファイル (ISO) です。以前にリリースされたアップデータとホットフィックスを含めた December 2007 Update
が適用された状態です。
インストーラが自動起動した場合にはそれを閉じ、Explorer で install.exe を右クリックしたら [管理者として実行] で開きます。
インストール先も、デフォルトの %ProgramFiles(x86)%\CodeGear\RADStudio\5.0\
ではなく、C:\Embarcadero\Studio\5.0\
のような UAC の影響を受けない場所にインストールした方がトラブルは少ないと思います。
- ID: 26067, CodeGear RAD Studio 2007 ISO (Dec 2007)
- ID: 25238, December 2007 Update for CodeGear RAD Studio 2007
- RAD Studio 2007 December Update のコアバグ修正リスト (EDN)
※ 環境によっては事前に [Windows の機能の有効化または無効化]
にて .NET Framework 2.0 を有効にしなければならないかもしれません。
[Windows の機能の有効化または無効化]
は [ファイル名を指定して実行 (〔Win〕+〔R〕)]
から optionalfeatures.exe
を実行する事で素早く開く事ができます。
・Blackfish SQL のサービス停止
Delphi 2007 R2 をインストールした場合、恐らくもう使わないであろう Blackfish SQL がサービスとして起動しますので、スタートアップの種類を 手動
にした上で停止しておくとよいでしょう 2。
・BMP のバッファオーバーフロー対策
バッファオーバーフロー対策を行います。$(BDS)\source\Win32\vcl
にある 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;
...
procedure TMetafile.ReadEMFStream(Stream: TStream);
...
NewImage;
Stream.ReadBuffer(EnhHeader, Sizeof(EnhHeader));
if EnhHeader.dSignature <> ENHMETA_SIGNATURE then InvalidMetafile;
if EnhHeader.nBytes < Sizeof(EnhHeader) then // Add
InvalidMetafile; // Add
GetMem(Buf, EnhHeader.nBytes);
...
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)
- Delphi および C++ Builder の VCL ライブラリのバッファ オーバーフロー (SupportKB)
#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
- リリースノート: Apr08 Hotfix for CodeGear RAD Studio 2007 (EDN)
#3 Updated Deployment Terms for CodeGear RAD Studio 2007
配布可能ファイル一覧の更新です。アーカイブを解凍し、インストールフォルダの deploy.htm
を上書きします。
ライセンスの話なので deploy.htm
を更新しなくとも、動作に影響はありません。
#4 May/June 08 Help Update 4 for CodeGear RAD Studio 2007
オンラインヘルプのアップデータです。
アーカイブを解凍するとインストーラ ( Help_Setup.exe
) がありますので、このファイルと同じフォルダに 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
- RAD Studio 2007 ヘルプアップデート インストールおよびリリースノート (EDN)
#5 June 08 Linker Hotfix for CodeGear RAD Studio 2007
link32.exe
で、特定の種類の obj ファイルをリンクするときに発生するアクセス違反エラーに対応したホットフィックスです。
アーカイブを解凍してできた link32.exe
をインストールフォルダの bin
サブフォルダへ上書きコピーします。
#6 GIF and JPG source files for CodeGear RAD Studio 2007
GIF / JPG サポート用ソースファイルです。インストールフォルダの Source
サブフォルダに Extras
フォルダごとコピーしておきます。4
#7 Updated Deployment Licenses for Blackfish SQL 8
Blackfish SQL の更新された配布ライセンスです。現在ではダウンロードできないかもしれませんが、動作に影響はありません。
#8 Remote Debugger for CodeGear RAD Studio 2007
December 2007 Update
が適用された環境用のリモートデバッガです。
リモートデバッグするターゲット環境で実行してインストールします。リモートデバッグを行わないのであれば不要です。
#9 RAD Studio 2007 Debugger Fix
64bit 環境でデバッグ実行すると bordbk105N.dll
が Assertion failure: "(!"SetThreadContext failed")"
のエラーを吐く問題を解決します。
アーカイブを解凍してできた bordbk105N.dll
をインストールフォルダの bin
サブフォルダへ上書きコピーします。
64bit Windows 環境では必須のホットフィックスなのですが、Unofficial 扱いとなっているために登録製品ポータルからも登録ユーザダウンロードからもダウンロードできないという罠があります。
■ 追加コンポーネント
過去のバージョンで使っていたかもしれないコンポーネントを有効にする方法です。
・[Samples] カテゴリの VCL
インストール時に [サンプルアプリケーション] を選択しなかった場合、TGauge 等の一部のコンポーネントが利用できなくなります。
- スタートメニューから [CodeGear RAD Studio | RAD Studio の変更、修正、アンインストール]
- インストーラのオプションで
[変更
] を選択 - インストールする項目で
サンプルアプリケーション
を選択。
上記手順で後からサンプルコンポーネントをインストールできます。
スタートメニューに RAD Studio の変更、修正、アンインストール
が見当たらない場合には C:\ProgramData\Microsoft\Windows\Start Menu\Programs\CodeGear RAD Studio
を参照してみてください。
・TServerSocket / TClientSocket
古いバージョンでは [Internet] カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。
- [コンポーネント | パッケージのインストール]
- [追加]ボタンを押下。
-
$(BDS)\bin
5 にあるdclsockets100.bpl
を指定。
上記手順で TServerSocket / TClientSocket が有効になります。
・TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier
古いバージョンでは [Samples] カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。
- [ファイル | プロジェクトを開く]
-
$(BDSCOMMONDIR)\Demos\DelphiWin32\VCLWin32\ShellControls
6 にあるdclshlctrls.dpk
を指定。 - [プロジェクトマネージャ] で
dclshlctrls110.bpl
を右クリックし、コンテキストメニューから [インストール]。
上記手順で TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier が有効になります。
■ その他のダウンロード可能ファイル
その他、Delphi 2007 で有用なファイル群です。
・QuickReport 4 Standard for Delphi
レポートツール QuickReport の RAD Studio 2007 バンドル版である QuickReport 4 Standard for Delphi です。
・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)
- Delphi 2007 に QuickReport をインストール (ht-deko.com)
・Rave Reports BE for CodeGear RAD Studio 2007
レポートツール Rave Reports の RAD Studio 2007 バンドル版である Rave Reports BE for CodeGear RAD Studio 2007 です。
・Indy (Internet Direct)
Indy に関しては別記事があります。
・IntraWeb (VCL for the Web)
IntraWeb に関しては別記事があります。
Delphi 2007 以前にインストール可能な IntraWeb 9 は Enterprise 版が無償となっています。
- IntraWeb 9 が無償に (Owl's perspective)
- IntraWeb 9 Enterprise Free Edition is available now (atozed.com)
- IntraWeb 9.0.42 (atozed.com)
・InstallAware Express CodeGear Edition
インストーラ作成ツール InstallAware の RAD Studio 2007 バンドル版である InstallAware 6 CodeGear Special Edition です。
最新版の Delphi をお持ちの方はこれよりも新しいバージョンのバンドル版である InstallAware 2012 RAD Studio Edition を使うといいでしょう。英語版ではありますが、UAC のエレベーション (権限昇格) に対応しています。
・BDE Merge Module for RAD Studio 2007-XE2
BDE マージモジュールです。アプリケーションと共に BDE を配布するインストーラを作る際に使います。
- ID: 24996, BDE Merge Module for RAD Studio 2007-XE2
- 今更ながら BDE (Borland Database Engine) (ht-deko.com)
・RAD Studio Help Update 1 CHM files - Japanese
HTML Help (*.CHM) 形式のヘルプファイルです。
May/June 08 Help Update 4
に比べると内容は古いのですが、Html-Help2 (Document Explorer) よりも快適に閲覧できると思います。
・FireDAC 8.0.5
FireDAC が使える後続のバージョンを持っている場合、FireDAC をインストールする事が可能かもしれません。XE4 の FireDAC アドオンパックが利用可能な場合、XE4 ~ Delphi 5 の IDE にインストール可能です。
別記事に詳細があります。
・IDE Fix Pack 2007 または dzEditorLineEndsFix
Windows 7 / 8.x で IDE 起動時に起こる EditorLineEnds.ttr
エラーを回避します。Windows 10 以降では発生しないと思われるのですが、一応紹介しておきます。
---------------------------
エラー
---------------------------
ファイル "C:\Users\user\AppData\Local\Temp\EditorLineEnds.ttr" を作成できません。プロセスはファイルにアクセスできません。別のプロセスが使用中です。.
---------------------------
OK
---------------------------
- IDE Fix Pack 2007 (Andy's Blog and Tools)
- dzEditorLineEndsFix (sourceforge.net)
- 「"EditorLineEnds.ttr"を作成できません。プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 (SupportKB)
- "EditorLineEnds.ttr"エラーについて(続報) (SupportKB)
- 「EditorLineEnds.ttr を作成できません」の対処方法 (Qiita: @CYonezawa)
おわりに
使う頻度がそこそこ高い Delphi 2007 (R2) の環境構築方法でした。Delphi 2007 (R2) の実行の際にも管理者権限で実行するようにしてくださいね。
それと、Windows 8.1 や Windows 10 / 11 はちょっと大きめのアップデートがあると、Delphi 2007 (R2) が使っている .NET アセンブリを削除するので注意が必要です。
Delphi の最新バージョンでは、旧バージョンライセンスを使用することができます。「ソースコードはあるけどコンパイル環境がない!」という場合には同グレードの最新版 Delphi を購入するといいですよ。
See also:
- Delphi 旧バージョン情報 (Embarcadero)
- Supported Versions (Support Wiki)
- Platform Status (Support Wiki)
- Windows 8.x / 10 / 11 が Delphi 2007 の .target ファイルを消すのでどうにかする (Qiita)
- Delphi コードのクリーンアップ (Qiita)
- Delphi 2007 – Serial Number が不正のエラーについて (SupportKB)
- Delphi 2007 - HAS_SLIP エラーについて (SupportKB)
- インストールエラー 1580 について (SupportKB)
- RAD Studioのアンインストール (SupportKB)
- Delphi 7 (7.1) を Windows 10 / 11 にインストールする
- Delphi XE を Windows 10 / 11 にインストールする
- 「MS Help 2.x ランタイムがインストールされていない」というエラーを解消する
-
後に BlackfishSQL を同梱した R2 がリリースされました。 ↩
-
BlackfishSQL は 2010/09 でサポートが切れています。 ↩
-
シールドアイコンの付いた EXE は普通にダブルクリックしても管理者権限で実行されますが、たまにシールドアイコンの付いていないアップデータがあるため、明示的に右クリックから管理者権限で実行する事をオススメします。 ↩
-
Delphi での PNG サポートは 2009 からとなります。Delphi 2007 で PNG を扱う際はこちらを参照してください。 ↩
-
$(BDS)
は Delphi インストールフォルダを表します。[ツール | オプション...] の [環境変数] で実際のパスを確認する事ができます。 ↩ -
$(BDSCOMMONDIR)
は標準でC:\Users\Public\Documents\RAD Studio\5.0
です。[ツール | オプション...] の [環境変数] で実際のパスを確認する事ができます。 ↩