XE2 のリリース ノート
Delphi XE2 および C++Builder XE2 の新機能 への移動
このリリース ノートには、主な製品ドキュメントに含まれていない可能性のある重要な情報が記載されています。このページのすべての内容に目を通されることをお勧めします。リリース ノートの最新版は、http://docwiki.embarcadero.com/RADStudio/ja/XE2_のリリース_ノート を参照してください。
本製品のインストール、アンインストール、アップグレード
本製品のインストール、アンインストール、アップグレードの前には、Install.htm ファイルおよび License.rtf ファイルをお読みください。Install.htm ファイルには、システムおよび空き領域の要件と、インストールおよびアップグレードの手順が記載されています。 License.rtf はソフトウェア使用許諾およびサポート契約書です。
Install.htm ファイルの最新版は、docwiki の「XE2 のインストール ノート」でご覧いただけます。
Install.htm ファイルにアクセスするには、この他にも以下の方法があります。
- Installer.zip ファイルを開く。
- インストール ランチャで[ヘルプ]ボタンをクリックする。
- 製品のインストール ディレクトリに含まれている Install.htm を開く(デフォルトでは以下の場所にあります)。
C:\Program Files\Embarcadero\RAD Studio\x.x
入手可能なアップデートをすべてインストールしてください
どの製品アップデートも皆、入手可能になりしだいインストールすることをお勧めします。各アップデートについては、docwiki にカスタムのリリース ノートが記載されています。したがって、アップデートをインストールする前に、関連するリリース ノートに目を通すことができます(また、そうする必要があります)。入手可能な XE2 アップデートは、これらのリリース ノートの最後および「Delphi XE2 および C++Builder XE2 の新機能」に列挙されています。
製品アップデートが入手可能かどうかを調べるには、[スタート|すべてのプログラム|Embarcadero RAD Studio XE2|更新プログラムの確認]を選択します。
手順については、「XE2 のインストール ノート」を参照してください。
インストール、配置、ライセンスの問題の詳細については、Install.htm、Deploy.htm、License.rtf の各ファイルを参照してください。これらのファイルは、デフォルトで C:\Program Files\Embarcadero\RAD Studio\x.x にインストールされています(64 ビット Windows の場合は "Program Files (x86)" を使用)。
一般的な注意事項
本製品には以前のバージョンのライセンスが含まれています
XE2 ライセンスには、次に示す以前の製品バージョンが含まれています。
- Delphi XE2 は、Delphi XE、2010、2009、2007 および 7 の各ライセンスを含みます。
- C++Builder XE2 は C++Builder XE、2010、2009、2007 および 6 の各ライセンスを含みます。
- RAD Studio XE2 は、上記にリストした製品の以前のバージョンのライセンスを含みます。
ライセンスについての詳細は、「XE2 のインストール ノート」または製品をインストールしたディレクトリ内にある Install.htm ファイルを参照してください。
依存関係にある必要な dll/dylib/パッケージの追加
プロジェクト A(実行可能ファイルの場合も dll/dylib/パッケージの場合も含みます)が別のプロジェクト B に依存している場合、プロジェクト B と依存関係にあるものもプロジェクト A と一緒に配置しなければなりません。たとえば OS X アプリケーションの場合、libcgcrt.dylib、bplrtl160.dylib、その他の Embarcadero .dylib などの .dylib が必要になるかもしれません。配置リストにファイルを手動で追加するには、配置マネージャを使って B の配置リストを確認し、その dll/dylib/パッケージと最終的な B の出力とを A の配置リストに追加します。
プラットフォームが無効という問題
システムに不明なプラットフォームの値が設定されている場合(事前設定されたシステム変数の %Platform% など)、以下のエラー メッセージが表示されます。
Invalid PLATFORM variable "(value)". PLATFORM must be one of the following: "Win32", "Win64", or "OSX32".
(PLATFORM 変数 "(値)" が無効です。PLATFORM は "Win32"、"Win64"、"OSX32" のいずれかでなければなりません。)
システムの環境で PLATFORM が定義されている場合には、RAD Studio IDE で上書きするか、コマンド ラインで MSBuild に対して明示的に渡す(/p:Platform=Win32 など)必要があります。
WebAppDebugger を使用した WebSnap および WebBroker のデバッグ
WebAppDebugger を使用して、WebSnap アプリケーションおよび WebBroker アプリケーションをデバッグするには、まず serverinfo.exe を実行して、このファイル自体を登録する必要があります。ファイルを実行すると、登録は自動的に行われます。この手順は、Web アプリケーション デバッガ(インストール ディレクトリの \bin フォルダにある WebAppDbg.exe)を使用するために必要です。
IDE での基本多言語面以外の Unicode 文字のサポート
Windows® Vista®、Windows® 7 以降の OS では、どの言語でもフォントは正しく表示されます。ただし、XP オペレーティング システムの場合、IDE で使われるフォント(英語版のオペレーティング システムに付属している Tahoma)では、基本多言語面以外の文字の表示がサポートされていません。サロゲート ペアを使用する文字は IDE の一部([オブジェクト インスペクタ]を含む)では正しく表示されません。
正しく表示するには、Windows の[コントロール パネル]の[地域と言語のオプション]を使用して Windows に追加言語をインストールします。詳細については、http://blogs.embarcadero.com/nickhodges/2008/07/17/39073 を参照してください。
コンポーネント開発者に関する注意事項
コンポーネント インストーラ用のレジストリ キー
VCL コンポーネント ベンダへの注意: コンポーネントのインストーラによって、本製品のレジストリにコンポーネントのパスを追加する場合は、以下にレジストリ キーを追加する必要があります。HKEY_LOCAL_MACHINE\Software\Embarcadero\BDS\x.x\Globals
ForceEnvOptionsUpdate という文字列値を追加します(既に存在する場合は更新します)。その値を文字列値 "1" に設定します。この値が "1" の場合、次回 IDE が実行されたときに、ディスク上の EnvOptions.proj ファイルが更新されて、コンポーネント インストーラが追加したパスが追加されます。EnvOptions.proj ファイルは、IDE の新しい MSBuild ビルド エンジンが、IDE の[ツール|オプション...]ダイアログの[ライブラリ - Win32]ページに登録されているパスをインクルードするために利用するメカニズムです。
コンポーネント インストーラが次のレジストリ キーのいずれかを更新する場合も、Globals\ForceEnvOptionsUpdate キーの追加または更新が必要です。
- Software\Embarcadero\BDS\x.x\Library\Browsing Path
- Software\Embarcadero\BDS\x.x\Library\Debug DCU Path
- Software\Embarcadero\BDS\x.x\Library\Namespace Search Path
- Software\Embarcadero\BDS\x.x\Library\Package DCP Output
- Software\Embarcadero\BDS\x.x\Library\Package BPL Output
- Software\Embarcadero\BDS\x.x\Library\Search Path
設計時および実行時に利用可能なコンポーネント
以下では、Win32/Win64/OSX32 でコンポーネントが利用可能かどうかを IDE が判断する 2 つの方法を説明します (ここでいう "利用可能" とは、パレットに表示され、IDE によってチェックが行われれるという意味です。IDE では、コンポーネント ユニットの存在以外に、コンパイル時のチェックを行いません)。どちらの方法も、コンポーネントを実装した Win32 実行時(または設計時および実行時)パッケージに埋め込まれているデータを使用します。IDE では Win64 パッケージおよび OSX32 パッケージを読み込めないため、Win32 パッケージの情報を使用するしかありません。
-
RAD Studio のビルド システムでは、RC_DATA リソースを PLATFORMTARGETS という Win32 パッケージ バイナリに自動的に埋め込みます。これは System.Classes.pas の pidXXX 定数のビットマスクであり、パッケージ プロジェクトがターゲットとするプラットフォームが反映されています。IDE は、パッケージを読み込む際にこれを読み取り、それを使って、サポートされていないプラットフォームがアクティブになったときにコンポーネントをパレットで利用できなくするかどうかなどを判断します。
コンポーネント パッケージで複数のプラットフォームをターゲットにすると、コンポーネント開発者と IDE の間に契約が生じます。IDE では、コンポーネント パッケージ プロジェクトが複数のプラットフォームをターゲットとしていて、開発者が Win32 実行時パッケージ(および関連するすべてのコンパイル可能ファイルやリンク可能ファイル)を顧客に配布する場合には、他のターゲット プラットフォームに必要なコンパイル可能ファイル、リンク可能ファイル、実行時パッケージも配布されるものと見なします。 -
個々のコンポーネントでは、ComponentPlatformsAttribute クラス属性を使って、クラスの同じ定数のビットマスクにより、PLATFORMTARGETS のデータを上書きすることができます。たとえば、次のようにして行います。
type [ComponentPlatformsAttribute(pidWin32 or pidWin64)] // not supported on OSX TMyComponent = class(TComponent) private ... end;
この属性を使用すると、上で述べたものと同じ契約が適用されます。
独自コンポーネントのユニット スコープ名
ユニット スコープ名は XE2 リリースで新たに導入されたものです。一般に、コンポーネントの作成時には、コンポーネントにユニット スコープ名を指定する必要はありません。追加される uses エントリに自動的にスコープが設定されるためです。ただし、独自のコンポーネントを作成する場合は、以下の手順で、新規および既存のプロジェクトにユニット スコープ名を追加することができます。ユニット スコープ名が必要なくなれば、それを削除することも可能です。
- レジストリ キー
HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Library\<ライブラリ名>を探します。ここで、<ライブラリ名> は、サポートされているターゲット プラットフォーム(Win32、Win64、OSX32 のいずれか)です。 - サポートされているターゲット プラットフォームのライブラリ ディレクトリ(<ライブラリ名>)に、
CompatibilityUnitScopesキーを作成します。 - 以下の文字列値を追加します。
- [値の名前] = <ベンダ名>(コンポーネントを開発した会社の名前)
- [値のデータ] = <ユニット スコープ名リスト>(ユニット スコープ名はセミコロンで区切って指定)
- たとえば、次のレジストリ エントリでは、ベンダ MyComponentCompany に 3 つの互換性ユニット スコープ名(NewComp、OldComp、MyComp)を追加しています。
HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Library\Win32\CompatibilityUnitScopes\MyComponentCompany\MyComp;NewComp;OldComp
- たとえば、次のレジストリ エントリでは、ベンダ MyComponentCompany に 3 つの互換性ユニット スコープ名(NewComp、OldComp、MyComp)を追加しています。
ヘルプ トピック「独自作成したコンポーネントへのユニット スコープ名の追加」では、この方法ほど安全でありませんが、状態に関係なくすべてのプロジェクトに影響を及ぼす回避方法を説明しています。
サード パーティ製アドインに関する注意事項
一部のサード パーティ製アドインでクロスプラットフォーム開発をサポート
サード パーティ製アドインでのクロスプラットフォーム開発のサポートについては、「サード パーティのクロスプラットフォーム サポート」にまとめてあります。
IntraWeb で OS X プラットフォームが選択可能だけれどもサポートはされていない
Delphi または C++ の IntraWeb アプリケーションを作成する場合、[プロジェクト マネージャ]の[ターゲット プラットフォーム]ノードで OS X プラットフォームを選択することはできますが、IntraWeb では OS X プラットフォーム向け開発がサポートされていません。
FastReport に関する注意事項
RAD Studio XE2 で FastReport を使用している場合には、以下の点に注意してください。
- FastReport でサポートしているのは VCL アプリケーションだけで、OS X はサポートしていません。FireMonkey HD アプリケーションを作成する場合、[FastScript]、[FastReport 4.0]、または[FastReport 4 exports]のタブが使用可能かもしれませんが、アプリケーションをコンパイルしようとすると "1026 ファイルが見つかりません: 'Dialogs.dcu'" というエラーが発生します。
- FastReport のコンポーネントは iOS でサポートされていませんが、iOS アプリケーションの[ツール パレット]に表示される可能性があります。これらのコンポーネントを iOS アプリケーションで使用すると、コンパイル時に問題が発生します。
- FastReport では Win64 アプリケーション開発をサポートしていますが、以下の Win64 FastReport コンポーネントを[ツール パレット]で使用できない可能性があります。
- [FastScript]セクションのすべての項目
- [FastReport 4.0|TfrxCheckBoxObject]
- [FastReport 4.0|TfrxGZipCompressor]
- [FastReport 4.0|TfrxCrypt]
- [FR4 tools|TfrxDocSite]
- [FR4 tools|TfrxTBPanel]
- [FR4 tools|TfrxRuler]
- [FR4 tools|TfrxScrollBox]
- [FastReport 4 exports|TfrxBMPExport]
- [FastReport 4 exports|TfrxJPEGExport]
- [FastReport 4 exports|TfrxTIFFExport]
- [FastReport 4 exports|TfrxGIFExport]
これを回避するには、Win32 プロジェクトを作成し、これらの項目をアプリケーションのフォームに追加し、それからプロジェクトに Win64 プラットフォームを追加します。そうすれば Win64 用プロジェクトのコンパイルは成功します。
Windows 7 と Windows Vista に関する注意事項
管理者権限でのインストール
Windows Vista の場合、インストールを実行する際に、管理者権限を持つユーザーとしてログインする必要があります。これは、Program Files ディレクトリに変更を加えるために、高いセキュリティ レベルが必要になるからです。
製品登録クライアントの再起動
Windows Vista では、製品登録クライアントが動作しない場合があります。この問題を回避するには、Windows Live OneCare Firewall が表示されたときに[このプログラムを許可]を選択します。次に、製品登録クライアントを終了して、それを再起動します。[このプログラムをブロック]を選択しないでください。これを選択すると、それ以降に登録ができなくなります。
x64 用のデフォルト bpl 出力フォルダがインストーラで作成されない
x64 パッケージ用のデフォルト bpl 出力フォルダは x86 フォルダのサブディレクトリです。製品インストーラでは、BPL フォルダ x86 は作成されますが、サブフォルダ x64 は作成されません。そのため、Win64 パッケージをコンパイルするには、Windows 7 の管理者権限が必要になります。
デバッグには管理者権限が必要
UAC が有効になっている Vista で、実行可能ファイル名に "setup"、"update"、または "install" が含まれる場合、IDE が System Administrator アカウントで起動されていない限り、そのプログラムをデバッグできません。IDE の外で、これらの文字列を含む実行可能ファイルを実行しようとすると、"ユーザー アカウント制御" のダイアログが表示され、System Administrator アカウント用のパスワードの入力を求められます。IDE 内でデバッグなしで実行すると、このプログラムがより高い権限を必要とすることを示すエラーが表示されます。IDE 内でデバッグありで実行すると、プロセス作成エラーが発生します。詳細については、http://blogs.msdn.com/uac/archive/2006/01/13/512776.aspx を参照してください。
TAnimate には TShellResources が必要
TAnimate コンポーネントを Vista や Windows 7 で使用するには、TShellResources コンポーネント([ツール パレット]の[Win32]カテゴリ下)をプロジェクトに追加する必要があります。TShellResources を追加すると、次のリソースが追加されます。
- FindFolder.res
- FindFile.res
- FindComputer.res
- CopyFiles.res
- CopyFile.res
- RecycleFile.res
- EmptyRecycle.res
- DeleteFile.res
BDE の再構成(非推奨)
Windows Vista または Windows 7 で非推奨の BDE をまだ使用している場合は、BDE が C:\<ルート> ディレクトリにファイルを書き込まないように、BDE を再構成する必要があります。それには、管理者としてログオンし、Program Files\Common Files\Borland Shared\BDE にある BDEAdmin.exe を実行します。[Nativ]の下の[PARADOX]をクリックし、[NET DIR]をルート ディレクトリ以外の場所を参照するように変更します。推奨するディレクトリは、C:\Users\Public\Documents\RAD Studio です。
マニフェストの問題
Windows Vista の拡張子を持つマニフェストを、Windows XP Service Pack 2(SP2)の .exe ファイルまたは .dll ファイルに追加すると、コンピュータが再起動する場合があります。この問題とホットフィックスの詳細については、http://support.microsoft.com/kb/921337 を参照してください。
Vista 以前のダイアログの選択
共通ダイアログ コンポーネントを含む既存 VCL アプリケーションを再構築して、Vista システムで実行すると、従来のダイアログ(開く、保存、およびメッセージ)ではなく、Vista 形式のダイアログ(ファイルおよびタスク)が使用されます。従来のダイアログを使用する場合は、グローバル変数 UseLatestCommonDialogs をプログラムの最初に false に設定します。これにより、従来の動作が強制されます。
Vista 上の IntraWeb
VCL for the Web(IntraWeb)アプリケーションを実行およびデバッグするには、Windows 2003 または Windows XP を使用する必要があります。Windows Vista を使用している場合は、VCL for the Web アプリケーションをデバッグする際に、ユーザー アカウント制御(UAC)をオフにする必要があります。IntraWeb(VCL for the Web コンポーネントのヘルプを含む)の詳細については、http://www.atozed.com/intraweb/docs/ を参照してください。
WinHelp はサポートされていません
Windows Vista は、非推奨の WinHelp ヘルプ ビューア(WinHelp.exe)をサポートしません。お使いのヘルプ システムを HtmlHelp に移行する必要があります。.HLP ファイルを使用する場合、アプリケーションに含まれるすべてのユニットの uses リストに WinHelp32.exe ビューアを追加します。WinHelp32 ビューアは、Microsoft Web サイト http://www.microsoft.com/downloads/details.aspx?FamilyID=6ebcfad9-d3f5-4365-8070-334cd175d4bb からダウンロードできます。
Delphi に関する注意事項
大規模なプロジェクト グループをコンパイルするとメモリ不足のエラーになる可能性がある
この問題を解決するには、プロジェクト グループを閉じ、[プロジェクト マネージャ]で開き直して、グループ内の "エラーになっている" プロジェクトを右クリックし、コンテキスト メニューから[ここから下を|ここから下をすべてビルド]を選択します。残りのプロジェクトのコンパイルは成功するはずです。
プロジェクトが(パッケージではなく).exe ファイルから構成されている場合には、実行時パッケージを有効化してそれを使ってビルドするという方法もあります。次の手順で行います。
- [プロジェクト|オプション...|実行時パッケージ]を開きます。
- [実行時パッケージを使ってリンク]をオンにします。
- [実行時パッケージ]のフィールドをクリックし、現れる参照([...])ボタンをクリックします。
- [実行時パッケージ]ダイアログ ボックスで、次のようにして実行時パッケージのリストに rtl を追加します。
- 中央のフィールドに「rtl」と入力します。
- [追加]をクリックします。
- [OK]をクリックします。
.hpp ヘッダー ファイル
XE から始まったことですが、XE2 でも引き続き、Delphi コンパイラは .hpp ヘッダー ファイルをデフォルトで出力します。これは XE より前のリリースとは違っています。たとえば、順序値によって DLL をインポートしようとすると、コンパイラは "E1025 この仕様はサポートされていません" のメッセージを出力します。.hpp の生成と順序値による DLL のインポートは両立しないためです。しかし、.hpp の生成をオフにすると、順序値で DLL をインポートすることができます。[プロジェクト|オプション...|Delphi コンパイラ|出力 - C/C++]のページを開き、[C/C++ 出力ファイルの生成]のオプションで、[DCU のみ生成]など、ヘッダーを含まない値を選択します。
C++Builder に関する注意事項
C++ FireMonkey OS X アプリケーションのダイナミック リンクには .dylib の追加が必要
パッケージを使用する C++ OS X アプリケーションで、必要な実行時パッケージの配置が完了していない可能性があります。一部のパッケージを手動で配置する必要があるかもしれません。その中には、プロジェクトに必要な実行時パッケージのリストに暗黙的に含まれるけれども、実行時パッケージ リスト([プロジェクト|オプション...|実行時パッケージ])には表示されないパッケージが含まれます。これを回避するには、配置マネージャを使って必要な .dylib を追加します。
Delphi RTL とリンクする必要がある C++ コンソール アプリケーション
フレームワークを選択せずに C++ コンソール アプリケーションを作成すると、そのコンソール アプリケーションでは、Delphi のランタイム ライブラリにリンクしたり Delphi の例外を処理することができません。このコンソール アプリケーションにユニットを追加すると、IDE によって適切な Delphi ランタイム ライブラリが追加されますが、Delphi を初期化して連携できるバージョンに C++ ランタイム ライブラリが切り替えられることはありません。これを回避するには、[プロジェクト|オプション...|C++ リンカ]ページの[Delphi ランタイム ライブラリ (rtl パッケージおよび cp32mt.lib/cp32mti.lib) とリンク]をオンにします。
System.UnicodeString.t_str() が非推奨になりました
UnicodeString.t_str() 関数は、現在の _TCHAR マッピングに関係なく、常に wchar_t* を返すようになりました。
[_TCHAR のマップ先] を [wchar_t] に設定している場合には、この変更による影響はありません。最近のリリースでは、t_str() は const char*([_TCHAR のマップ先] が [char] に設定されている場合)または const wchar_t*([_TCHAR のマップ先] が [wchar_t] に設定されている場合)を返していました。[_TCHAR のマップ先] を [char] に設定している場合は、wchar_t をサポートしていないものに t_str() 関数の結果を代入することはできません(代入するとコンパイラ エラーが発生します)。
char の値を使用するには、次に示すようにコードを変換します。
XE 版以前の場合: mystr.t_str()
XE 版および XE2 版の場合: AnsiString(mystr).c_str()
WebSnap ディレクトリの指定
C++Builder を WebSnap と共に使用している場合、実行可能ファイルが HTML ファイルと同じディレクトリに書き込まれることを確認してください。実行可能ファイルがプロジェクト ディレクトリに書き込まれるようにするには、[プロジェクト|オプション...|ディレクトリと条件定義|最終出力ディレクトリ]にドット(".")を入力します。
コード補完問題の解決
まれに、C++ の支援機能で、プロジェクトのプリコンパイル済みヘッダーが再生成されたときに完全な結果が得られないか、失敗することがあります。このような問題が発生した場合は、次のアクションのいずれかで、問題が解決します。
- プロジェクトを再びメイクする
- プリコンパイル済みヘッダーを削除する
- プロジェクトをクリーンアップして、メイクする
Delphi DesignIntf および DesignEditors ツールの使用
DesignIntf および DesignEditors ツールを使用した Delphi ユニットを含む C++ パッケージを作成する場合、[プロジェクト|オプション...|Delphi コンパイラ|その他のオプション]を設定する必要があります。[コンパイル時に使用するパッケージ]コンボ ボックスに DesignIDE を追加します。
データベースに関する注意事項
FireMonkey クライアントで DataSnap REST クライアント プロキシをサポートするための次善策
C++/OS X 向けの DataSnap クライアントまたはクラウド クライアントをビルドしても、実行時パッケージとリンクされません。これを回避するには、実行時パッケージ リスト([プロジェクト|オプション...|パッケージ|実行時パッケージ]を選択)に CustomIPTransport を追加します。
Unicode とドライバ
次のデータベース ドライバでは Unicode が有効ではありません。
- DB2
- Sybase ASE
- Informix
接続の失敗
Delphi 2007 から Delphi XE2 にデータベース アプリケーションをアップグレードしている場合は、接続に失敗することがあります。回避するには、uses 句に DBX<データベース名> を追加します。たとえば、TSQLConnection を使用して、Oracle データベースに接続している場合は、DBXOracle を uses 句に追加する必要があります。
以下の組み合わせについては、テスト済みです。
| LibMySQL.dll(5.1.XX) | DBXMys.dll | MySQL 4.0.XX Server |
| LibMySQL.dll(5.1.XX) | DBXMys.dll | MySQL 4.0.XX Server |
| LibMySQL.dll(5.1.XX) | DBXMys.dll | MySQL 5.0.XX Server |
| LibMySQL.dll(5.1.XX) | DBXMys.dll | MySQL 5.1.XX Server |
複数バージョンのインストール下ではドライバは競合する
本製品の以前のバージョンもインストールされているときに古いバージョンの使用を試みる場合は、IDE から実行したとき、本リリースのドライバが読み込まれます。これは、\bin ディレクトリがシステム パスの中で前にあるからです。古いドライバを使用するための 1 つのソリューションは、[ツール|オプション...|環境変数]で表示されるパスにオーバーライドを追加し、パスの先頭に古い \bin ディレクトリを配置します。
サポート対象サーバー
dbExpress
- InterBase XE、2009、2007、7.5.1、7.1*、8.0*、6.5*(すべて)(ドライバ dbxINT.dll、クライアント GDS32.DLL)
- Firebird 2.5、2.1、1.5(Ent/Ult/Arch)(ドライバ dbxfb.dll、クライアント fbclient.dll)
- Sybase SQL Anywhere 12、11、10、9、8*(Ent/Ult/Arch)(ドライバ dbxASA.dll、クライアント dbodbc*.dll)
- DB2 UDB 9.5、9.1、8.x*、7.x*(Ent/Ult/Arch)(ドライバ dbxDB2.dll、クライアント db2cli.dll)
- Informix 9.x(Ent/Ult/Arch)(ドライバ dbxINF.dll、クライアント isqlb09a.dll)
- Microsoft SQL Server 2008、2005、2000(Ent/Ult/Arch)(ドライバ dbxMSS.dll、クライアント sqlncli10.dll)
- MySQL 5.1、5.0.27、4.1*(Pro/Ent/Ult/Arch)(ドライバ dbxMYS.dll、クライアント libmysql.dll)
- Oracle 11g、10g、9.2.0*、9.1.0*(Ent/Ult/Arch)(ドライバ dbxora.dll、クライアント OCI.DLL)
- Sybase ASE 12.5(Ent/Ult/Arch)(ドライバ dbxASE.dll、クライアント libct.dll & libcs.dll)
* このバージョンのデータベースでは、ドライバの動作は完全には保証されていません。
デバッガに関する注意事項
.dcp ファイルをアプリケーションの配置リストに追加してデバッグ情報を確保
Delphi アプリケーションを実行時パッケージにリンクしている場合に、期待するデバッグ情報が生成されない可能性があります。これは、Mac OS X アプリケーションや、リモート Win64 アプリケーション、リモート Win32 アプリケーションの場合に発生します。これを回避するには、配置マネージャを使って、実行時パッケージに対応する .dcp ファイルを実行時パッケージ リストに追加します。たとえば rtl を使用する場合には、rtl.dcp ファイルを配置する必要があります。
Embarcadero\Rad Studio\9.0\lib の以下のディレクトリにある .dcp ファイルを使用してください。
- OS X アプリケーションの場合: Embarcadero\Rad Studio\9.0\lib\osx\release
- リモートの 64 ビット Windows アプリケーションの場合: Embarcadero\Rad Studio\9.0\lib\win64\release
- リモートの 32 ビット Windows アプリケーションの場合: Embarcadero\Rad Studio\9.0\lib\win32\release
Delphi FMX HD OS X アプリケーションでエラーが発生する可能性
[実行時パッケージを使ってリンク]オプションおよび[デバッグ版 DCU の使用]オプションがオンになっている Delphi FireMonkey HD OS X アプリケーションをビルドすると、Delphi のエラー E2213(パッケージ化されたユニットの形式が無効です)が発生する可能性があります。[プロジェクト|オプション...]でこの 2 つのオプションを上記の順で別々に設定し、各オプションを追加するたびにビルドを実行すると、[デバッグ版 DCU の使用]を設定した後でビルドが失敗します。これを回避するには、プロジェクトを保存し、すべてを閉じ、その後、プロジェクトを開き直します。そうすればビルドが成功するはずです。
Mac OS X の例外により生じる予期しない結果
Mac OS X では、実行時ライブラリによって特定の OS 例外が Delphi 言語例外にマッピングされます。これには、Mach レベルの例外 EXC_BAD_ACCESS、EXEC_ARITHMETIC、EXC_BAD_INSTRUCTION や、それに相当する Unix レベルのシグナルが含まれます。この機能はデバッグとの互換性がなく、プロセスがデバッグ用に作られている場合には無効になっています。デバッガは、例外が発生するとユーザーに通知します。ただし、例外を捕捉して続行ことを前提に作成されたプログラムでは、デバッガを使って実行している場合には異なる動作をする可能性があります。
クラッシュ後の Mac のメッセージ
OS X アプリケーションの中に処理されない例外が含まれている場合、デバッガから例外通知が表示され、中断するか続行するか無視するかを選択することができます。続行を選択し、さらにターゲットの Mac 上に Xcode がインストールされている場合には、Mac によって "予期しない終了" の警告メッセージが表示され、Apple へレポートを送信するかどうかを尋ねられます。この警告は、Mac の[デベロッパ|アプリケーション|ユーティリティ]にある[CrashReporterPrefs]ページで無効にすることができます。[サーバー]ボタンをクリックして、無人運用ができるようにします。
コード内のデータ ブレークポイント
コード内にデータ ブレークポイントを置こうとすると、プログラムが破損する場合があります。たとえば、VMT スロットにデータ ブレークポイントを置くと、プログラムが間違った場所にジャンプする場合があります(アドレスの "最後の" バイトが 0xcc に上書きされる)。
[実行|プログラムからデタッチ]後の問題
デバッグ セッションで[実行|プログラムからデタッチ]を実行した後、別のデバッグ セッションを開始すると、IDE が凍結する可能性があります。
System Mechanic 7 Pro はデバッガと互換性がありません
System Mechanic 7 Pro は、統合デバッガの機能を無効にします。プロセスがすぐに終了することと、イベント ログ ビューに診断メッセージが表示されることが報告されています。この製品がインストールされている場合は、サービス マネージャを使用して "iolo DMV Service" の実行を無効にすることで、デバッグ機能を復元できます。
国際化に関する注意事項
ITE/ETM プロジェクトを Delphi 7 から移行する
ITE/ETM プロジェクトを Delphi 7 からアップグレードするには、ユーザーの dfm をテキスト形式にする必要があります。この変換を実行するには、convert.exe(デフォルトでは C:\Program Files\CodeGear\RAD Studio\8.0\bin にインストール)を使用します。
プロジェクトがインポートされ、リソース dll がリソース DLL ウィザードで更新された後に、リソース dll が更新されていないようにみえる問題が発生することがあります。この場合、ウィザードで単にもう 1 度更新すると、問題が解決します。
ユーザー ロケールを UI ロケールとして使用する
ユーザー ロケールを UI ロケールとして使用することはお勧めできません。ユーザー ロケールは、数値や日付および時刻の形式を制御するものです。UI ロケールは、特定の言語について、メニューやエラー メッセージなど人間が読むことのできるすべてのテキストを制御するものです。
VCL/RTL とロケール
VCL/RTL では、Windows で使われているものと同じローカライズ済みモジュールが選択されます。ユーザー ロケールを使用して UI モジュールを選択したい場合には、OverrideUIWithUserLocale.pas というユニットを新規作成し、次のコードを貼り付けます。
unit OverrideUIWithUserLocale; interface implementation uses Windows; initialization SetLocaleOverride(GetUILanguages(GetThreadLocale)); end.
この OverrideUIWithUserLocale ユニットを、uses セクションの先頭に追加します。
program Project1; uses OverrideUIWithUserLocale, Forms, Unit1 in 'Unit1.pas' {Form1};
FireMonkey に関する注意事項
FireMonkey では埋め込みデザイナが必要
FireMonkey では埋め込みのフォーム デザイナしかサポートしていません。埋め込み以外のデザイナを使うように IDE が設定されている(つまり、[ツール|オプション...|環境オプション|VCL デザイナ|埋め込みデザイナ]がオフになっている)場合、FireMonkey プロジェクトでは、FireMonkey フォーム ユニットが単なる Delphi ユニットであるかのように表示されます。フォーム デザイナは使用できません。フォーム デザイナを使用するには、[埋め込みデザイナ]を使用するオプションをオンにして、IDE を再起動してください。
必要なファイルの欠落(IPIndyImpl.dcp および inetdbexpress.dcp)
Win64 プラットフォームおよび OS X プラットフォームをターゲットとする Delphi FireMonkey アプリケーションで、ファイルが存在しないというメッセージが出ることがあります。Win64 および OS X のプラットフォームでは IPIndyImpl.dcp(CloudService.dcp で使われるもの)が存在せず、win64\release ディレクトリには inetdbxpress.dcp が存在しません。これらのファイルは、http://cc.embarcadero.com/item/28484 から .zip ファイルとしてダウンロードできます。
TViewport3D のホストは 2D 環境でなければならない
親が HD フォームまたは TLayer3D でない TViewport3D に 3D コンポーネントを追加すると、アクセス違反が発生します。
TListBox.OnChange イベントが Selected プロパティをサポートしない
Fmx.ListBox.TListBox の OnChange イベントの手続きで TListBox.Selected プロパティを使用すると、アクセス違反が発生します。
極東の文字の表示における問題
FireMonkey OS X アプリケーションに対してヨーロッパのロケールでデバッガを使用すると、現在のところ、極東の文字が正しく表示されません。たとえば、システムの地域設定が英語または日本でなければ、すべてのコンポーネントで日本語/中国語の文字が正しく表示されない可能性があります。ただし、アプリケーションを Finder から起動すると、極東の文字が正しく表示される場合があります。
この問題を回避するには、paserver.command シェル スクリプトの先頭に次の行を追加します。
export LANG=C
paserver.command スクリプトは、通常、/users/<ユーザー名>/Applications/Embarcadero/PAServer フォルダにあります。
Esc キーを押すとグリッド ダイアログが閉じてしまう
モーダル フォーム内でグリッドを編集している(つまり、グリッド セルでテキストを入力している)ときに Esc キーを押すと、意図せずにモーダル ダイアログを閉じてしまう可能性があります。
一部の FMX OS X アプリケーションに誤って Windows 要素が含まれる
TXMLDocument を含んでいる FMX HD OS X アプリケーションはコンパイルが失敗します。TXMLDocument には Xml.Win.msxmldom.dcu(Delphi の場合)または Xml.Win.msxmldom.hpp(C++ の場合)が必要ですが、どちらも Windows でしか使用できません。
TTcpClient を含んでいる FMX OS X アプリケーションはコンパイルが失敗します。TTcpClient には Web.Win.Sockets.dcu(Delphi の場合)または Web.Win.Sockets.hpp(C++ の場合)が必要ですが、どちらも Windows でしか使用できません。
FireMonkey デザイナにおける Indy TIdAntiFreeze の次善策
FMX アプリケーションで設計時コンポーネントとして Indy TIdAntiFreeze クラスを使用することはできません。その代わりに、FMX.IdAntiFreeze を uses 句に追加し、プログラムでインスタンス化してください。
VCL/RTL に関する注意事項
VCL アプリケーション用の VCL スタイルの導入
VCL アプリケーションにカスタム スタイルを追加するには、[プロジェクト|オプション...|アプリケーション|表示]ダイアログ ボックスを使用します。XE2 リリースでは、リボン コントロールのスタイルをサポートしていません。
VCL スタイルとフォームの境界
フォームの BorderStyle の bsDialog、bsSingle 、bsToolWindow を使用すると、右側のウィンドウ境界がクライアント領域を侵害するように表示されます。
スタイル付きアプリケーションでポップアップ フォームが閉じてしまう
スタイルを使用したアプリケーションで、Form.Close が正しく動作せず、フォーカスが外れたときにポップアップ フォームが閉じてしまう可能性があります。
SetThreadAffinityMask で 64 ビットがサポートされていない
RTL 関数 Win.Winapi.Windows.SetThreadAffinityMask では 64 ビット Windows 開発をサポートしていません。これを回避するには SetThreadAffinityMask を独自に宣言します。詳細は http://msdn.microsoft.com/en-us/library/ms686247 を参照してください。
ランタイム テーマと TImageList.ColorDepth
TImageList.ColorDepth プロパティに cd32Bit を設定し、ImageList に透明画像が含まれる場合は、画像がコントロール上で描画されるとき正しくブレンドするようにランタイム テーマを有効にする必要があります。IDE の[プロジェクト|オプション...|アプリケーション]で設定します。
VCL エラー調停ダイアログまたは TSimpleDataSet を使用するには DataSnap.Midas.dcu を追加する
VCL エラー調停ダイアログまたは TSimpleDataSet コンポーネントを含んでいる VCL プロジェクトは、DataSnap.Midas.dcu を追加しなければコンパイルが成功しません。DataSnap.Midas.dcu は、製品のインストール ディレクトリの \lib\<プラットフォーム>(<プラットフォーム> は win32、win64、または osx32)の下にあります。
XML に対しての ClientDataSet.SaveToFile での Unicode の問題
各国語文字が String/Memo フィールドで使用されている場合は、XML に対して TCustomClientDataSet.SaveToFile では不正データが生成されることがあります。たとえば、アクセント付き文字の代わりにスペースが表示されることがあります。
TNotifyIconData における SizeOf の問題
Windows SDK の変更により、SizeOf(TNotifyIconData) の呼び出しでは、Windows Vista より前のバージョンでは結果が不正確になります。TNotifyIconData.SizeOf メソッドを呼び出すと、すべてのバージョンの Windows で正しいサイズが返ります。
ActiveX に関する注意事項
64 ビットのタイプ ライブラリや ActiveX コントロールのインポートには TLIBIMP を使用する
[コンポーネント|コンポーネントのインポート...]ウィザードでは、32 ビット レジストリしか確認しません。そのため、64 ビット システムでの実行中に 64 ビット固有のタイプ ライブラリや ActiveX コントロールをインポートしたい場合には、TLIBIMP を直接使用する必要があります。
64 ビットの DLL やインプロセス サーバーの登録には 64 ビット TRegSvr を使用する
IDE は 32 ビット プロセスなので、64 ビットのインプロセス/DLL サーバーを登録できません(32 ビット プロセスには 64 ビット DLL を読み込めません)。64 ビット インプロセス サーバーを登録するには、$(BDS)\bin64\TRegSvr.exe にある 64 ビット版 TRegSvr.exe を使用する必要があります。
C++ の ActiveX ライブラリでは静的 RTL およびパッケージの使用が必要
すべての C++ の ActiveX ライブラリ(ATL または DAX の使用)では静的 RTL およびパッケージの使用が必要です。設定するには、[プロジェクト|オプション...]に移動します。
- [C++ リンカ]ページで、[動的 RTL とリンク]に[false]を設定します。
- [パッケージ]ページで、[実行時パッケージを使ってリンク]をオフにします。
SOAP サーバーに関する注意事項
OS/X 上の C++ での SOAP コンポーネントの使用
IDE では最上位の依存関係しか把握していないため、SOAP ランタイム(THTTPRIO コンポーネントなど)を使用する OS/X C++ アプリケーションでは、明示的に Indy パッケージをリンクする必要があります。
そのためには、プロジェクトの .cpp ファイルに次の行を追加します。
#if defined(__APPLE__) #ifndef USEPACKAGES #pragma link "IndyCore.a" #pragma link "IndyProtocols.a" #pragma link "IndySystem.a" #else #pragma link "IndyCore.bpi" #pragma link "IndyProtocols.bpi" #pragma link "IndySystem.bpi" #endif #endif
[WSDL インポータ]を呼び出すための代替パス
[ファイル|新規作成|その他...|Web サービス|WSDL インポータ]から[WSDL のインポート]ウィザードを起動して無効な URL を入力すると、次のようなエラー メッセージが出力される可能性があります。
-
Unable to load WSDL File/Location: <wrongURL>. Error [Empty document].
(WSDL ファイル/位置を読み込めません: <不正な URL>。エラー [ドキュメントが空です]) -
Unable to load WSDL File/Location: <wrongURL>. Error [Whitespace not allowed at this location]
(WSDL ファイル/位置を読み込めません: <不正な URL>。エラー [この場所ではホワイトスペースを使用できません])
これを回避するには、別の経路([コンポーネント|WSDL のインポート...])で WSDL インポータを起動することをお勧めします。そうすると、エラーはウィザード内で捕捉されるはずです。
Delphi Prism で使用可能な .NET SOAP サービス
Win32 SOAP サーバー サポートでは、従来の RPC/エンコード形式の Web サービスを生成します。ドキュメント/リテラル サービスやその他の WS-I 準拠形式のサービスが必要な場合には、Delphi Prism を使用して SOAP サーバーを構築する必要があります。Delphi Prism では、WS-I 準拠形式など、.NET Framework でサポートされている SOAP 仕様をサポートしています。
モデリングに関する注意事項
[プロジェクト マネージャ]の[モデル ビュー]タブでコンテキスト メニューを開いたときに(右クリック)、[ダイアグラムを開く]コマンドが有効になっていない場合があります。ただしその場合でも、淡色表示された[ダイアグラムを開く]コマンドをダブルクリックすると、[ダイアグラム]ビューを開くことができます。
ヘルプに関する注意事項
- インストールされたヘルプの場所:デフォルトでは、ヘルプ ファイルは C:\Program Files\Embarcadero\RAD Studio\ X.X \Help\Doc にインストールされます。
- 現在未解決となっている問題の情報は、「ヘルプにおける既知の問題」を参照してください。
- docwiki に最新の内容が追加されました: RAD Studio ヘルプは http://docwiki.embarcadero.com にある docwiki から生成されています。RAD Studio ユーザーなら誰でも、docwiki に参加できます。docwiki を見ると、常に最新のヘルプを確認できます。実際の wiki は次の 3 つに分かれています。
- 主題についてのトピック: http://docwiki.embarcadero.com/RADStudio/XE2/ja/メインページ
- ライブラリ リファレンス(VCL-FMX-RTL): http://docwiki.embarcadero.com/Libraries/ja/Main_Page
- コード例: http://docwiki.embarcadero.com/CodeExamples/en/Main_Page
- Microsoft Document Explorer 2008(DExplore.exe):
- ローカルにインストールされた Delphi XE2 と C++Builder XE2 のドキュメントを表示するには、DExplore が必要です。Microsoft Document Explorer 2008 がインストールされていない場合は、ヘルプ システムのインストールの一部としてインストールされます。
- Microsoft Document Explorer XE のプレリリース バージョンのライセンスが表示されるという問題が知られています。
- IDE で F1 キーを押したときにアクセス違反が発生するなら、互換性のないバージョンの DExplore.exe がインストールされている可能性があります (バージョンを確認するには、DExplore.exe を単独で実行し、[ヘルプ|Microsoft Document Explorer バージョン情報]ボックスを開きます。QFE と表示されている場合には、Visual Studio 2008 または Prism によってクイック フィックスがインストールされています)。この問題を解決するには、[コントロール パネル]を開き、[Embarcadero Delphi and C++Builder XE2 Help System]に対して[修復]を実行します。
- MS SDK ヘルプ: Microsoft Windows Platform SDK ヘルプは、デフォルトでは製品ヘルプと一緒にインストールされません。ヘルプのインストール時に、[機能の選択]ページで[MS SDK ヘルプ]の項目を[ローカル ハード ドライブにインストールする]に設定すると、MS SDK ヘルプをインストールすることができます。詳細は、Install.html ファイルを参照してください。
- ヘルプでの検索と索引の絞り込み: 特定のヘルプ(MSDN オンラインなど)を選択して、オンライン ヘルプで検索や索引機能を使用できます。ヘルプ ビューアの高度な設定の詳細については、http://edn.embarcadero.com/article/37562 で公開されている EDN の記事 "Getting the Best Results with RAD Studio Online Help(RAD Studio オンライン ヘルプで最高の結果を)" を参照してください。
- IntraWeb のドキュメント: IntraWeb(VCL for the Web コンポーネントのヘルプを含む)の詳細については、http://www.atozed.com/intraweb/docs/ を参照してください。