LoginSignup
6
3

Delphi 2007 (R2) for Win32 を Windows 10 / 11 にインストールする

Last updated at Posted at 2021-06-08

はじめに

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 を右クリックしたら [管理者として実行] で開きます。
image.png
インストール先も、デフォルトの %ProgramFiles(x86)%\CodeGear\RADStudio\5.0\ ではなく、C:\Embarcadero\Studio\5.0\ のような UAC の影響を受けない場所にインストールした方がトラブルは少ないと思います。

※ 環境によっては事前に [Windows の機能の有効化または無効化] にて .NET Framework 2.0 を有効にしなければならないかもしれません。
image.png
image.png
[Windows の機能の有効化または無効化][ファイル名を指定して実行 (〔Win〕+〔R〕)] から optionalfeatures.exe を実行する事で素早く開く事ができます。
image.png

・Blackfish SQL のサービス停止

Delphi 2007 R2 をインストールした場合、恐らくもう使わないであろう Blackfish SQL がサービスとして起動しますので、スタートアップの種類を 手動 にした上で停止しておくとよいでしょう 2
image.png

・BMP のバッファオーバーフロー対策

バッファオーバーフロー対策を行います。$(BDS)\source\Win32\vcl にある graphics.pas を次のように改変します。

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;

  ...
graphics.pas
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);

  ...
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:

#2 April 08 Hotfix for CodeGear RAD Studio 2007

December 2007 Update が適用された環境用のホットフィックスです。
アーカイブを解凍するとインストーラ ( radstudio2007apr08hotfix.exe ) がありますのでこれを右クリックし、[管理者として実行] で開きます 3

#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 を作成します。

setup.cmd
@echo off
cls
Help_Setup /upgrade

setup.cmd を右クリックし、[管理者として実行] で開きます。

もちろん、管理者権限で開いたコマンドプロンプト (あるいは PowerShell) から Help_Setup /upgrade を行っても構いません。

#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")" のエラーを吐く問題を解決します。
image.png
アーカイブを解凍してできた bordbk105N.dll をインストールフォルダの bin サブフォルダへ上書きコピーします。

64bit Windows 環境では必須のホットフィックスなのですが、Unofficial 扱いとなっているために登録製品ポータルからも登録ユーザダウンロードからもダウンロードできないという罠があります。

■ 追加コンポーネント

過去のバージョンで使っていたかもしれないコンポーネントを有効にする方法です。

・[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

  1. [コンポーネント | パッケージのインストール]
  2. [追加]ボタンを押下。
  3. $(BDS)\bin 5 にある dclsockets100.bpl を指定。

上記手順で TServerSocket / TClientSocket が有効になります。

・TShellTreeView / TShellComboBox / TShellListView / TShellChangeNotifier

古いバージョンでは [Samples] カテゴリにあったコンポーネントです。存在はしますが、デフォルトでは有効になっていません。
image.png

  1. [ファイル | プロジェクトを開く]
  2. $(BDSCOMMONDIR)\Demos\DelphiWin32\VCLWin32\ShellControls 6 にある dclshlctrls.dpk を指定。
  3. [プロジェクトマネージャ] で dclshlctrls110.bpl を右クリックし、コンテキストメニューから [インストール]。
    image.png
    上記手順で 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 をインストールしないのであれば不要です。

・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 版が無償となっています。

・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 を配布するインストーラを作る際に使います。

・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 にインストール可能です。
image.png
別記事に詳細があります。

・IDE Fix Pack 2007 または dzEditorLineEndsFix

Windows 7 / 8.x で IDE 起動時に起こる EditorLineEnds.ttr エラーを回避します。Windows 10 以降では発生しないと思われるのですが、一応紹介しておきます。
image.png

---------------------------
エラー
---------------------------
ファイル "C:\Users\user\AppData\Local\Temp\EditorLineEnds.ttr" を作成できません。プロセスはファイルにアクセスできません。別のプロセスが使用中です。.
---------------------------
OK   
---------------------------

おわりに

使う頻度がそこそこ高い Delphi 2007 (R2) の環境構築方法でした。Delphi 2007 (R2) の実行の際にも管理者権限で実行するようにしてくださいね。
image.png
それと、Windows 8.1 や Windows 10 / 11 はちょっと大きめのアップデートがあると、Delphi 2007 (R2) が使っている .NET アセンブリを削除するので注意が必要です。
image.png
Delphi の最新バージョンでは、旧バージョンライセンスを使用することができます。「ソースコードはあるけどコンパイル環境がない!」という場合には同グレードの最新版 Delphi を購入するといいですよ。

See also:

  1. 後に BlackfishSQL を同梱した R2 がリリースされました。

  2. BlackfishSQL は 2010/09 でサポートが切れています。

  3. シールドアイコンの付いた EXE は普通にダブルクリックしても管理者権限で実行されますが、たまにシールドアイコンの付いていないアップデータがあるため、明示的に右クリックから管理者権限で実行する事をオススメします。

  4. Delphi での PNG サポートは 2009 からとなります。Delphi 2007 で PNG を扱う際はこちらを参照してください。

  5. $(BDS) は Delphi インストールフォルダを表します。[ツール | オプション...] の [環境変数] で実際のパスを確認する事ができます。

  6. $(BDSCOMMONDIR) は標準で C:\Users\Public\Documents\RAD Studio\5.0 です。[ツール | オプション...] の [環境変数] で実際のパスを確認する事ができます。

6
3
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
6
3