Delphi のどのバージョンで何が追加されたのか?
流石にこれだけバージョンアップが重ねられると、どの機能がどのバージョンから追加されているのか分からなくなってしまいます。すべてのバージョンを持っていない限り、特定のバージョンから特定のバージョンまでの変更点を知る事は意外に難しいものです。
Delphi 2
コンパイラと RTL の変更点
新しいデータ型
文字型
Delphi 2.0 では Unicode などのワイド文字セットをサポートするために新しくワイド文字型が導入されています。Delphi 1.0 では文字を Char 型の 8 ビット ANSI 値として扱っていました。
このバージョンの Delphi でもデフォルトの文字サイズは 8 ビットのままです。
両方のサイズを扱う可能性があるコードを書くときには SizeOf 関数を使うようにして,文字サイズを直接書き込んだり文字サイズを 1 バイトと仮定しないようにしてください。
文字列型 Delphi 2.0 では,以前からサポートしていた 255 文字までの文字列に加えて,長さにほぼ制限のない文字列をサポートします。新しいコンパイラ指令 $H を使って,予約語 string が短い文字列と長い文字列のどちらを表すかを制御します。$H のデフォルト状態は $H+ で,デフォルトで長い文字列が使われます。
バリアント型
Delphi 2.0 ではバリアント型が導入され,変数の型を動的に変更する柔軟性が得られるようになっています。これはOLE オートメーションを使うときや,データベースサーバー上の具体的なデータ型が事前に決定できないようなクライアントアプリケーションを作るときに有効な機能です。
バリアント型は,値とともに型情報が埋め込まれた 16 バイトの構造体で,文字列,整数,あるいは浮動小数点数の値を保持できます。コンパイラは標準型識別子 Variant をバリアント型の宣言として認識します。
ほとんどの場合は他の型の変数とまったく同じようにバリアント型を使うことができます。OLE オートメーションを実行するときに,バリアント型は OLE サーバーからのメソッド呼び出しに応答できます。
金額型
Delphi 2.0 では Currency という新しい型が定義されています。これは高い精度の大きな値を扱うために特別に設計された浮動小数点型です。Currency は他のすべての浮動小数点型 (およびバリアント型) と代入互換ですが,実際には Comp 型と同じように 64 ビット整数形式で格納されます。
Currency 型の値は小数点以下が 4 桁です。つまり最下位の 4 桁が小数点以下を表すものとした整数形式で浮動小数点値が格納されているわけです。
コンパイラの変更点
新しいコンパイラ指令
Delphi 2.0 では新しいコンパイラ指令が 2 つ導入されています。
ローカルスイッチ指令 $H。長い文字列の使用を制御する
ローカルスイッチ指令 $J。型付き定数を書き込み可能とするかどうかを制御する
また,ほとんどの 1 文字指令に対応する長いコンパイラ指令があります。たとえば新しい $H 指令に対応するのは $LONGSTRINGS 指令です。
すべてのコンパイラ指令については (長い指令と 1 文字指令ともに) Object Pascal 言語ヘルプのコンパイラ指令一覧を参照してください。
コンパイラの最適化
Delphi の 32 ビットコンパイラではオブジェクトコードを生成するときに数種類の最適化が行われます。
ベンチマークテストの結果は,最適化を使用すると集中的に計算を行うコードの実行速度が 3~4 倍になることを示しています。
呼び出し規約
Delphi 2.0 コンパイラではパラメータ受け渡し規約についてオプションが追加されています。Delphi 1.0 での pascal,cdecl,
stdcall に加えて,Delphi 2.0 では Pascal と C の呼び出し規約を組み合わせた高速な規約である register が追加されました。Delphi はデフォルトでは register を使います。
register 規約では可能であればパラメータの受け渡しにレジスタを使用します。32 ビットレジスタに収まる最初の 3 つのパラメータは EAX,EDX,ECX の各レジスタで (この順序で) 受け渡されます。残りのパラメータはすべて Pascal の呼び出し規約に従います。また register 規約では EBX,ESI,EDI の各レジスタは保持されることが保証されます。
ユニットの終了処理部
ユニットにオプションとして (省略可能な) 終了処理部を入れることができます。終了処理は初期化に対応するもので,アプリケーションがシャットダウンするときに実行されます。終了処理部はユニットの「終了コード」と考えることができます。終了処理部は Delphi 1.0 での ExitProc と AddExitProc の呼び出しに対応します。
終了処理部は予約語 finalization で始まります。終了処理部は initialization 部と最後の end. の間になければなりません。
VCL の変更点
新しいコンポーネント
Delphi 2.0 には Windows 95 の新しいコモンコントロールと新しいマルチレコードデータベースグリッドを表すコンポーネントがあります。VCL リファレンスのヘルプにはすべての新しいコンポーネントとそのプロパティ,メソッド,およびイベントの説明があります。新しいコンポーネントは次のとおりです。
TTabControl
TPageControl
TTreeView
TTrackBar
THeaderControl
TProgressBar
TRichEdit
TUpDown
TListView
TStatusBar
TDBCtrlGrid
TImageList
THotKey
TSession
TUpdateSQL
OLE コントロールのインポート
Delphi 2.0 では,Delphi 1.0 の VBX コントロールの場合と同じように OLE コントロール (あるいは OCX コントロール) をインポートして Delphi コンポーネントのように扱うことができます。
OLE オートメーション
OLE オートメーションは Windows アプリケーション間で相互に操作を行うメカニズムです。自動化されるアプリケーションをオートメーションオブジェクトまたはオートメーションサーバーと呼びます。他のアプリケーションを自動化するアプリケーションがオートメーションコントローラまたはオートメーションクライアントです。OLE オートメーションは実質的にはアプリケーションが他のアプリケーションの動作を制御するためのプロトコルです。
Delphi はアプリケーションの OLE 2.0 オートメーションを完全にサポートしています。Delphi で書いたアプリケーションを使って他のアプリケーションを自動化すことができ,また Delphi アプリケーションを OLE オートメーションサーバーとしてセットアップすることもできます。
TDBGrid の変更
データベースグリッドコンポーネント TDBGrid では,基になるフィールドのプロパティとは関係なく,列ごとに表示プロパティを指定できるようになっています。TDBGrid はデータセルの色,幅,フィールド名,およびタイトル (列見出し) のテキスト列属性をサポートしています。
データベースに関する変更点
テーブルに対するローカルフィルタ
Delphi では,問い合わせを使ってデータベースサーバーからローカルデータセットに取り込むレコードにフィルタをかけるように,データセットから表示するレコードにローカルにフィルタをかけることができます。フィルタを使うと,どんなテーブルや問い合わせからでも一定のレコードをローカルに隠したり表示したりできます。
Delphi のデータセットフィルタは Object Pascal コードとして書かれています。したがって,Object Pascal のコードで実現できることならどんな計算や操作でも行えます。
TField の参照フィールドのサポート
Delphi 2.0 ではサポートするフィールドの種類が増えています。データフィールドと計算フィールドに加えて参照フィールドを扱えるようになっています。参照フィールドは計算フィールドによく似ていますが,「計算」ではなく別のテーブルを「参照」します。参照フィールドは常に読み出し専用です。
参照フィールドを定義するには,項目エディタでフィールドを定義してから,オブジェクトインスペクタでフィールドの Lookup プロパティを True に設定します。
SQL モニタ
SQL モニタを使うと,SQL Link を介したリモートサーバーへの SQL 文,あるいは ODBC ソケットを介した ODBC データソースへの SQL 文の実際の呼び出しを見ることができます。
IDE の変更点
メニューの変更点
できつつある開発ツールメニューの標準をより満たすように,Delphi 2.0 の IDE のメニュー構造は Delphi 1.0 とは異なっています。Delphi 2.0 での主な違いは,ファイルメニューの設計が見直されたこと,コンパイルメニューとオプションメニューがなくなったこと,プロジェクトメニュー,コンポーネントメニュー,およびデータベースメニューが新設されたことです。
ビジュアルフォームの継承
Delphi 1.0 ではフォームデザイナで設計されるすべてのフォームは同じ上位型 TFrom から直接派生していました。Delphi 2.0 では他のフォームからフォームを派生させることが可能になり,上位型のコンポーネント,プロパティ,およびコードを新しいフォームの開始点として継承することができます。上位フォームは,プロジェクトまたはオブジェクトリポジトリにすでに入っているものなら何でもかまいません。
フォームの継承によって,1 つのアプリケーション内でもアプリケーションのグループ全体に渡る場合でも,標準フォームテンプレートのライブラリの作成が可能になります。上位フォームに加えた変更は即座に下位のフォームに反映されます。ライブラリから派生させた各フォーム型をカスタマイズでき,またライブラリ内の標準フォームもいつでも変更が可能であり,その変更は派生フォームに反映されます。
ビジュアルフォームのリンク
自分のプロパティで他のコンポーネントを参照するコンポーネントから,別のフォームに属するコンポーネントを参照できるようになりました。このようなリンクを使うコンポーネントの典型的なものがデータアクセスコンポーネントです。
たとえば 1 つのアプリケーションで,あるフォームにテーブルコンポーネントがあり,さらに同じデータセットに対してグリッドビューやフォームビューなどの異なるビューを持つフォームを複数作成することができます。
Delphi は関連付けられているユニットをリンクすることでフォームをリンクします。たとえば Form1 と Form2 の 2 つのフォームとそれぞれに関連付けられたユニット Unit1 と Unit2 がある場合,Unit1 の uses 節のどれかに Unit2 が指定されていれば Form1 のコンポーネントは Form2 のコンポーネントを参照できます。
新しいコンパイラメッセージ
Delphi コンパイラは,新しい明快なエラーメッセージ,警告,およびヒントをコードエディタウィンドウのメッセージペインに生成します。警告とヒントの生成は,プロジェクトオプションとローカルコンパイラ指令を使って制御できます。
また最初のエラーで必ず停止するのではなく,複数のエラーを生成できるようになっています。
コンパイラがメッセージを表示したら,メッセージペインでメッセージをクリックして〔F1〕を押せばそのエラーメッセージの説明が表示され,エラーの原因の例と問題の解決方法が示されます。
データベースエクスプローラ
データベースエクスプローラを使うと,アプリケーション開発中にリモートサーバーへの持続的な接続を維持でき,また BDE エリアスやメタデータオブジェクトを扱うことができます。
項目エディタのドラッグアンドドロップ
データセット (テーブルまたは問い合わせ) コンポーネントに対して項目エディタを使ってフォーム上にデータ編集コントロールを作成できます。データセットのフィールドが定義されていれば,データセットが入っているフォームにフィールド名をドラッグアンドドロップできます。フォームにデータソースコンポーネントをまだ追加していない場合は,フォームに最初のフィールドをドロップしたときに自動的に追加されます。
そのフィールド型に対して適切なコントロールが作成されます。たとえば TStringField 型のフィールドをドロップすると DBEdit コンポーネントが作成され,TGraphicField 型のフィールドドロップすると DBImage コンポーネントが作成されます。
オブジェクトリポジトリ
オブジェクトリポジトリは,フォームやプロジェクトを共有したり再利用するための手段です。リポジトリそのものはフォーム,プロジェクト,エキスパートへの参照が入っているテキストファイルです。ファイル形式については,オンラインヘルプを参照してください。オブジェクトリポジトリは,このバージョンの Delphi で以前のギャラリーに取って代わったものです。
Delphi 3
パッケージのサポート
パッケージは Delphi アプリケーションと Delphi IDE が使う専用のダイナミックリンクライブラリです。パッケージを使ってアプリケーション間でコードを共有すると,実行可能ファイルのサイズを縮小しシステムリソースを節約できます。コンポーネントライブラリはパッケージ技術を利用できるように作成し直されています。ライブラリ全体を構築し直さなくても必要なパッケージだけをコンパイルできます。また,プロジェクト単位でパッケージをロードできるので,現在のプロジェクトが使うパッケージだけロードが可能です。IDE には,すべての Delphi コンポーネントがパッケージとしてインストールされています。パッケージを使うと,短時間で簡単にアプリケーションを開発できます。
IDE はパッケージに対応していくつかの点で機能拡張されています。たとえば,パッケージエディタとその関連ダイアログボックス (パッケージ作成エキスパートを含む) が追加されています。[コンポーネント(C)|パレットの設定(C)]を選択するか,[ツール(T)|オプション(O)]を選択してから[パレット]タブをクリックすると表示される[パレットオプション]ページには,それぞれのコンポーネントが入っているパッケージが表示されるようになっています。
自動支援機能
コードテンプレート
コードテンプレートはコードに簡単に挿入できる共通プログラミング文です。テンプレートは,if..then.. や while などの文のほか,
try..except ブロックなどの一般的な Pascal 構文構造で使えます。
エディタでコードテンプレートにアクセスするには,〔Ctrl〕+〔J〕を押します。
テンプレートを追加または編集するには,[環境オプション]ダイアログボックスで[支援機能]タブを選択します。コードテンプレートではマルチバイト文字は使えません。
コード補完
コード補完機能を使うと,コードに入れるメソッド,プロパティ,イベント,引数を簡単に選択できます。
オブジェクト名またはクラス名の後ろにピリオド (.) を入力すると,有効なメソッド,プロパティ,イベントの名前のポップアップリストが表示されます。
代入文を入力してから〔Ctrl〕+〔Space〕を押すと,変数の有効な引数のポップアップリストが表示されます。
宣言表示
メソッド名の後ろに左カッコを入力すると,必要な引数とその構文のリストが示されたポップアップウィンドウが表示されます。
式評価
アプリケーションをデバッグモードで停止している間に,マウスカーソルをコードエディタ内の任意の変数名またはプロパティ名に合わせます。変数またはプロパティの値がポップアップウィンドウに表示されます。この機能の効果を最大限に利用するには,[プロジェクトオプション]ダイアログボックスでコンパイラの[最適化を行う(O)]を無効にします。
コードエディタのその他の拡張機能
デバッガの表示機能の改良。コードエディタウィンドウには左余白が表示されるようになりました。左余白は[環境オプション]ダイアログボックスで設定したり無効にしたりできます。このダイアログボックスは[ツール(T)|環境オプション(O)|表示]を選択すると表示されます。
プロジェクト全体,指定したディレクトリ間,開いているすべてのファイル間でのテキスト検索が可能になりました。検索対象のファイルを指定するには[検索(S)|ファイル検索(D)]を選択するか,[検索(S)|検索(F)]を選択してから[ファイル検索]タブをクリックします。
コンポーネントテンプレート
コンポーネントテンプレートは 1 回の操作でフォームに追加できるコンポーネントのグループです。テンプレートを使うと,1 つのフォーム上に複数のコンポーネントを設定できます。また,その配置やデフォルトのプロパティをコンポーネントパレットに保存し,後でほかのフォームで再使用できます。
マニュアルの改訂
マニュアルセットが改訂されています。
ランタイムライブラリの拡張機能
Math ユニット
SumInt()
MinIntValue()
MaxIntValue()
System ユニット
コンパイラの変更を参照してください。
SysUtils ユニット
CompareMem()
RaiseLastWin32Error()
Win32Check()
コンパイラの変更
パッケージのサポート
パッケージをサポートするための言語拡張機能とコンパイラ指令が追加されています。
インターフェース
COM オブジェクトと ActiveX オブジェクトの開発をサポートするための言語拡張機能が追加されています。
アサーション
Assert は System ユニットで宣言される標準手続きです。論理式が真かどうかを調べます。
論理データ型
Visual Basic との互換性を保つため,データ型 ByteBool,WordBool,LongBool の True 値は -1 で表すことになりました。False は 0 のままです。内部的にはコンパイラはこれらのデータ型に Integer と同じ範囲を割り当てます。最小限のコード改訂でこの変更が有効になるように努めましたが,これらのデータ型の範囲チェックは行われないことになりました。型キャストを使っていた場合は,コードが正しく動作しない可能性があります。ショートサーキット評価は従来どおりに動作します。
Boolean データ型は変更されていません (True = 1,False = 0)。
マルチバイト文字のサポート
マルチバイト文字をサポートするため,ランタイムライブラリでは新しい関数が追加され,一部の関数が変更されています。変更された関数は,AnsiLowerCase,AnsiUpperCase,ChangeFileText,ExtractFileDir,ExtractFileExt,ExtractFileName,ExtractFilePath です。新しい関数は以下のとおりです。
AnsiCompareFileName()
AnsiExtractQuotedStr()
AnsiLastChar()
AnsiLowerCaseFileName()
AnsiPos()
AnsiQuotedStr()
AnsiStrComp()
AnsiStrIComp()
AnsiStrLastChar()
AnsiStrLComp()
AnsiStrLIComp()
AnsiStrLower()
AnsiStrPos()
AnsiStrRScan()
AnsiStrScan()
AnsiStrUpper()
AnsiUpperCaseFileName()
ByteToCharIndex()
ByteToCharLen()
ByteType()
CharToByteIndex()
CharToByteLen()
IsDelimiter()
IsPathDelimiter()
LastDelimiter()
StrByteType()
TFont.Charset プロパティ
マルチバイト文字セットを使う場合は TFont.Charset プロパティを設定します。
Charset は TFont インスタンスが存在するテキストオブジェクト用に選択した文字セットを表す整数です。アジア言語を正しく表示するには,アジア言語文字が入っている文字セットを Charset が示していなければなりません。Charset を設定するには,オブジェクトインスペクタでテキストオブジェクト (TLabel など) 用の[フォントの指定]ダイアログボックスを開き,リストボックスでフォントを選択するのがもっとも簡単な方法です。
書式付きテキストコントロールが使う TTextAttributes オブジェクトも Charset プロパティをサポートします。
新しくなったボーランドデータベースエンジン (BDE) と SQL Link
Delphi には新しいバージョンの BDE 4.0 と SQL Link があります。BDE に関連するほとんどのファイルは\Program Files\Borland\Common Files\BDE にあります。BDE と SQL Link 4.0 についての詳細は,Readlink.txt を参照してください。BDE についてのヘルプは BDE32.HLP と BDE32.CNT にあります。
FoxPro のサポート
dBASE ドライバでは FoxPro 圧縮インデックスファイル (.CDX) と BLOB (.FPT) ファイルを処理できるようになったので,FoxPro 2.0,2.5,2.6 の各テーブルを開いたり作成できるようになりました。dBASE ドライバを使って FoxPro テーブルを作成するには,BDE Administrator の[環境設定]ページを使ってドライバ環境設定パラメータ LEVEL を 25 に設定します。
Microsoft Access のサポート
Microsoft JET エンジン (Microsoft Access および FoxPro に付属) の任意のバージョンをシステムにインストールしておけば,BDE で MSACCESS ドライバを使って Microsoft Access テーブルを開いたり作成したりできるようになりました。
ODBC 3.0 のサポート
新しい BDE は ODBC 3.0 ドライバをサポートします。
BDE Provider のサポート
Delphi の新しい分散 DataSets は BDE Provider 技術を使用しています。
データディクショナリの拡張機能
データディクショナリはドメインとテーブルの制約を格納できるようになりました。これらの制約はリモート DataSets を使ってクライアントに伝えることも,BDE カーソルを使って強制的に適用することもできます。
BLOB および長い文字列 (255 文字を超える文字列) のパラメータ結合のサポート
BDE では BLOB と 255 文字を超える長い文字列のパラメータ結合が可能になりました。詳細については BDE32.HLP にある DbiQSetParams の説明を参照してください。
Oracle 7.3 ストアドプロシージャ
Oracle 7.3 ストアドプロシージャは結果セットを返せるようになりました。
SQL モニタ
SQL モニタは SQL トランザクションの詳細を表示できるようになりました。
環境設定可能な BLOBキャッシング
SQL データベースエクスプローラを使って BDE の BLOB キャッシングを設定できるようになりました。
分散データセット
新しいデータセットコンポーネント TClientDataSet を使うと,アプリケーションでデータベースに依存しないデータセットオブジェクトを作成できます。クライアントデータセットはスタンドアロンの単一層データベースアプリケーションで使えます。新しいリモートサーバーコンポーネント TMIDASConnection と一緒に使って,多層データベースアプリケーションのクライアント部分を作成することもできます。
COM のサポートと ActiveX の作成
VCL (ビジュアルコンポーネントライブラリ) コントロールから ActiveX コントロールを簡単に作成できるウィザードがあります。ActiveX コントロールは,既存の開発ツール (C++,Java,Visual Basic,PowerBuilder など) と一緒に使えます。ActiveForm ウィザードを使うと,Delphi フォームをほかの VCL コントロールを入れる ActiveX コントロールコンテナに簡単に変換できます。また,これらの ActiveX コントロールと ActiveForm を Web サイトで配布できます。組み込みコンポーネントオブジェクトモデル (COM: Component Object Model) がサポートされたので,再使用可能で異種言語間でも相互運用可能なビジネスオブジェクトを作成できます。
インターネットとイントラネットの開発
Client/Server 版をインストールしている場合,インターネットとイントラネット用のアプリケーションを簡単に構築できる新しいコンポーネントがいくつか用意されています。これらのコンポーネントが Web サーバーとのすべての通信を処理してくれるので,HTTP 通信プロトコルについては気にせずに,自分の Web サーバーアプリケーションのコンテンツに専念できます。専用のテーブルプロデューサがデータセットを表す HTML を作成し,ページプロデューサがその他の HTML コンテンツをまとめます。専用のサーバーアプリケーションまたはクライアントアプリケーションを構築する場合は,ソケットコンポーネントが低レベルの通信プロトコルを処理するので,自分のアプリケーションが提供するサービスに専念できます。
新しいデモ用アプリケーション
Delphi の Delphi 3\Demos\... ディレクトリに以下の新しいデモ用アプリケーションがインストールされています。
IDE のその他の拡張機能
DLL のデバッグ
DLL プロジェクトのデバッグ用に .EXE ファイルを指定して実行できるようになりました。[実行(R)|実行時引数(P)]を選択し,[ホストアプリケーション(A)]編集ボックスに .EXE ファイルの名前を入力します。
[ユニット出力ディレクトリ(U)]
[プロジェクト(P)|オプション(O)]ダイアログボックスの[ディレクトリ/条件]ページには,[ユニット出力ディレクトリ(U)]という編集ボックスが新しく追加されています。この編集ボックスではコンパイルしたユニットファイルを格納するディレクトリを指定します。プロジェクトのファイル .DLL と .EXE は従来の出力ディレクトリに送られます。
共有リポジトリディレクトリ
[ツール(T)|環境オプション(O)]で表示される[設定]ページには共有リポジトリディレクトリを指定する新しい編集ボックスがあります。この位置は Windows レジストリに格納されます。Delphi 2.0 では,Windows レジストリエディタで「HKEY_CURRENT_USER|Software|Borland|Delphi|2.0|Repository」キーに「BaseDir」という文字列値を作成して,この位置を手作業で変更しなければなりませんでした。
バージョン情報
Delphi プロジェクトにバージョン情報を入れられるようになりました。[プロジェクト(P)|オプション(O)]で表示される[プロジェクトオプション]ダイアログボックスの[バージョン情報]タブをクリックし,[バージョン情報を含める(V)]を選択します。プロジェクトを再コンパイルする前にバージョン情報を手作業で更新することも,[ビルド番号の自動更新(A)]オプションを選択することもできます。バージョン情報はプロジェクトの .EXE ファイルの[プロパティ]ダイアログボックスの[バージョン情報]ページに表示されます。
互換性の問題
Delphi 3 で取り入れられている変更の中には,Delphi 2.0 アプリケーションの調整を多少必要とするものがあります。詳細についてはバージョン 2 との互換性を参照してください。
VCL の拡張機能
グラフィックの拡張機能
Delphi のグラフィックサポートでは以下の機能が変更および拡張されています。
InitGraphics ルーチンは不要になり,graphics.pas から削除されています。
マルチスレッド操作用にスレッドセーフのサポートがグラフィッククラスに追加されています。
TCanvas には 2 つの新しいメソッド Lock と Unlock があります。Lock メソッドは描画キャンバスへのアクセスを占有することを宣言し,Unlock はそれを解除します。バックグラウンドスレッドからキャンバスに描画する前には,必ずキャンバスをロックしなければなりません。Paint メソッドや OnPaint イベントなどの通常の描画操作では,VCL は暗黙にキャンバスをロックして再描画を行います。
ビットマップオブジェクトは Assign 操作時だけスレッドを暗黙にロックします。複数のスレッドを同じビットマップオブジェクトに書き込む場合には,ビットマップへのアクセスを調停するためにビットマップのキャンバスをロックしなければなりません。
TBitMap には以下の新しいプロパティが追加されています。
TBitmap はメモリストリームではなく DIB 部を使うように拡張されています。この結果,システムのメモリ使用量が 50% 減り,ビットマップを変更しても元のファイルのピクセル形式を保存できるようになりました。
15bpp,16bpp,32bpp の各 BMP ピクセル形式のほか,ハイカラー BMP ファイルのオプションのカラーパレットも使えるようになりました。ハイカラービットマップに割り当てられたパレットは BMP ファイルに格納されました。ターゲット bpp がソース bpp よりも少ない場合はディザ式パレットやハーフトーンパレットも使えます。
ビットマップの読み込み時のパレットの実現コードが削除されました。これにより,フォームと 256 色のビットマップを一緒にロードしても画面のちらつきを防止できます。大規模アプリケーションではビットマップとフォームのロード時間が 10 分の 1 以下に短縮されました。
TGraphic には新しいプロパティが 2 つあります。この結果,TBitmap だけでなくグラフィックオブジェクトもパレットや透過の設定が可能になりました。
TImage では TBitmap のパレットと透過の設定を前提とはしなくなりました。そのかわりに TGraphics の汎用プロパティ Palette と Transparent を使います。必要であれば,TImage.PictureChanged がパレットの実装を開始します。
デシジョンコンポーネント
Delphi Client/Server には,データを分析しやすくする新しいコンポーネントグループが追加されています。このコンポーネントには,TDecisionCube (データセットからクロス集計データをキャッシュ処理する多次元配列),TDecisionQuery (デシジョンキューブを簡単に使えるようにする特殊なデータセットオブジェクト),TDecisionSource (デシジョンキューブのデータのピボット状態を表す),TDecisionGrid (デシジョンソースのクロス集計データを表示),TDecisionGraph (デシジョンソースデータを動的グラフ形式で表示) があります。
ボタンコンポーネントとツールバーコンポーネント
新しいコンポーネントとプロパティは,ボタンとツールバーの構築用の追加オプションを提供します。[Win32]パレットページにある TToolBar と TCoolBar により,実行時のボタンの位置合わせに対する制御が改善されています。TToolBar の Flat プロパティを True に設定すると,ツールバーの下から透けてグラフィックスが表示されます。TSpeedButton の Flat プロパティを使うと,ユーザーがマウスを使ってボタンを指し示すまでボタンの枠は表示されません。
TToolBar と TCoolBar の機能については,Delphi CD の Demos\Coolstuf ディレクトリにある Webbrows デモ用アプリケーションを参照してください。このアプリケーションは Demos\Internet\Html にある Webbrows デモ用アプリケーションに似ていて,TAnimate コンポーネントの機能も示しています。
TDateTimePicker
新しいビジュアルコンポーネント TDateTimePicker は日付や時刻を入力するためのリストボックスを表示します。TDateTimePicker を使うには,最新バージョンの COMCTL32.DLL が必要です。なお,Windows NT 3.51 ではサポートされていません。
TThreadList
新しいクラス TThreadList はスレッドセーフなリストを作成します。これにより,明示的にロックすることなくオブジェクトの追加または削除ができます。
TPageControl と TTabControl
TPageControl と TTabControl には新しいプロパティ HotTrack,ScrollOpposite,TabPosition が追加されています。
HotTrack を True に設定すると,マウスポインタをタブに合わせたときにそのキャプションが強調表示されます。ScrollOpposite は,後の行にあるタブが選択されると,前の行にあるタブをコントロールの反対側に移動します。TabPosition はタブをコントロールの上部または下部のどちらに並べるか指定します。
TSplitter
新しいビジュアルコンポーネント TSplitter はコンポーネントパレットの[Additional]ページにあります。スプリッタを使うと,フォームを任意の長方形の領域に分割できます。この領域は,ユーザーが実行時にサイズ変更できます。
グラフコンポーネント
新しいビジュアルコンポーネントグループ TChart,TDBChart,TQRChart を使うと,フォーム上でグラフを作成できます。
QuickReport コンポーネント
新しいコンポーネントセット QuickReport にはレポートを簡単に作成できるエキスパートがあります。QuickReport 1.0 を使って作成したレポートは設計時にバージョン 2.0 に自動的に変換されます。
TStaticText
編集できないテキストコンポーネントです。Label コンポーネントに似ていますが,ウィンドウハンドルを持つ点が異なります。ウィンドウハンドルは,コンポーネントのアクセラレータキーがウィンドウコントロールに属していなければならないときに使われます。StaticText を ActiveX プロパティページで使うことで,アプリケーションの現在の状態をユーザーに知らせることが簡単にできます。
TOpenPictureDialog と TSavePictureDialog
2 つの新しいコモンダイアログボックスコンポーネント TOpenPictureDialog と TSavePictureDialog は[Dialogs]パレットページにあります。これらのコンポーネントは,TOpenDialog や TSaveDialog と同じように動作します。ただし,選択したグラフィックファイルを開いたり保存したりする前にそのファイルを表示する「プレビュー」領域が追加されています。
IconFont,UpdateMetricSettings,CMSysFontChanged
IconFont プロパティが TScreen に,UpdateMetricSettings プロパティが TApplication にそれぞれ追加されています。これらのプロパティを使うと,アプリケーションは Windows 95 の[画面のプロパティ]の設定を利用できます。
IconFont は Windows 95 のアイコンフォントの設定を格納します。UpdateMetricSettings が True の場合 (デフォルト),設定が変更されると IconFont は最上位レベルのフォームにそれを通知します。
TControl には新しいプロパティ DesktopFont が追加されています。DesktopFont が True の場合,TControl は CMSysFontChanged イベントを実装して Font プロパティをリセットします。
TOleContainer
TOleContainer には新しいパブリッシュプロパティ AllowActiveDoc が追加されています。AllowActiveDoc を True に設定すると,ActiveDoc (DocObject) を OleContainer に挿入できます。これにより,埋め込みオブジェクトが ActiveDoc インターフェースを要求したときに OleContainer が応答できるようになります。
TClientDataSet
TClientDataSet を含めた新しいコンポーネントは多層データベースアプリケーションで使います。
Demos\Midas\Empedit にあるデモ用アプリケーションは TClientDataSet を使って編集可能な従業員テーブルを作成します。クライアントアプリケーションは EMPEDIT.DPR に,サーバーアプリケーションは SERVER.DPR です。
Demos\Midas\Mstrdtl にある別のデモアプリケーションは,TClientDataSet を使ってプロジェクトマネージャを作成します。クライアントアプリケーションは CLNTPROJ.DPR に,サーバーアプリケーションは SERVER.DPR です。サーバーアプリケーションをコンパイルして実行してから,クライアントを実行する必要があります。
DBRichEdit
DBCtrls ユニットにある TDBRichEdit コンポーネントを使えば,ユーザーはメモ型項目または BLOB 項目に書式付きテキスト形式 (RTF: Rich Text Format) でデータを表示または入力できます。
TDBRichEdit = class(TCustomRichEdit)
データセットを特定するデータソースコンポーネント (TDataSource) をメモの DataSource プロパティの値として指定して,TDBRichEdit インスタンスをそのデータセットにリンクします。アクセスするデータセット内の項目を DataField プロパティの値として指定します。TDBRichEdit をデータソースに接続する方法についての詳細は,TDBMemo の説明を参照してください。
アプリケーションは,書式設定機能をユーザーに提供するために必要なユーザーインターフェースコンポーネントをすべて実装しなければなりません。Demos\RichEdit ディレクトリにある RichEdit デモ用アプリケーションを参照してください。
DBCtrlGrid
BLOB キャッシングをサポートできるようになったので,DBCtrlGrid に DBImage コントロールまたは DBMemo コントロールを入れられるようになりました。
TDBCtrlGrid には新しいプロパティが追加されています。
Delphi 4
新しい言語拡張
Delphi 4 では,動的配列,メソッドのオーバーロード,デフォルトパラメータ等を扱えるように Object Pascal 言語が拡張されました。
動的配列
Delphi 4 では動的配列を宣言できるようになりました。
メソッドのオーバーロード
オブジェクトは,同じ名前の複数のメソッドを持つことができるようになりました。これはメソッドのオーバーロードと呼ばれます。同じ名前を持つ複数のメソッドは,その引数に指定した異なる型宣言で識別できなければなりません。オーバーロードされたメソッドは,キーワード overload でマークが付けられます。
デフォルトパラメータ
手続きおよび関数にデフォルトパラメータを設定できるようになりました。
64 ビット整数型
汎用整数型(32 ビット Longint)で扱うには大きすぎる整数値を扱うには,Int64 を使います。Int64 は,-2^63~2^63-1(約 -9×10^18~9×10^18)の範囲の値を表現できる64 ビット整数です。
整数引数をとるほとんどの標準ルーチンは,Int64 値を 32 ビットに切り捨てます。ただし,High,Low,Succ,Pred,Inc,Dec,IntToStr,および IntToHex ルーチンは完全に Int64 引数をサポートし,Round および Trunc 関数は Int64 値を返します。Int64 をサポートするために,新しい 2 つの関数 StrToInt64 および StrToInt64Def が追加されました。一部のルーチン(Ord を含む)は,Int64 値をまったく扱うことができません。
32 ビット符号なし整数型
Delphi 4 では,真の 32 ビット符号なし整数型として,0 ~ 4294967295 の範囲を持つ LongWord が採用されました。汎用型 Cardinal は LongWord と同義になりました。
Real 型に対する変更
これまで 48 ビットの浮動小数点値を表現していた Real 型は,64 ビット Double 型と同じになりました。この変更により Double が Intel CPU ファミリーと互換性を持つようになったため,パフォーマンスが向上します。Real 型のプロパティは publish 可能になりました。
委任によるインターフェースの実装
新しい implements 指令により,インターフェースの実装をプロパティに委任することができます。
プロジェクトマネージャ
プロジェクトマネージャを使うと,関連する複数のプロジェクトを 1 つのプロジェクトグループにまとめることができます。プロジェクトグループを利用すると,多層アプリケーションの個々の層や,互いに連携しあう DLL や実行可能ファイルといった相互依存するプロジェクトを整理および操作できます。
プロジェクトマネージャでは,すべてのプロジェクトファイルがどのように関係付けられているかを視覚的に表示できます。また,表示されている任意のファイルを選択して右クリックすると,ファイルを開く,追加する,削除するといった多くのプロジェクト管理作業を実行したりプロジェクトをコンパイルすることができます。さらに,プロジェクトグループのプロジェクトの追加および削除,グループ内のすべてのプロジェクトの一括コンパイルといった操作もできます。
プロジェクトマネージャは,現在のプロジェクトに関連付けられているすべてのファイルを体系化します。このようなファイルは .DPR ファイルの uses 節に記述されています。プロジェクトマネージャはプロジェクトで変更のあったファイルを正しく追跡して更新するので,プロジェクトのソースコードを編集する代わりにプロジェクトマネージャを使ってプロジェクト関連タスクを実行します。
デスクトップの設定を保存すれば,プロジェクトを開くときにデフォルトでプロジェクトマネージャを表示できます。
クラス補完,モジュールナビゲータ,コードブラウザ機能を持つコードエクスプローラ
コードエクスプローラは,多くの手順を自動化することで暮らすの作成を容易にします。インターフェース部にメソッドのプロトタイプを入力すると,クラス補完機能が実装部にスケルトンコードを生成します。ユニットファイルやインターフェース部と実現部との間をすばやく移動できます。シンボルのツールチップヒント機能を使って任意の識別子に関する宣言情報を表示したあと,コードブラウザを使ってその宣言にジャンプできます。
クラス補完
クラス補完は,宣言しようとするクラスメンバのスケルトンコードを生成することによって,新しいクラスの定義を自動化する機能です。
モジュール間の移動
〔Ctrl〕+〔Shift〕とともに矢印キーを押すことにより,ユニットファイル内をすばやく移動できます。
コードブラウザ
コードエディタ内で,クラス,変数,プロパティ,メソッド,またはその他の識別子の名前の上に〔Ctrl〕キーを押しながらマウスポインタを移動すると,マウスポインタが手の形に変わり,識別子が強調表示されて下線が引かれます。そこでクリックすると,コードエディタはその識別子の宣言にジャンプし,必要に応じてソースファイルを開きます。識別子を右クリックして[定義の検索]を選択しても,同じことができます。
ドッキング可能なツールウィンドウ
ウィンドウのドッキングを行うと,プロジェクトを操作するときに画面スペースを最大限に効率良く使うことができます。[表示]メニューから任意のツールウィンドウを呼び出してそれをコードエディタに直接ドッキングして,コード入力およびデバッグ中に利用できるようにします。複数のツールウィンドウをドッキングしてタブ付きツールウィンドウにすると,画面スペースを節約できるだけでなくツールに簡単にアクセスできます。
向上したデバッグ機能
Delphi 4 では数多くのデバッグ機能が追加・改良されました。これらの機能を次に示します。
EXE,DLL,およびデバッグシンボルといっしょに構築されるパッケージのリモートデバッグのサポート
ローカルおよびリモートプロセスの両方に対応する複数プロセスデバッグのサポート。モジュールビューとスレッドビューがマルチプロセス対応となりました。これらのビューはそれぞれ,各プロセスに属すスレッドおよびモジュールといっしょにロードしたすべてのプロセスを表示します。
[表示|デバッグ|CPU]で表示されるCPU ウィンドウ。CPU ウィンドウは,たとえばプログラムスタック,レジスタまたは CPU フラグ,メモリダンプの内容,またはアプリケーションの機械語から逆アセンブルされたアセンブリ命令のような,アプリケーションの特定の低レベルな部分のデバッグに使用できます。
モジュールビューの 2 つの新しいペイン(1 つはソースファイル用,もう 1 つはエントリポイント用)。モジュール一覧ウィンドウには,これらのペインに対するコンテキストメニューも提供されています。
[表示|デバッグ|イベントログ]から選択されるイベントログ。イベントログは,プロセス制御メッセージ,ブレークポイントメッセージ,OutputDebugString からの出力メッセージ,およびウィンドウメッセージを示します。新しい[ツール|デバッガオプション]メニューの新しい[イベントログ]ページで,イベントログに対するオプションを設定できます。
[表示|デバッグ]から選択できる[ローカル変数]ビュー。ローカル変数ウィンドウは,デバッグモードにある現在の関数のローカル変数を表示します。
[実行]メニューに新しく追加された機能には次のものがあります。
[実行|実行時引数]メニューから表示されるダイアログボックスの,リモートデバッグ用の新しい[リモート]タブ。
[実行|インスペクト]。インスペクタウィンドウに表示される式の中でインスペクトしたい式を入力します。新しいデバッガチュートリアルでは,インスペクタの使い方を説明しています。
[実行|ブレークポイントの追加]メニューの拡張として,アドレスおよびデータブレークポイントのためのまったく新しいダイアログボックスが追加されました。ブレークポイント一覧ウィンドウの[プロパティ]コンテキストメニュー,CPU ビューの[プロパティ]コンテキストメニュー,コードエディタの[プロパティ]コンテキストメニューはすべて,[ブレークポイントの追加]ダイアログボックスとは異なる,ブレークポイントを追加または修正するための新しいダイアログボックスを持ちます。
他のメニューには次の追加・変更が加えられました。
デバッガには,[ツール|デバッガオプション]に次の 4 つのページに新しいオプションを持つ完全なサブメニューが追加されました。[一般],[イベントログ],[言語固有の例外],および[OS による例外]
[表示|デバッグ]メニューでは,デバッガ固有のすべての項目がデバッグウィンドウのサブメニューにグループ化されました。このメニューには上記の新しい CPU ウィンドウ,イベントログビュー,およびローカル変数ビュー機能が含まれます。
オンラインドキュメントに新しいデバッガチュートリアルが追加されました。
MTS のサポート
MTS は,分散化された COM アプリケーションにトランザクションサービス,セキュリティ,リソースプーリングを提供する堅固な実行時環境です。
Delphi には MTS オブジェクトを作成する MTS オブジェクトウィザードがあり,MTS 環境の利点を活用できるサーバーコンポーネントを作成できます。MTS は,COM クライアントおよびサーバー(特にリモートサーバー)の作成を容易にする基本サービスを数多く提供します。
MTS コンポーネントは多くの低レベルサービスを提供します。
ActiveX の拡張
Delphi 4 では数多くの ActiveX 機能が追加・改良されました。これらの機能を次に示します。
オートメーションウィザードは,任意のオートメーションサーバーオブジェクトのイベントをサポートするコードを生成できるようになりました。
データ指向の ActiveX コントロールは,VCL データセットと通信を行えるようになりました。
シェル拡張のような単純 COM オブジェクトを作成するために,新しい COM オブジェクトウィザードが提供されました。
COM フレームワーク全体がスレッドセーフとなりました。
タイプライブラリエディタは,IDL と Object Pascal の両方をサポートします。
VCL 拡張
Delphi オブジェクト階層は次のように拡張されました。
アクションリストは,ユーザーコマンドへの応答を集中化し,ユーザーコマンド(たとえばメニューやボタン)に応答するコントロールに対する制御を提供します。
Windows NT 用に開発を行う場合,TServiceApplication と TService を使ってサービスアプリケーションを作成できるようになりました。[新規作成]ダイアログボックスの 2 つのウィザードが作業の多くを処理します。
TControl と TWinControl が変更され,アプリケーションウィンドウのドッキングサポートを実装できるようになりました。
TControl が変更されて制約リサイジングが可能になり,ウィンドウが希望の体裁を保持するようになりました。
新しい TRegistryIniFile クラスにより,INI ファイルにも動作するコードを使ってレジストリを操作できるようになりました。Common 上位項目である TCustomIniFile に新しく別の下位項目 TMemIniFile が追加され,NT 上でアプリケーションが動作する場合でも INI ファイルの変更が必ずメモリにキャッシュされるようになりました。
TClientDataSet における拡張パラメータサポートに対応して,TParams のユニットが dbtables から db に変更されました。
中東諸国の言語などの,右から左へ読むテキストのサポートと,右側ではなく左側に表示される垂直スクロールバーのサポートにより,Mideast ロケールがサポートされるようになりました。
TObject に,BeforeDestruction と AfterConstruction の新しい 2 つのプロテクトメソッドが追加されました。BeforeDestruction は,オブジェクトのデストラクタの直前で自動的に呼ばれ,AfterConstruction は,オブジェクトのコンストラクタの直後で自動的に呼ばれます。下位クラスはこのようなメソッドをオーバーライドして,コンストラクタまたはデストラクタ自体で発生してはならない動作を実行することができます。たとえばカスタムフォームはこれらのメソッドをオーバーライドして OnCreate または OnDestroy イベントを生成します。この機能は Delphi と C++Builder の両方のコンポーネントを提供するコンポーネント作成者にとって非常に重要です。これによって Object Pascal と C++ におけるコンストラクタとデストラクタの動作の違いから発生する問題を避けることができます。
2000 年対応メンテナンスの RTL サポート
関数 StrToDate および StrToDateTime は,グローバル変数 TwoDigitYearCenturyWindow により 2 桁の年数の解釈を制御されます。この変数は,2 桁の年数を現在の世紀に含まれる年号と見なすか,または次の世紀の年号と見なすかを決めるための基準となる年を保持します。詳細については,
StrToDate 関数を参照してください。
TwoDigitYearCenturyWindow を使うと,データ入力の年数が 2 桁に固定されている古いプログラムを変更せずに 2000 年問題に対応することができ,アプリケーションの寿命を延ばすことができます。しかし正しい対応は年数を4 桁で管理するようにすることです
CORBA サポート
Delphi は,ウィザードとクラスを提供して共通オブジェクト要求ブローカーアーキテクチャ(CORBA:Common Object Request Broker Architecture)に基づく分散アプリケーションの作成を簡単にします。CORBA は,分散オブジェクトアプリケーションの開発に対する複雑さを軽減するためにオブジェクト管理グループ(OMG: Object Management Group)によって提唱された仕様です。
名前が示すとおり,CORBA は分散アプリケーションを作成するためのオブジェクト指向のアプローチを提供します。これは,インターネットサーバーアプリケーションの作成に記述されているような HTTP アプリケーション用のメッセージ指向のアプローチと対照を成すものです。CORBAでは定義されたインターフェースを使って,クライアントアプリケーションが遠隔から使用できるオブジェクトをサーバーアプリケーションが実装します。
クライアントデータセットの拡張
TClientDataSet は,ボーランドデータベースエンジン(BDE)の接続性サポートなしで機能するように設計されたデータセットコンポーネントです。かわりに,DBCLIENT.DLL を使います。これのほうがずっと小さく,インストールと環境設定が簡単です。データベース接続がないので,クライアントデータセットと一緒にデータベースコンポーネントを使うことはありません。
多層サポート
Delphi 4 では,多層アプリケーションに対してより細かな制御を行うことができるようになりました。これらの機能を次に示します。
データパケットに含まれる要素と更新の適用方法に関する細かな制御
ネストしたテーブルを使ったマスター/詳細サポート
ブローカ接続のフック
クライアントデータセットの拡張により,アプリケーションサーバーにパラメータを渡したり,データパケットにカスタム情報を保存できるようになりました。
サーバーインターフェースの呼び出しが容易になりました。
新しいクラス TDataSetProvider により,データセットの解決が可能になりました。
各種の接続コンポーネントにより,クライアントアプリケーションはアプリケーションサーバー(データブローカ)に接続できます。
ソケットサーバーがコールバックをサポートするようになりました。また新しいバージョンのソケットサーバーアプリケーション(ScktSrvr.exe)は,NT サービスとして実行可能です。サービスアプリケーションは ScktSrvc.exe で,-install(サービスのインストール)と -uninstall(サービスのアンインストール)の 2 つのコマンドラインオプションをサポートします。トレイアイコンを右クリックして,ScktSrvc.exe の環境設定を行うことができます。
データベース拡張
テーブルコンポーネントが拡張され,フォームデザイナからテーブルを作成,リネーム,削除できるようになりました。デザイナでテーブルコンポーネントを選択して右クリックし,コンテキストメニューから目的のコマンドを選択します。テーブルを作成するときは,コレクションエディタとオブジェクトインスペクタを使って新しいテーブルのフィールド(FieldDefs プロパティ)およびインデックス(IndexDefs プロパティ)を記述します。
新しいボーランドデータベースエンジン(BDE)は,Access 97 と Cracle8 をサポートしています。
Delphi 4 は,ADT(Abstract Data Types),配列,参照,およびネストテーブルを含む,SQL 対応の新しい Cracle8 拡張をサポートしています。新しい TField 型,TADTField,TReferenceField,TDataSetField,およびTArrayField がこれらの拡張をサポートします。Grid コンポーネントが拡張され,ADT およびネストテーブルの表示がサポートされました。
ビジュアルクエリービルダに代わり,まったく新しいインテリジェントなクエリービルダである SQL ビルダが導入されました。
Delphi 5
データベース機能の強化
ADOExpress
Delphi 5 では,Microsoft の ActiveX Data Objects(ADO)を介してデータにアクセスするための新しいコンポーネントが追加されました。ADO は,すべての種類のデータに対する Microsoft の高レベルインターフェースです。Microsoft のデータアクセステクノロジーに対するこのアプリケーションレベルインターフェースは OLE DB と呼ばれます。OLE DB は,リレーショナルデータベース,非リレーショナル,電子メールおよびファイルシステム,テキストおよびグラフィック,およびカスタムビジネスオブジェクトなどの,すべてのデータソースに対する高速なアクセスを提供します。
Delphi の新しいコンポーネントはボーランドデータベースエンジン(BDE)を必要とせず,既存のデータベース対応のコントロール(たとえば DBGrid および DBEdit)を介して ADO テクノロジーを使用したデータアクセスを提供します。これらのコンポーネントを使用する場合は,ADO/OLE-DB ランタイムがインストールされていなければなりません。
データモジュールデザイナ
データモジュールデザイナは,データモジュールを作成したり保守するために使います。データモジュールデザイナは,[ファイル|新規作成|データモジュール]を選択するか,または既存のデータモジュールを再び開くと表示されます。
InterBase Express
Delphi 5 では,InterBase Express(IBX)を介してデータにアクセスするための新しいコンポーネントが追加されました。IBX アプリケーションは,豊富な機能と高速処理を誇り,標準コンポーネントでは実現不可能だった高度な InterBase 機能へのアクセスを提供します。IBX は,InterBase 開発者のニーズに応えるとともに,InterBase 5.5 以降への最高のパフォーマンスを持つコンポーネントインターフェースを提供するように設計されています。
IBX は,カスタムデータアクセス Delphi コンポーネントアーキテクチャに基づいており,Delphi 5 のデータモジュールデザイナに統合されています。したがって,従来のデータアクセスコンポーネントに慣れている方であればすぐに使いこなせるようになります。
IBX は,Delphi の豊富なデータベース対応コンポーネントのライブラリとの互換性があります。ボーランドデータベースエンジン(BDE)は必要ありません。
MIDAS の機能強化
ステートレスデータブローカ
ステートレスリモートデータモジュールをサポートするために,MIDAS アプリケーションをサポートするアーキテクチャが変更されました。新しいアーキテクチャには,以前のアーキテクチャに比べて重要な改良点があります。自分でカスタムインターフェースを作成しなくても,MTS サーバーや共有リモートデータモジュールのインスタンスを書くことができるようになりました。新しいアーキテクチャでは,メッセージのトラフィックを減らすことでパフォーマンスを向上させています。クライアントアプリケーションからアプリケーションサーバーへのそれぞれの呼び出しでより多くの情報が伝えられるため,必要な呼び出しの数が少なくなります。新しいインターフェースにより,クライアントアプリケーションがアプリケーションサーバーを呼び出すごとにアプリケーション固有の情報を転送するのが容易になります。
InternetExpress アプリケーション
インターネットアプリケーションを構築するためのコンポーネントを含む新しい[InternetExpress]ページがコンポーネントパレットに追加されました。InternetExpress アプリケーションは,インターネットを介して MIDAS ベースの多層アプリケーションをクライアントに配布するための手段を提供します。
InternetExpress アプリケーションを作成するには,アプリケーションサーバーへのクライアントとして動作すると同時に,同じマシンの Web サーバーでインストールされた Web サーバーアプリケーションとしても動作する,特殊な Web アプリケーションでクライアント層を置き換える必要があります。
制約およびデフォルト
制約およびデフォルト値は,TField のプロパティまたは TCheckConstraint を使用して TClientDataSet に置かれたときに機能するようになりました。
Web 接続コンポーネント
新しい接続コンポーネント TWebConnection は,HTTP を使用してクライアントとアプリケーションサーバー間の接続を確立します。このコンポーネントは HTTP プロトコルを使用するため,ファイアウォールを介した接続や,または HTTPS によって提供される SSL セキュリティにこのコンポーネントを使用することができます。
プーリング
リモートデータモジュールのプーリングが可能になりました。
ソケットサーバー
このリリースでは,ScktSrvc.exe と ScktSrvr.exe が ScktSrvr.exe に統合されました。ScktSrvr.exe は,サービスとして実行することが可能です。
TDataSetProvider
TDataSetProvider は,更新をデータセットだけでなくデータベースサーバーにも直接適用できるようになりました。データセットコンポーネントは,データセットプロバイダに対して動作するのを可能にするインターフェースを実装します。これにより,TDataSetProvider は,すべての種類のデータセット(クライアントデータセットやカスタムデータセットのほかに,BDE 対応,
InterBase Express,または ADO ベース)に対して動作します。TDataSetProvider は,ボーランドデータベースエンジン(BDE)または DBOLE を必要としません。新しいアプリケーションでは,TProvider コンポーネントの代わりに TDataSetProvider を使用しなければなりません。TProvider コンポーネントは,下位互換性を維持するためにのみ提供されます。
CORBA の変更
CORBA がアップグレードされ,VisiBroker for C++ ORB バージョン 3.32 に対応しました。CORBA クライアントがクライアント接続を維持する際にサーバーへ接続可能かどうかの確認メッセージを送ることがなくなったため,メッセージのトラフィックも少なくなりました。接続は,非アクティブ状態が長時間にわたって続いた場合に自動的にタイムアウトになります。
開発環境の機能強化
To-Do リスト
To-Do リストは,プロジェクトにおいて行わなければならない事項を記録します。プロジェクトに関連する項目を直接 To-Do リストへ追加できるほかに,特定の項目をソースコードに埋め込むこともできます。
カスタマイズ可能なデスクトップ設定
デスクトップの設定をカスタマイズして保存することができます。IDE のデスクトップツールバーには,利用可能なデスクトップレイアウトの選択リストと,デスクトップを簡単にカスタマイズするための 2 つのアイコンがあります。
オブジェクトインスペクタでのプロパティのカテゴリ
オブジェクトインスペクタで,カテゴリ別にプロパティおよびイベントを表示したり,フィルタを適用することができるようになりました。プロパティにフィルタを適用することにより,オブジェクトインスペクタに表示されるプロパティの数を減らし,その時点において対象となるプロパティだけに注目することができます。また,カテゴリ別にプロパティを表示することで,関連プロパティを簡単に探すことができます。たとえばアプリケーションを他の国用にローカライズする場合,Localizable を除くすべてのカテゴリのチェックマークをはずすことにより,ローカライズが必要なプロパティだけを表示することができます。
オブジェクトインスペクタのドロップダウンリストでのイメージの表示
オブジェクトインスペクタは,オーナー描画をサポートしてプロパティのカスタムレンダリングをサポートするようになりました。その結果,カーソル,ブラシタイプ,色,イメージリストなどのイメージを含むプロパティのドロップダウンリストにそのイメージを表示できるようになりました。ユーザーは特に変更を加えなくても,イメージの多くはデフォルトでオブジェクトインスペクタに表示されます。ただし,ImageIndex プロパティによって参照されるイメージを表示する場合は,そのイメージリストを保持しているプロパティを,そのイメージを含んでいるイメージリストに設定する必要があります。
新しいデバッグ機能
新しいデバッグビュー
新しいデバッガウィンドウとして,CPU の浮動小数点ユニットの内容を表示する FPU ウィンドウ が追加されました。FPU ウィンドウは,レジスタの値,ステータス,コントロール,およびタグワードを表示します。浮動小数または MMX 情報を FPU ウィンドウに表示することができます。この機能は,Delphi の Learning 版では提供されません。
ブレークポイント機能
ブレークポイントアクションは,ブレークポイントに達したときにブレークポイントが行える各種の機能を提供します。
ブレークポイントグループを使用すると,ブレークポイントをグループ化して,グループ単位でまとめて使用可/不可にすることができます。
ブレークポイントのプロパティ,関連付けられたアクション,およびグループ名は,ツールチップに表示されます。コードエディタの左マージンにあるブレークポイントのグリフにカーソルをポイントします。ブレークポイントのパスと状況を表すツールチップが表示されます。
ブレークポイント一覧ウィンドウには,各ブレークポイントに関連付けられているアクションとそのグループ名(もしあれば)を表示するカラムが追加されました。
新しいデバッグコマンドおよびオプション
[実行|プロセスにアタッチ]コマンドは,すでに IDE の外で実行されているプロセスをデバッグします。このコマンドを選択すると,アクティブプロセスの一覧が表示されます。デバッグセッションにアタッチするいずれかのプロセスを選択します。
[実行|呼び出し元に戻るまで実行]コマンドは,現在のルーチンが呼び出し元へ復帰するまでプログラムを実行します。このコマンドは,デバッグする必要のないルーチンに誤ってシングルステップ実行を使用してしまった場合や,または現在のルーチンが希望どおりに動作することが分かっていて残りのコードにシングルステップ実行を使用したくない場合に便利です。
[実行|監視式の追加]を選択したときの監視式の[副作用を許す]オプション。
[実行|評価/変更]コマンドにより表示される[評価/変更]ダイアログボックスに[監視]ボタンが追加され,現在の式に対して監視式を作成できるようになりました。
[実行|評価/変更]コマンドにより表示される[評価/変更]ダイアログボックスに[インスペクト]ボタンが追加され,現在の式に対して新しいインスペクタを作成できるようになりました。
デバッガの操作性の向上
デバッグ機能にドラッグアンドドロップのサポートが追加されました。
デバッグ中には,エディタから,監視式一覧ウィンドウ(その式に対する監視式を作成します),デバッグインスペクタ(式の内容をインスペクトする),または CPU ウィンドウ(ペインを式のアドレスに位置付けます)のスタックペインおよびダンプペインへ,任意の式をドラッグすることができます。デバッグ中以外は,〔Alt〕キーを押しながらデバッガウィンドウにドラッグアンドドロップする必要があります。
監視式一覧ウィンドウで右クリックすると,現在強調表示されている式に対してデバッグインスペクタを表示することができます。
[スレッドの状態]ビューで,プロセスを右クリックして[プロセスオプション]を選択すると,そのプロセスに対して一時的なデバッグオプションを設定できます。
モジュールウィンドウのエントリポイントペインで,エントリポイント別またはアドレス別にソートを行うことができるようになりました。
CPU ウィンドウでは,呼び出しまたはジャンプの方向を示す緑色の矢印が余白に表示されます。
デバッグウィンドウの多くで,複数項目の選択とクリップボードのサポートが提供されました。
デバッガの新しいイベントログオプション[イベントにプロセス情報を追加]を使用すると,イベントを生成したプロセスのプロセス名および OS プロセス ID を表示するかどうかを選択できます。このオプションは,デフォルトでオンに設定されています。
デバッグ情報は,デバッグディレクトリの DCU に含められるようになりました。
プロジェクトマネージャの新機能
プロジェクトマネージャにいくつかの機能が追加され,多くのファイルや複数のプロジェクトをプロジェクトグループに含む大規模なアプリケーションでのファイルの管理が容易になりました。
プロジェクトのアクティブ化
コンテキストメニューで利用可能なコマンドのような特定の操作は,アクティブプロジェクトに対して作用します。アクティブプロジェクトとは,プロジェクトマネージャ内で太字で強調表示されているプロジェクトであり,現在ユーザーが作業しているプロジェクトを表します。アクティブプロジェクトは,プロジェクトセレクタにも表示されます。
フォームやコードファイルなどのプロジェクト項目を表示すると,プロジェクトマネージャはその項目が属すプロジェクトを自動的にアクティブプロジェクトにします。
プロジェクトセレクタ
プロジェクトマネージャ上部のプロジェクトセレクタを使用すると,プロジェクトグループからプロジェクトを簡単に選択できます。現在のプロジェクトグループに含まれるすべてのプロジェクトがドロップダウンリストに表示されます。選択したプロジェクトはアクティブプロジェクトとなります。
ドラッグアンドドロップによるコピー
任意の Windows フォルダで選択した 1 つまたは複数の項目をドラッグして,プロジェクトマネージャ内のプロジェクトへドロップできます。
コピーと貼り付け
プロジェクト間でプロジェクト項目をコピーすることができます。
[削除]ボタン
プロジェクトマネージャツールバー上の[削除]ボタンは,選択されている項目を削除します。プロジェクトが選択されている状態で[削除]をクリックすると,プロジェクトおよびそれに含まれるすべての項目が現在のプロジェクトグループから削除されます。ファイルを 1 つ選択した状態で[削除]をクリックすると,そのファイルだけが削除されます。ファイルはディスクからは削除されません。単に現在のプロジェクトまたはグループから削除されるだけです。プロジェクトまたは項目を削除する前に,プロジェクトマネージャはその旨をユーザーに確認します。
また,(ドラッグアンドドロップまたは[プロジェクト|プロジェクトに追加]を使用して)別のタイプのファイルをプロジェクトに追加し,それをテキストファイルとしてエディタに表示することもできます。リソースファイルを追加することもできます。プロジェクトをコンパイルすると,リソースファイルは RES ファイルにコンパイルされてリンクされます。
エディタの機能強化
エディタに対して次の拡張が行われました。
カスタマイズ可能なエディタプロパティが,[ツール|エディタオプション]に集約されました。
Visual Studio のエミュレーションのための新しいエディタキーマップが追加されました。
カスタマイズしたキーマップモジュールや拡張モジュールを使用可能にする,[キーの割り当て]タブが新しく追加されました。
Open Tools API 拡張を使用することにより,まったく新しいキーマップモジュールと IDE のすべてのホットキーを組み合わせてキー結合をカスタマイズしたり,または拡張モジュールを作成していくつかのキーを置き換えることができます。
キー結合を完全にカスタマイズした例と,一部のキーを置き換えた例が,Demos\ToolsAPI\Editor Keybinding に用意されています。IDE Classic はキー結合を完全にカスタマイズした例で,新しいキーが既存の機能に結合されています。Buffer List は一部のキーを置き換えた例で,バッファリストを表示する機能をホットキー(〔Ctrl〕+〔B〕)に追加しています。[ツール|エディタオプション]の[キーの割り当て]タブを使用して,上記のサンプルをロードすることができます。
新しいプロジェクトブラウザ
プロジェクトブラウザは,プロジェクトで宣言または使用されているユニット,クラス,型,プロパティ,メソッド,変数,およびルーチンを表示します。プロジェクトブラウザでは次の操作を行えます。
クラス階層をツリー図に表示する
プロジェクトに含まれているか使用されているユニットを一覧表示する
プロジェクトで宣言または使用されている識別子を表示する
ソースコード中の宣言および参照を見つける
IDE コマンドラインオプション
特にデバッグに便利ないくつかの新しいオプションを使用して,コマンドラインから IDE を起動することができます。
ヘルプメニューの変更
Delphi の[ヘルプ]メニューでは,ヘルプシステムが 3 つの領域に分けられました。
新しいアプリケーションウィザード
2 つのウィザードが追加され,コントロールパネルアプレット([ファイル|新規作成]で[コントロールパネルアプリケーション]または[コントロールパネルモジュール]を選択)およびコンソールアプリケーション([ファイル|新規作成]で[コンソールアプリケーション]を選択)の作成が容易になりました。
テキストとして保存されるフォーム
フォームファイル(DFM)は,デフォルトでバイナリではなくテキストとして保存されるようになりました。フォームを右クリックして[テキスト形式 DFM]のチェックを外すと,フォームはバイナリとして保存されます。[ツール|環境オプション]の[設定]ページで[テキスト形式で作成]のチェックを外しておくと,フォームはバイナリで保存されます。
フォームの自動作成オプション
フォームを自動的に作成するかどうかを指定するオプションが[ツール|環境オプション]の[設定]ページに追加されました。このオプションを使用するためには,自動作成されたフォームが 1 つ以上なければなりません。このオプションのチェックを外した場合,プロジェクトに追加されたフォームは,[自動作成の対象]リストではなく[選択可能なフォーム]リストに追加されます。[プロジェクト|オプション]ダイアログボックスの[フォーム]タブを使用すると,フォームが追加されるリストを変更することができます。
VCL の機能強化
コモンコントロールの更新
TToolbar のカスタム描画サポート。
ワークエリアでのリストビューのサポート(TListView)。
レポート形式のリストビューでのサブ項目イメージ(TListView)。
クリックせずにリストビュー項目を選択することを可能にする新しい HoverTime プロパティ(TListView)。
リスト内のすべての項目での InfoTip(ヘルプヒントとも呼ばれます)のサポート(TListView)。
新しい OnColumnRightClick イベント(TListView)。
ヘッダーセクションのドラッグアンドドロップによる並べ替えを可能にする DragReorder(THeaderControl)。
新しい OnSectionDrag イベント(THeaderControl)。
リスト内の個々の項目をプログラム的に使用可/不可にする,新しい ItemEnabled プロパティ(TCheckListBox)。
新しい「高度な」カスタム描画イベントが TTreeView,TListView,および TToolBar に追加されました。。
Web 拡張
新しいコンポーネント TWebBrowser を使用すると,(インターネットエクスプローラ 4.0 以降を使用して)ブラウザのページをアプリケーションに埋め込むことができます。設計時は,TDataSetTableProducer および TQuerySetTableProducer コンポーネントのレスポンスエディタおよび Web ページエディタが TWebBrowser を使用して,ブラウザにページをプレビュー表示します。
TWebActionItem の新しい Producer プロパティにより,Web サーバーアプリケーションの作成が容易になりました。この新しいプロパティを使用すると,HTML コンテンツプロデューサを Web アクション項目に関連付けることにより,アクション項目が実行されると HTML コンテンツプロデューサがレスポンスメッセージの内容を自動的に更新するように設定できます。
ページプロデューサに StripParamQuotes プロパティが追加されました。これにより,タグに追加されたオプションの前後に引用符を自動的に挿入する HTML エディタに対応する機能が提供されます。
ISAPI/NSAPI DLL を構築するときにパッケージを使用することができます。
カスタム描画イベント
新しい「高度な」カスタム描画イベントが TTreeView,TListView,および TToolBar に追加されました。これらのイベントは既存のイベントと同じ名前を持ちますが,「Advanced」という語がその前に付けられています。すなわち,OnCustomDraw に加えて OnAdvancedCustomDraw というイベントがあり,OnCustomDrawItem に加えて OnAdvancedCustomDrawItem というイベントがあります。
Advanced カスタム描画イベントは,既存のイベントに比べて(ペイント前ステージ以外でも)よりひんぱんに発生するという点が異なります。イベントハンドラには,ペイントプロセスの現在の状態(prepaint,postpaint,preerase,または posterase)を示すパラメータが追加されています。
コントロールパネルアプレットウィザードコンポーネント
新しいオブジェクト TAppletApplication および TAppletModule は,Windows コントロールパネルのアプレットの設計を容易にするコントロールパネルアプレットウィザードをサポートしています。また,新しい例外クラス EAppletException が提供されました。
その他の VCL 拡張
InterBase Express
InterBase データベースのデータにアクセスする手段を提供する,データアクセスコンポーネントの新しいセットです。
ADOExpress
Microsoft の ActiveX Data Objects(ADO)を介したデータのアクセスをサポートする新しいコンポーネントが追加されました。
カスタム制約
TClientDataSet は,(TField のプロパティまたは TCheckConstraint を使用して)カスタム制約およびデフォルトを提供するようになりました。Constraints プロパティがパブリッシュされるようになり,レコードレベルの制約を保存できるようになりました。
TComServer.UIInteractive
TComServer に UIInteractive プロパティが新しく追加されました。このプロパティは,サーバーがユーザーに対してエラーメッセージを表示するかどうかを制御します。サービスとして動作している COM サーバーに対しては,False に設定できます。
Database コンポーネントの変更
TQuery を使用するオーバーヘッドなしで,TDatabase で SQL 文を実行できるようになりました。パブリック TDatabase.Execute メソッドを使用することができます。
BDE 対応データセットで AutoRefresh プロパティがサポートされました。AutoRefresh を True に設定した場合,レコードをポストするとデフォルト値および自動インクリメント値が自動的に(Refresh 呼び出しの必要なく)フェッチされます。
データベース対応グリッドにおけるマウスイベント
マウスイベントに応答できるように,TDBGrid は MouseDown,MouseMove,および MouseUp イベントをパブリッシュするようになりました。
新しい接続コンポーネント
新しい接続コンポーネント TWebConnection が追加されました。MIDAS の拡張を参照してください。
キーボードレイアウトプロパティ
TApplication に 2 つのプロパティ BiDiKeyboard および NonBiDiKeyboard が追加されました。これらのプロパティを使って,キーボードのレイアウトを指定することができます。
IDE からのイベントハンドラの設定
TApplicationEvents は,アプリケーションレベルのイベントをインターセプトする新しいコンポーネントです。IDE を使ってアプリケーションイベントのイベントハンドラを設定するのと同じ方法で,このコンポーネントを使用します。
スプリッタの新しいプロパティ
隣接オブジェクトがその最小サイズよりも小さくなるようにスプリッタをドラッグした場合の動作を指定する,新しい AutoSnap プロパティが TSplitter に追加されました。AutoSnap を True に設定した場合,上記の操作を行うと,隣接オブジェクトは高さ(または幅)ゼロにサイズ変更されます。AutoSnap を False に設定した場合,リサイズ動作は最小サイズで停止します。
新しいヘルプヒントおよびメニュー機能
TScreen に 2 つの新しいプロパティ HintFont および MenuFont が追加されました。これらのプロパティは,ヘルプヒントおよびメニュー項目のフォントをそれぞれ指定します。
TMenuItem.OnAdvancedDrawItem を使うと,状態情報(チェックマークの有無,デフォルト,淡色表示など)を含むオーナー描画のメニュー項目をレンダリングできます(OnDrawItem は選択か非選択かの情報しか提供しません)。
コンポーネント開発者は,TComponentEditor の新しい PrepareItem メソッドを使って,コンテキストメニューをより柔軟に管理できます。
メニューおよびメニュー項目に AutoHotKeys プロパティが追加されました。AutoHotKeys を maAutomatic に設定した場合,ホットキー(アクセラレータキーとも呼ばれます)がメニューに保持され,重複したホットキーは削除され,ホットキーを持たないメニュー項目に一意なホットキーが追加されます。
AutoLineReduction は,メニューから余計な分割線を取り除きます。TMenuItem にもいくつかの新しい機能が追加されました。
ポップアップメニューの呼び出し
OnContextPopup は,TControl の新しいプロパティです。このプロパティは,右クリック(またはキーボードによるコンテキストメニューの呼び出し)に応答して呼び出される WM_CONTEXTMENU メッセージに応答して呼び出されます,このイベントでは,自分で作成したメニューをポップアップさせたり,またはメニューの代わりにポップアップダイアログを表示することができます。
TPopupMenu.MenuAnimation を使用すると,Windows 2000 でのメニューの表示方法を設定できます。
ページコントロール機能
TTabSheet の Highlighted プロパティは,ページコントロールでページを強調表示できる新しいプロパティです。同時に複数のページを強調表示できます。
新しいコンテナクラス
新しい Contnrs ユニットでは,スタックとキューを管理するためのユーティリティクラスが導入されています。
デシジョンキューブのソースファイル
デシジョンキューブコンポーネントのソースファイルが Delphi 5 製品に添付されるようになりました(\Source\Decision Cube ディレクトリ)。
InternetExpress コンポーネント
コンポーネントパレットに[InternetExpress]ページが追加されました。このページは,インターネットアプリケーションを構築するためのコンポーネントを提供します。詳細については,MIDAS の拡張を参照してください。
新しい TRegistry.Access プロパティ
TRegistry.Access は,TRegistry,TRegistryIniFile,または TRegIniFile オブジェクトを使用してキーを開くときに使用するアクセスレベルを指定するための新しいプロパティです。Access プロパティを使用することで,Windows NT コンピュータ上で Administrator 権限がなくても HKEY_LOCAL_MACHINE を読み出すことができるという利点があります。
ESafecallException
ESafecallException は,safecall 呼び出し規約に関する問題に対して追加された新しい例外です。ESafecallException は,safecall 呼び出し規約を使用して宣言された,指定された COM インターフェースメソッドの例外処理を Delphi が提供できないときに生成されます。この例外が検出された場合,safecall を正しく処理する ComObj ユニットを使用するか,または safecall を使用しないことを検討する必要があります。
TIcon の改良
TIcon クラスに関して,複数解像度に対応したアイコンや 16 色以上の色を持つアイコンのサポートなどが追加されました。
TIcon のイメージセレクタロジックが更新され,複数解像度に対応したアイコンリソースのイメージ選択が改良されました。イメージをロードする前に,自分の好みの Width および Height を TIcon プロパティに割り当てることができます。これらの指定は,リソース内のどのイメージが「ベストマッチ」するかを判断するうえでのヒントになります。これにより,実際の表示においてアイコンイメージが間延びしたり縮んだりする可能性が低くなります。
VCL リファレンス(オンラインヘルプ)の変更
VCL リファレンスに,ユニットごとのクラスを説明するトピックが追加されています。オブジェクトのエントリでユニット名をクリックすると,そのユニット内のすべてのオブジェクトのリストが表示されます。
グローバルルーチンについても,ユニットと分類を示すトピックが追加されています。
新しいツール
TeamSource
TeamSource は,アプリケーション開発チームが共有の開発環境で行う毎日の作業を管理するうえで役立つワークフロー管理ツールです。ファイルの格納と取り出しにバージョン管理システムを使いますが,単純なバージョン管理を超えた働きがあり,並列のソース制御モデルを使うプロセスと連携して管理を行います。
国際化対応ツール
Delphi の一部のバージョンで提供される統合翻訳環境(ITE)は,ソフトウェアローカリゼーションおよび異なるロケールの同時開発を行うためのソフトウェアツール集です。ITE は IDE に統合され,アプリケーションの複数のローカライズバージョンを 1 つのプロジェクトの一部として管理することを可能にしています。。
ActiveX
ActiveX に対して次の拡張が行われました。
COM サーバーをコンポーネントとしてコンポーネントパレットにインストールできるようになり,ビジュアルな開発を行えるようになりました。IDE の[プロジェクト|タイプライブラリの取り込み]を使用して,COM サーバー(たとえば Microsoft Word や Excel)をコンポーネントとしてインストールできますコンポーネントは,サーバーの CoClass のデフォルトイベントを VCL イベント(IDE のプロパティインスペクタの[イベント]タブからアクセス可能)としてエクスポーズします。参照パラメータを持つイベントは,このリリースでは完全にまだ用意されていません。イベントはプロパティインスペクタに表示されますが,そのイベントを発生させるコードはコメントアウトされています。
数多くの COM サーバーコンポーネントが,コンポーネントパレットの新しい[Servers]タブに提供されています。これらのコンポーネントは,それが VCL コンポーネントであるかのように使うことができます。
HResult が unsigned int から signed int へ変更されました。
ActiveServerPage ウィザードが用意されました。IIS サーバーの[ASP]ページから起動すると,ユーザーリクエスト,レスポンス等を表す各種のインターフェースへのアクセスを持つオートメーションオブジェクトを作成できます。サーバーを作成する場合の構文を示すサンプル .ASP も生成することができます。
COM サーバーに関して,更新の適用を確認するダイアログが追加されました。このダイアログは,タイプライブラリエディタで CoClass インターフェースを変更したときに IDE によって CoClass 実装ファイルに加えられた変更を表示します。提示された変更は,その一部またはすべてを拒否することができます。
COM ファクトリに対してフリースレッドのサポートが追加されました。
COM オブジェクトウィザードに,オブジェクトのデフォルトインターフェースを OLEAUTOMATION としてマークするための新しいチェックボックスが追加されました。このフラグは,インターフェースを Type Library Marshaler によってマーシャリングすることを可能にします。それにより,カスタムインターフェースに対してプロクシースタブ DLL を使用する必要がなくなります。
Delphi は,Visual Basic で作成された分散仮想テーブルをサポートしています。Visual Basic で作成されたアクティブサーバーまたはアクティブコントロールをインポートする場合,Delphi はサーバーのインターフェースのギャップをすべて検出し,xxxx_TLB ファイルに生成されたインターフェース定義にダミーのエントリを挿入します。
Delphi 6
新しい IDE 機能
データモジュール
Delphi 6 のデータモジュールデザイナは,3 つの部分に分かれています。
[コンポーネント]ページに代わる,(Delphi 4 と同様の)標準データモジュール
データモジュールデザイナの左側ペインに代わる,オブジェクトツリー
[データダイアグラム]ページに代わる,[ダイアグラム]ページ
オブジェクトツリー
IDE の左上部分にあるツリービューは,フォーム,データモジュール,またはフレーム上のビジュアルコンポーネントと非ビジュアルコンポーネントの間の論理関係を表示するツリーダイアグラムです。
ツリービューは,オブジェクトインスペクタおよびフォームデザイナと連動します。したがって,これらの 3 つのツールのいずれかで項目を選択してフォーカスを切り替えると,ほかの 2 つのツール内でもフォーカスが切り替わります。さらに,コードエディタの[ダイアグラム]ページは,オブジェクトツリーから要素をドラッグアンドドロップするだけで動作します。
オブジェクトツリーには,次の機能が追加されています。
ツリービューはオブジェクトインスペクタの上に配置されます。ツリービューが表示されていない場合は,〔Alt〕+〔Shift〕+〔F11〕を押すか,または[表示|オブジェクトツリー]を選択すると表示されます。
ツリービューには,データモジュールのほかに,フォームおよびフレーム上のコンポーネントが表示されます。
ツリービューには,ビジュアルコンポーネントおよび非ビジュアルコンポーネントが表示されます。
新しいツールバーには,[新規追加],[削除],および[上/下に移動]ボタンが配置されています。これらのボタンは,コンポーネントのプロパティに作用します。たとえば,データセットコンポーネントを追加した場合,Aggregates プロパティを選択して[新規追加]ボタンをクリックすると,フィールドが追加されます。追加できるものが 2 種類以上ある場合,[新規追加]ボタンは,項目を選択するためのドロップダウンメニューを表示します。
追加のグリフは,たとえばビジュアルな親または子コンポーネント,非ビジュアルコンポーネント,または暗黙的または非暗黙的プロパティといった項目の種類を表します。たとえば,デフォルトセッションのように自動的に暗黙的に作成される項目は白黒で表されます。
従来は,コンポーネントのプロパティ値が設定されていないとき,赤色の円の中にグリフが表示されていました。今は,アイコンの左側に,黄色の円の中に赤色のクエスチョンマークが表示されます。
右クリックすると,データモジュールデザイナ内で表示されるよりも多くのオプションが表示されます。
コードエディタ
サーフェスデザイナ
コードエディタは,サーフェスデザイナ(パッケージローデッドカスタムビュー)をサポートするようになりました。これらのビューは,ステータスバーのタブまたはページとしてアクセスできます。唯一の組み込みビューは,標準[コード]ページです。Delphi のどの版を使用しているかに応じて,次のコードエディタページを使用できます。
[ダイアグラム]ページ(Professional 版および Enterprise 版)
コードエディタの[ダイアグラム]ページは,ビジュアルコンポーネントと非ビジュアルコンポーネントの間の関係を示すボックスとラインから構成されるダイアグラムを設定するためのビジュアルツールを提供します。[ダイアグラム]ページは,これらの関係を図式化して図にコメントを追加することが可能なので,ドキュメンテーションツールであると言えます。コンポーネントは,オブジェクトツリーからドラッグするまでは[ダイアグラム]ページに表示されません。
オブジェクトツリーで複数の項目を選択してそれらを一度に[ダイアグラム]ページにドラッグできます。
[ダイアグラム]ページの左側には,作成したそれぞれの図の名前と説明文を入力するための編集ボックスと,作成済みの図を選択するためのドロップダウンリストボックスがあります。
[ダイアグラム]ページの上部には,コネクタの関連付けおよびコメントブロックを操作するボタンのツールバーがあります。
プロパティコネクタは自動的にラベル付けされます。ラベルはページ上の任意の場所にドラッグできます。
プロジェクトに追加したそれぞれのデータモジュール,フォーム,またはフレームに関して図を作成できます。
[WebSnap]ページ
WebSnap を使って Web サーバーアプリケーションを作成する場合,Web ページモジュール内のコンポーネントは,HTML Script,HTML Result,Preview,XML Tree,および XSL Tree のページを生成します。
ドラッグアンドドロップタブ
コードエディタの上部のユニット選択タブは,ドラッグアンドドロップによって入れ替えることができます。たとえば About と TextEditor の 2 つのユニットがある場合に,About を TextEditor の右側にドラッグできます。
オブジェクトインスペクタ
インスタンスリストボックス
オブジェクトインスペクタの最上部に,インスタンスドロップダウンリストボックスが配置されました。
インスタンス一覧には,リスト内の(先頭にあるオブジェクトだけでなく)各オブジェクトのクラス名が表示されます。
コンポーネントには,フォームと同じ名前,またはフォーム上のデータモジュールと同じ名前を付けることができます。たとえば,ボタンコンポーネントを Form1 に追加し,そのボタンに Form1 という名前を付けることができます。この場合,どちらの名前もインスタンス一覧に表示されます。
インスタンスリストボックスでは,選択されたコンポーネントのツールチップが表示されます。コンポーネント名が長くてインスタンス一覧に収まらない場合に便利です。
インスタンスリストボックスは非表示にできます。
[プロパティ]ダイアログボックス
オブジェクトインスペクタのコンテキストメニューから,[プロパティ]ダイアログボックスを表示できるようになりました。[プロパティ]ダイアログボックスは,[ツール|環境オプション]を選択して[オブジェクトインスペクタ]ページをクリックしてもアクセスできます。このダイアログボックスには,いくつかの表示オプションが用意されています。
コンポーネント参照のインライン展開
コンポーネント参照のインライン展開により,参照されているコンポーネントを選択することなくそのプロパティおよびイベントを表示できます。
支援機能ツール
支援機能のコード補完,およびコードパラメータが改良されました。
コード補完
ルーチンの本体内の空白行上でコード補完機能を手動(〔Ctrl〕+〔Space〕)で呼び出すと,(現在のユニットで使用されていない場合でも)追加の RTL ユニットのシンボルがポップアップリストボックスに表示されるようになりました。
プロパティ読み取り/書き込み節から参照されるすべてのインターフェースメソッド宣言がフィルタで除外されます。リストボックスには,インターフェース型で宣言されたプロパティおよびスタンドアロンメソッドだけが表示されます。
コードエディタへの入力時にフィルタが適用されます。項目を選択すると,テキストは自動的に削除されます。
インターフェース部のクラス宣言内では複数の項目を選択できます。
継承および仮想メソッド,インターフェースメソッドおよびプロパティが表示されます。
ポップアップウィンドウのサイズを変更できます。
項目が色分けされるようになりました。たとえば,手続きはティールブルー,関数はダークブルーで表示されます。レジストリでデフォルトの色を変更できます。
uses 節内のすべてのユニットで同様の名前が付けられた定数に基づいて,WM_xxx,CM_xxx,および CN_xxx メッセージメソッドがサポートされます。
型宣言内で抽象メソッドが赤色で表示されるようになりました。ほかの支援機能のコンテキストにおける抽象メソッドは,すべて通常の手続きや関数の色で表示されます。
コードパラメータ
オブジェクトインスペクタのコンテキストメニューから,[プロパティ]ダイアログボックスを表示できるようになりました。[プロパティ]ダイアログボックスは,[ツール|環境オプション]を選択して[オブジェクトインスペクタ]ページをクリックしてもアクセスできます。このダイアログボックスには,いくつかの表示オプションが用意されています。
項目がパラメータ付きの手続きまたは関数である場合は,"(" が入力され,コードパラメータツールチップが即座に表示されます。
プロジェクトマネージャ
開かれているすべてのパッケージプロジェクトがプロジェクトマネージャに表示されるようになりました。これらのパッケージプロジェクト参照ノードを使うと,パッケージが現在のプロジェクトグループのメンバーでない場合でも,開いているパッケージへのナビゲーションや,アクティブプロジェクトの追跡を行えます。
[ファイル]メニュー
[ファイル]メニューの[ファイル|新規作成]メニューに,6 種類のプロジェクト([アプリケーション],[CLX アプリケーション],[データモジュール],[フォーム],[フレーム],および[ユニット])と,[新規作成]ダイアログボックスを呼び出す[その他]が表示されるようになりました。
[新規作成]ダイアログボックス
[新規作成]ダイアログボックス(オブジェクトリポジトリ)に,新しいウィザードおよびデータモジュールのための 3 つの新しいページが追加されました。
[WebSnap]。このページには,[WebSnap アプリケーション],[WebSnap データモジュール],および[WebSnap ページモジュール]が含まれています。
[WebServices]。このページには,[Soap サーバーアプリケーション],[Soap サーバーデータモジュール],および[WebServices インポータ]が含まれています。
[Corba]。このページには,[CORBA クライアントアプリケーション]および[CORBA サーバアプリケーション]が含まれます。これらのウィザードは,[ツール|CORBA IDL ファイルの再生成]を使って呼び出すこともできます。
[Internet]ツールバー
インターネットツールバーは,WebSnap Web サーバーアプリケーションの作成を支援する新しいツールバーです。このツールバーを表示するには,[表示|ツールバー|インターネット]を選択します。ツールバーのアイコンを使うと,[WebSnap アプリケーションの新規作成],[WebSnap ページモジュールの新規作成],および[WebSnap データモジュールの新規作成]の 3 つの新しいウィザードと,ページ外部エディタにアクセスできます。これらのボタンは,
WebSnap を使って Web サーバーアプリケーションを作成する際によく使用される機能に対応しています。
コンポーネントパレットの変更
[Additional]ページに,アクションリストを保守したり,カスタマイズしたメニューおよびツールバーを作成するための,アクションバンドコンポーネント(TActionManager,TActionMainMenuBar,TActionToolBar,TCustomizeDlg)が新しく追加されました。
CLX アプリケーション用に,[Win32]ページの代わりに[Common Controls]ページが追加されました。(Professional 版および Enterprise 版)
複数のモジュールを持つ Web サーバーアプリケーションを作成するためのコンポーネントを含んだ[WebSnap]ページが新しく追加されました。(Enterprise 版)
ネットワークまたは Web を介した多層アプリケーションを作成するための[WebServices]ページが追加されました(Enterprise 版)。
データベースコンポーネントパレットページにいくつかの変更が加えられました。(Professional 版および Enterprise 版)
COMAdminCatalog コンポーネントを含んだ[COM+]ページが新しく追加されました。(Professional 版および Enterprise 版)
3 つのインターネットプロトコルページ([Indy Clients],[Indy Servers],および[Indy Misc])が新しく追加されました。Internet Direct (Indy)コンポーネントは,ブロッキングソケットに基づくオープンソースのインターネットプロトコルです。(Professional 版および Enterprise 版)
キーマッピングモジュール
既存のキー割り当てモジュールに,Visual Basic エミュレーションキーバインディングセットが追加されました。
[環境オプション]ダイアログボックス
[ツール|環境オプション]ダイアログボックスに,4 つの新しいページが追加されました。
[デザイナ]ページ - [設定]ページにあったフォームデザイナのオプションが[デザイナ]ページに移動され,[拡張コントロールヒントの表示]オプションが追加されました。
[環境変数]ページ - システム環境変数を表示したり,上書きするユーザー変数を作成,編集,および削除できます。
[オブジェクトインスペクタ]ページ - 新しい[プロパティ]ダイアログボックスを使ってオブジェクトインスペクタの動作環境を設定できます。このダイアログボックスは,オブジェクトインスペクタを右クリックすると表示されるコンテキストメニューの[プロパティ]をクリックしても表示できます。
[インターネット]ページ - WebSnap アプリケーションで使用するファイルの種類およびスクリプトオプションを設定できます。(Enterprise 版)
[ディレクトリ]ダイアログボックス
[ライブラリパス]などの項目を編集するための[ディレクトリ]ダイアログボックスでは,無効なパスが灰色で表示されるようになりました。[不正なパスを削除]ボタンを使うと,無効なパスを削除できます。
コンテキストメニューの表示
フォーム上のオブジェクトやウィンドウを選択した状態,または IDE 内のいずれかの項目にフォーカスがあるときに〔Alt〕+〔F10〕を押すかまたは(Microsoft キーボードの)〔Menu〕を押すと,それに関連付けられているコンテキストメニューが表示されるようになりました。
設計時パッケージの作成
DesignIDE.dcp をパッケージの必要項目(requires)リストに追加する必要があります。
新しいインターネット機能
新しいコンポーネントが追加され,コンパイラに変更が加えられました。これにより,Web サービスアプリケーションを作成したり,SOAP を使って Web サービスにアクセスするクライアントアプリケーションの作成をサポートできます。これらのコンポーネントおよびそれをサポートするアーキテクチャについては,Web サービスを使うで説明します。
Web サービスのサポート
Delphi 6 には,従来の WebBroker 機能の変更や,WebSnap と呼ばれる新しい機能セットを含め,Web サーバーアプリケーションを構築するための新しいインターネット機能が含まれています。どのような種類のアプリケーションを構築するかについては,WebBroker と WebSnap についてを参照してください。
Web サーバーアプリケーションのサポート
Apache Web サーバー
WebSnap および WebBroker はどちらも,ISAPI,CGI,および WinCGI に加えて Apache Web サーバーをサポートします。
Web アプリケーションデバッガ
Web アプリケーションデバッガを使うと,HTTP リクエスト,レスポンス,およびレスポンス時間をモニタリングしたり,商用 Web サーバーをインストールせずに WebBroker および WebSnap アプリケーションを開発することができます。アプリケーションは Web サーバーからメッセージに応答して実行する必要があるので,Web サーバーアプリケーションのデバッグには困難が伴います。そこで,Web アプリケーションデバッガはこのメッセージをエミュレートします。
WebBroker の機能強化
WebBroker の強化点:
クロスプラットフォーム開発に対応した Web サーバーアプリケーションを作成できるようになりました。
Delphi 3,Delphi 4,および Delphi 5 の Web モジュールとの下位互換性があります。ただし,一部には制限があり,たとえば,古いプロジェクトでは uses ユニット名を追加/変更しなければならない場合があります。古いアプリケーションでは,複数の Web モジュールはサポートされません。
新しい WebSnap 機能
WebSnap は,Delphi 5 の WebBroker の機能に次のような新しい機能を追加したものです。
複数の Web モジュール
1 つの WebSnap アプリケーションで,複数の Web モジュールをサポートできます。すなわち,アプリケーションを複数のユニットに分割して,複数の開発者が互いに干渉しあうことなく同じプロジェクトで作業を進めることができます。これに加え,次の特徴があります。
複数のインスタンスが同時リクエストをサポートします。
モジュール間でコンポーネントの参照がサポートされます。
モジュールは,リクエストにサービスを提供するときやほかのモジュールから参照されたときに自動的に作成されます。
新しい Web モジュールウィザード
Web サーバーアプリケーションウィザードを使うと,必要なコンポーネントを含みカスタマイズされた Web モジュール
を使ってアプリケーションを作成できます。次の 4 つの新しいコンポーネントを使って,Web アプリケーションモジュールまたは Web ページモジュールを作成できます。
TWebAppPageModule
TWebAppDataModule
TWebPageModule
TWebDataModule
Web データモジュールは,Web アプリケーションで共有されるコンポーネントのコンテナを作成します。関連 HTML テンプレートファイルはありません。
Web ページモジュールは,アプリケーションに新しい Web ページを定義します。このモジュールには HTML テンプレートファイルが関連付けられていて,スクリプトは WebSnap サーフェスデザイナ に表示されます。またこのモジュールは,論理ページ名を定義します。Web ページにアクセスするディスパッチアクションを定義する必要はありません。HTML テンプレートファイルの管理は,仮想ファイルシステムによってプロジェクトマネージャ上で行います。
Web モジュールウィザードにアクセスするには,1)[ファイル|新規作成|その他]を選択し,[WebSnap]タブをクリックし,[WebSnap アプリケーション]をダブルクリックする,2)[表示|ツールバー|インターネット]を選択し,ツールバーの[WebSnap アプリケーションの新規作成]アイコンをクリックする,の 2 つの方法があります。
サーバーサイドスクリプティング
WebSnap には,Web ページのプログラミング用に設計された単純なスクリプト言語であるサーバーサイドスクリプティングが含まれています。サーバーサイドスクリプティングには,次の特徴があります。
Delphi コンポーネントにアクセスできるスクリプト。
VB や JavaScript などのアクティブスクリプティングエンジンのサポート。
スクリプトと HTML の混合。
新しいコンポーネント
WebSnap には,ディスパッチャ,アダプタ,ページプロデューサ,セッション,およびユーザーリスト等の新しいコンポーネントのホストが含まれています。
ディスパッチャコンポーネント
ディスパッチャコンポーネントは,各種のページコンテンツのリクエスト,HTML フォームの発行,およびダイナミックイメージのリクエストを自動的に処理します。次の新しいコンポーネントがあります。
TPageDispatcher
TAdapterDispatcher
TWebDispatcher に OnException イベントが新しく追加されました。TCustomWebDispatcher.OnException
アダプタコンポーネント
アダプタは,アプリケーションのビジネスルールのスクリプト対応インターフェースを定義する手段を提供します。たとえば TDataSetAdapter は,データセットコンポーネントをスクリプト対応にするために使います。次の新しいコンポーネントがあります。
TAdapter
TApplicationAdapter
TPagedAdapter
TLoginFormAdapter
TApplicationAdapter
TEndUserAdapter
TEndUserSessionAdapter
TStringsValueList
TDataSetValueList
ページプロデューサコンポーネント
ページプロデューサは,複雑なデータ駆動型フォームおよびテーブルを作成したり,XSL を使ってページを生成します。次の新しいコンポーネントがあります。
TAdapterPageProducer
TXSLPageProducer
セッションコンポーネント
セッションコンポーネントはエンドユーザーを追跡します。次の新しいコンポーネントがあります。
ユーザーリストコンポーネント
ユーザーリストコンポーネントは,ユーザー名,パスワード,およびアクセス権へのアクセスを提供します。次の新しいコンポーネントがあります。
WebSnap サーフェスデザイナ
WebSnap を使って Web サーバーアプリケーションのスクリプトを作成する場合,各コードエディタページ([HTML Script],[HTML Result],[プレビュー],[XML ツリー],および[XSL ツリー])を使って Web ページを作成して設計時にその結果を表示できます。
XML のサポート
XML データバインディングウィザード
この新しいウィザードは,XML データファイルのアクセスと更新を行うための非常に簡単な方法を提供する Delphi コードを生成します。生成されるコードは,自然で直感的なプロパティベースのプログラミングモデルなので,Delphi コンポーネントのプログラミングと同じような感覚で XML データを操作できます。XML データバインディングは,XML ドキュメントオブジェクトモデル(DOM)インターフェースを使う場合に必要な複雑なコーディングに代わるもので,検証された XML ドキュメントを操作するアプリケーションに最適です。
XML ドキュメントのプログラミング
XML データバインディングは,新しい TXMLDocument コンポーネントとその関連インターフェース IXMLDocument/IXMLNode に基づいています。このコンポーネントは,XML データ処理用の DOM インターフェースの簡略版を提供します。TXMLDocument をフォームに配置し,その FileName プロパティを設定し,Active を true を設定するだけで,すべての XML データに簡単にアクセスできるようになります。
クロスプラットフォーム/ベンダーに依存しない DOM プログラミング
XML ドキュメントプログラミングサポートの最下位レベルにあるのが,新しい xmldom.pas インターフェースユニットです。このインターフェースユニットは,クロスプラットフォームでベンダーに依存しない,W3C DOM Level 2 仕様に準拠したプログラミングを可能にするインターフェースのセットを提供します。オープンアーキテクチャで設計されたこれらのインターフェースは,既存の DOM ベースの XML ソリューションに簡単に組み込むことができます。
データベースアプリケーションでの XML の使用
一連の新しいコンポーネントにより,XML ドキュメントを製品のデータベースアーキテクチャに組み込むことが可能になります。コンポーネントは,任意の XML ドキュメントとクライアントデータセットのデータパケットとの間のマッピングを定義するための設計時ツールである XML マッパーによって生成されたトランスフォーメーションファイルを使用します。
新しいコンパイラ機能
バリアント
バリアント処理ルーチンは,System ユニットから新しい Variants ユニットにすべて移動されました。バリアント型は,アプリケーション内で Variants ユニットをインクルードしなくても使うことができます。ただし,バリアントを操作する RTL 関数は Variants ユニットに含まれているので,これらの関数を使用するには,アプリケーションの uses 文に Variants ユニットを定義する必要があります。
バリアントのカスタムデータ型を定義できるようになりました。カスタムバリアントのサポートを参照してください。
バリアントは Int64 型をサポートするようになりました。
列挙型
列挙に特定の値を割り当てることができるようになりました。
Consts ユニットの変更
Consts.pas は,2 つのファイル,Consts.pas および RTLConsts.pas に分割されました。
新しいコンパイラ指令
新しいライブラリ,使用が中止された指令,およびプラットフォーム指令については,『Object Pascal 言語ガイド』で説明しています。
Microsoft は,アプリケーションが OS サービスとの互換性を示したり,高度な OS サービスを要求するのに PE (portable executable) ヘッダーフラグへの依存度を高めています。Delphi 6 コンパイラは,次の 2 つの指令をサポートすることで,ハイエンドの NT システム上でアプリケーションをチューニングするための強力なオプションを提供できるようになりました。
条件指令
Windows プラットフォーム向けに開発をしている場合は,MSWINDOWS シンボルを使って(Linux ではなく)Windows の存在を調べることができます。
$If 指令
定数式評価付きの新しい $IF 指令が追加されました。
$ALIGN フィールド
$ALIGN フィールドに,新しいオプション {$A1},{$A2},{$A4},および {$A8} が追加されました。
新しい組み込みアセンブラ
次の特徴を持つまったく新しい組み込みアセンブラが導入されました。
新しい疑似命令 VMTOFFSET および DMTINDEX
新しい命令のサポート: MMX,SIMD,Enhanced MMX,Pentium Pro/Pentium III/Pentium 4 CPU の Intel SSE,AMD K7 CPU の AMD Enhanced 3D
新しい DQ (define quadword data)疑似オペコードのサポート
書き込み可能な定数の新しいデフォルト設定
$WRITEABLECONST ($J)コンパイラ指令のデフォルト設定がオンからオフに変更されました。これは,型付き const 値に書き込みを行う前に,このコンパイラフラグを明示的にオンにする必要があることを意味します。
ファイルタイプのサポート
クロスプラットフォームのサポートとして,コンパイラは Linux 形式のテキストファイルを扱うことができます。Linux 形式のテキストファイルは,行末が Windows で使用される復帰コード(ASCII 13)と改行コード(ASCII 10)ではなく,改行コード(ASCII 10)だけで終了します。
オーバーロードの解決に関する変更
どのオーバーロード関数が特定の引数リストに最も良く一致するかを Delphi コンパイラが判定するプロセスが変更されて,従来のコンパイラではあいまいと判断されていた次のような状況がサポートされるようになりました。
Delphi 6 コンパイラは,AnsiString/PChar パラメータと WideString/WideChar パラメータを同じ位置に持つオーバーロード関数を区別できるようになりました。
オーバーロード関数宣言のパラメータとしてバリアントを使えるようになりました。バリアントは,どの単純型よりもより一般的であるとみなされます。
オブジェクトバージョンおよびインターフェースバージョン付きでオーバーロードに渡されたオブジェクトインスタンスは,もはやあいまいとみなされません。
nil がオーバーロード関数のインターフェース型パラメータの有効な値として受け付けられるようになりました。
新しい COM/Active X 機能
COM 環境設定属性の登録/インストール
COM+ 属性を新しい COM オブジェクトに設定できるようになりました。
イベントオブジェクトウィザード
新しい COM+ イベントウィザードを使うと,COM+ イベントオブジェクトを作成できます(イベントを発生させるためのコードやイベントに応答するクライアントコードは手動で追加する必要があります)。
既存のインターフェースの実装
COM オブジェクトウィザードを使って,システムに登録されているタイプライブラリに含まれている任意のインターフェースのサーバーオブジェクトを生成できるようになりました。従来は,(IUnknown から継承して)新しく作成したインターフェースが実装されていました。Delphi 6 では,COM オブジェクトウィザードを使って,任意の登録済みタイプライブラリからインターフェースを選択できます。COM オブジェクトウィザードは,スケルトンメソッドが含まれた実装クラスとともに,CoClass が当該インターフェースを実装するためのタイプライブラリ情報を作成します。ユーザーはこれを基にして実装を完成させることができます。実装クラスは,IUnknown メソッドと IDispatch メソッドの実装を継承します。
トランザクションオブジェクト(MTS ウィザードの後継)
Professional 版を使ってトランザクションオブジェクトを作成できるようになりました。従来は,MTS のサポートは Enterprise 版に限られていました。
トランザクションオブジェクトのデュアル MTS/COM+ サポート
MTS オブジェクト ウィザードに代わり,COM+ または MTS に使用できるオブジェクトを作成するトランザクションオブジェクトウィザードが導入されました。
新しいデータベース機能
dbExpress
dbExpress は,SQL データベースサーバーへの高速アクセスを提供する軽量なデータベースドライバのセットです。dbExpress は,サポートされている各データベースに対して,サーバー固有のソフトウェアを統一的な dbExpress インターフェースのセットに適合させるドライバを提供します。アプリケーションを配布する際は,作成したアプリケーションファイルのほかに,単独の DLL(サーバー固有のドライバ)を,実行時に接続情報をロードするためのオプションの追加ファイルといっしょに含める必要があります。あるいは,アプリケーションをスタンドアロン .EXE として配布することもできます。
TSQLConnection
TSQLDataSet。単方向 データセット
TSQLQuery,TSQLStoredProc,および TSQLTable。アプリケーションの移植用に既存の要素と互換性を持つ単方向データセット
これらのコンポーネントの操作については,単方向データセットの使い方を参照してください。
dbExpress はレコードをアクセスするのに単方向カーソルだけを実装するので,dbExpress を使用するデータセットは単方向データセットと呼ばれます。単方向データセットは,データをメモリにバッファリングしないので,ほかの種類のデータセットに比べて処理が高速になるだけでなくリソースの消費も少なくなりますが,いくつかの制限があります。たとえば,単方向データセットはデータベース対応グリッドに接続できません。なぜなら,バッファリングされるレコードがないからです。TDataSet から提供される機能の多くは,単方向データセットでは実装されないか,例外を生成する結果になります。このような制限もありますが,単方向データセットは強力なデータアクセス方法を提供します。単方向データセットは高速で使いやすく,配布も用意です。
単方向データセットからのデータを編集するには,単方向データセットをクライアントデータセットに接続します。クライアントデータセットと単方向データセットとの間の接続は,データセットプロバイダによって提供されます。
新しい項目型
新しい項目型として TFMTBCDField が追加されました。この型は,BCD 値を Currency 型に変換する既存の TBCDField 型とは対照的に,真の 2 進化 10 進数を表します。TFMTBCDField は,任意のデータセットの BCD 型項目の持続的項目として指定できます。dbExpress データセットでは,TFMTBCDField 型の動的項目コンポーネントは,TBCDField の使用によって精度が失われる場合に作成されます(最終的に,BDE,ADO,および IBX データセットも含むように拡張されます)。
クライアントデータセットの拡張
組み込みプロバイダおよびソースデータセットを含む 3 つの新しいクライアントデータセットが追加されました。これらのデータセットは,非常に単純なアプリケーションにおける更新をキャッシュするためにプロバイダおよびクライアントデータセットを使用するプロセスを単純化することを目的としています。新しいクライアントデータセットを次に示します。
TBDEClientDataSet
TSQLClientDataSet
TIBClientDataSet
TClientDataSet およびこれらの新しいデータセットには,新しい共通基本クラス(TCustomClientDataset)が存在します。
TClientDataSet に,新しいプロパティがいくつか追加されました。
ConnectionBroker を使うと,接続コンポーネントの指定に間接的なレイヤを追加できます。これは,設計時とアプリケーションを配布するときとで,異なる接続を使う場合に便利です。アプリケーションに複数のクライアントデータセットがあり,そのすべてが同じ接続ブローカを使用している場合,クライアントデータセットを接続するコンポーネントをアプリケーションサーバーに変更するには,1 つのプロパティ(ConnectionBroker の Connection プロパティ)を変更するだけで済みます。すべてのクライアントデータセットの RemoteServer プロパティを個々に変更する必要はありません。
DisableStringTrim を使うと,ユーザーが項目に入力した値の中の空白をクライアントデータセットがどのように処理するかを制御できます。
XMLData を使うと,クライアントデータセットの XML 形式のデータパケットにアクセスできます。
新しいコンポーネントのセットを使うと,クライアントデータセットと任意の XML ドキュメントとの間の変換が可能になります。これについては,データベースアプリケーションでの XML の使用で説明しています。
TUpdateSQL が拡張され,クライアントデータセットを使って更新をキャッシングするときに複数の更新オブジェクトを使えるようになりました。TBDEDataSet を必要としていた TUpdateSQL.DataSet プロパティが変更され,TDataSet だけが必要になりました。クライアントデータセットと複数の更新オブジェクトを使用する場合は,このプロパティにプロバイダの BeforeUpdateRecord イベントハンドラの DeltaDS パラメータを設定する必要があります。この場合,TUpdateSQL は,データベース名とセッションをその DataSet プロパティから推測できないので,新しい DatabaseName プロパティと SessionName プロパティも設定する必要があります。この手順については,複数のアップデートオブジェクトの使用で説明します。
TUpdateSQL は,更新オブジェクトが 1 つしかない場合や,BDE 対応データセットを使って更新をキャッシングする場合は,従来と同じ動作をします。
多層アプリケーションのサポート
2 つの新しい接続コンポーネントが追加され,多層アプリケーションのクライアントデータセットをより柔軟に操作できるようになりました。新しい接続コンポーネントを次に示します。
TSharedConnection を使うと,クライアントアプリケーションは,単独のアプリケーションサーバー内の複数のリモートデータモジュールへの複数の接続を作成できます。TSharedConnection コンポーネントを使うことで,リモートデータモジュールへのすべての接続はアプリケーションサーバーへの単独の共有接続を使用し,これによりサーバーアプリケーションはそれらがすべて同じクライアントから開始されていることを認識できます。
TLocalConnection は,(クライアントデータセットとしての同じアプリケーション内の)ローカルプロバイダの接続コンポーネントのように動作します。TLocalConnection を使うことで,IAppServer インターフェースを明示的に使用できるほか,あとでアプリケーションサーバー上のリモートプロバイダを使用するためのプロセスを単純化できます。
これに加え,新しいファクトリオブジェクト TPacketInterceptFactory を使うと,ソケット接続を使用したときにクライアントアプリケーションとアプリケーションサーバーとの間のメッセージをインターセプトするのが容易になります。TPacketInterceptFactory を使うとインターセプトオブジェクトが自動的に登録されるので,それをオブジェクトインスペクタのドロップダウンリストを使ってソケット接続コンポーネントに割り当てることができます。
コンポーネントパレットの変更
コンポーネントパレットが変更され,データベースアプリケーションや Internet アプリケーションを作成するときに利用可能な各種のオプションを反映するようになりました。
コンポーネントパレットが再編成されて,ボーランドデータベースエンジンは第一のデータアクセスメカニズムとしてでなく,単なる 1 つの選択肢として扱われるようになりました。BDE ベースのコンポーネントは,コンポーネントパレットの新しい[BDE]ページに移動されました。
InterBaseExpress コンポーネントが更新され,イベントのサポートの拡張や,項目値を自動生成する InterBase ジェネレータのサポートが追加されました。[InterBase Admin]ページが新しく追加されました。
前述の新しい dbExpress コンポーネントが登録された[dbExpress]ページが新しく追加されました。
MIDAS という用語の使用廃止に伴い,[Midas]ページが削除されました。従来[Midas]ページにあったクライアントデータセットおよびデータセットプロバイダは,[Data Access]ページに移動されました。アプリケーションサーバーに接続するための接続コンポーネントおよび単純なオブジェクトブローカは,新しい[DataSnap]ページに移動されました。
新しい[DataSnap]ページには,クライアントデータセットをアプリケーションサーバーに接続するためのコンポーネントが登録されています。このようなコンポーネントには,従来[Midas]ページにあった接続コンポーネントと単純オブジェクトブローカがあります。これに加え,[DataSnap]ページには,3 つの新しいコンポーネントも用意されています。TConnectionBroker は,クライアントデータセットと接続コンポーネントの間の中間コンポーネントとしての役割を持ちます。TSharedConnection は,複数のリモートデータモジュールに分割されたアプリケーションサーバーに接続します。TLocalConnection は,クライアントデータセットと同じアプリケーションに属すプロバイダへの接続を表します。
新しい CORBA 機能
Delphi の一部のバージョンには,CORBA アプリケーションを作成するための IDL2PAS コンパイラが付属します。IDL2PAS コンパイラが拡張されて,クライアント(スタブコードの生成)だけでなく,CORBAサーバー(スケルトンコードの生成)の作成もサポートされるようになりました。IDL2PAS コンパイラを起動するには,IDE 内で[ツール|
CORBA IDL ファイルの再生成]を選択するか,または[ファイル|新規作成|その他]を選択して[CORBA]ページを選択します。このコンパイラは,クライアントやサーバーを作成したり,既存の CORBA プロジェクトを保守する(IDL ファイルに変更を加えてプロジェクトファイルを更新する)のに便利です。
CORBA アプリケーションに対しては,Delphi の COM アプリケーションサポートに統合されていた従来の CORBA サポートの代わりに,新しい IDL2PAS コンパイラを使用することが強く推奨されます。新しい IDL2PAS コンパイラを使用するときは,従来の corbaobj.pas および orbpas.pas ユニットではなく,corba.pas および orbpas30.pas または orbpas40.pas ユニットを使用して ORB との対話を行うべきです。また,2 つの新しいユニット,cosevent.pas および cosnaming.pas は,それぞれイベントサービスと命名サービスをラッピングします。
CORBA サポートのドキュメントは,メイン Delphi ドキュメントに組み込まれていません。ただし,IDL2PAS コンパイラについては,Doc\IDL2PAS\index.htm で解説されています。
新しいアクション機能
アクションバンド
アクションバンドは,アクションを使ってユーザーインターフェースの開発プロセスを単純化するための新しい一式のツールの総称的な呼び方です。アクションとイメージを組み合わせ,それをカスタマイズ可能な Microsoft Office 形式のメニューやツールバーに追加することができます。これらのツールは,コンポーネントパレットの[Additional]ページからアクセスできます。次のツールが用意されています。
TActionManager-アクションマネージャは,アクションリストを管理して,カスタマイズしたアクションや標準アクションを体系化します。
TActionMainMenuBar および TActionToolBar-アクションバンドのメニューおよびツールバーは,カスタマイズすることができ,[アクションマネージャの編集]ダイアログ(アクションマネージャエディタ)からアクションまたはコマンドをドラッグアンドドロップすることが可能です。アクションのカテゴリをドロップ(アクションをサブメニューに入れる)したり,特定のアクションをメニューまたはツールバーにドロップできます。
TCustomizeDlg-[カスタマイズ]ダイアログボックスはアクションマネージャエディタと同様の働きを持ちますが,これはエンドユーザーが実行時にメニューやツールバーの内容を変更できるようにするためのコンポーネントです。TCustomizeDlg コンポーネントは TActionManager といっしょに動作します。すなわち,ActionManager プロパティに ActionManager コンポーネントを設定したり,標準アクション(TCustomizeActionBars)をアクションマネージャエディタおよびアクションバンドメニューに追加することができます。
これらのツールの使い方については, ツールバーとメニューのアクションの体系化およびツールバーとメニューの作成を参照してください。CLX アプリケーションの場合は,ActionList を使ってアクションを整理します。
新しく追加された標準アクションは,メニューおよびツールバーコマンドに追加することができます。新しい定義済みアクションクラスには,書式,ファイル,検索,タブ,リスト,ダイアログ,インターネット,および ツールがあります。
使用頻度に基づいてアクションの非表示/表示が切り替わるようにメニューを設定することもできます。このためには,TActionClient オブジェクトの HideUnused プロパティを使います。このプロパティは,あまり使用されないメニュー項目を,メニューまたはツールバー上の二重矢印ボタンをポイントするとアクセスできるサブメニューに入れます。詳細については,アクションバンド内で使用しない項目とカテゴリを非表示にするを参照してください。
新しい標準アクション
次の標準アクションが VCL に追加されました。
書式アクション
TRichEditBold
TRichEditItalic
TRichEditUnderline
TRichEditStrikeOut
TRichEditBullets
TRichEditAlignLeft
TRichEditAlignRight
TRichEditAlignCenter
ヘルプアクション
ファイルアクション
TFileOpen
TFileSaveAs
TFilePrintSetup
TFileRun
TFileExit
検索アクション
TSearchFind
TSearchFindFirst
TFilePrintSetup
TSearchReplace
TSearchFindNext
タブ(ページコントロール)アクション
リストアクション
TListControlCopySelection
TListControlDeleteSelection
TListControlSelectAll
TListControlClearSelection
TListControlMoveSelection
TStaticListAction
TVirtualListAction
ダイアログアクション
TOpenPicture
TSavePicture
TColorSelect
TFontEdit
TPrintDlg
インターネットアクション
TBrowseURL
TDownLoadURL
TSendMail
ツールアクション
アクションクラスの拡張
TCustomAction に,次の新しいプロパティが追加されました。
GroupIndex
SecondaryShortCuts
HelpKeyword
HelpType
AutoCheck
TCustomActionList に State プロパティが追加され,リスト内のすべてのアクションを一時的にオフにできるようになりました。
新しい VCL ユニットおよび機能
CheckLst.pas
TCheckListBox は,AutoComplete,HeaderColor,および HeaderBackgroundColor を含むいくつかの新しいプロパティを公開するようになりました。
Classes.pas
TList に,コピー処理に加えてプリミティブセットの操作を可能にする新しい Assign メソッドが追加されました。
TCollection に,TCollection の下位オブジェクトが項目の追加および削除処理を拡張できるようにするための,2 つの新しい protected メソッドが追加されました。この 2 つの新しいメソッド Added および Deleting は,どちらもデフォルトの実装を持ちません。TCollection を小型に保つために,OnAdded や OnDeleting のようなイベントはありません。ただし,下位クラスでは,容易にこれらのイベントを追加できます。さらに,TCollection には,オーナーの識別を容易にする新しい Owner プロパティが追加されました。
TStringList に,文字列リストの操作(ソート,文字列照合)において大文字/小文字を区別するかどうかを指定するための CaseSensitive プロパティが新しく追加されました。
ビジュアルコントロールの依存関係を取り除くために,TDataModule が Forms ユニットからこのユニットに移動されました。これにより,ユーザーインタフェースを含まない非常に小さなサーバーアプリケーションを記述できます。
TThread に,スレッド機能の正常終了を妨げるすべての例外を識別する,新しい FatalException プロパティが追加されました。
位置の識別に Int64 値を使用できるようにするために,Seek 関数が TStream によってオーバーロードされました。下位クラスは,2 つのうちのどちらかのオーバーロードをオーバーライドできますが,両方をオーバーライドしてはいけません。
TInterfacedPersistent は,コンポーネントはないがインターフェースを実装する持続的オブジェクトのための新しい基本クラスです。
ComCtrls.pas
TTreeView-CreateTreeNodes が追加されました。
ノードの作成が一般化され,ノードクラスをオーバーライドするためだけに単純ツリーユーザーが下位クラスを作成する必要をなくすためのイベントが用意されました。また,AddNode が変更され,追加したい(任意のクラスの)ノードを渡すことができるようになりました。
ノードが追加されたときに発生する OnAddition イベントが追加されました。
ツリービューをソートするための API が強化/単純化されました。サブツリーを再帰的にソートしたり,上位レベルのノードを非再帰的にソートすることが可能になりました。TCustomTreeView および TTreeNode クラスでより統一的な AlphaSort および CustomSort の定義が提供され,これらのメソッドが TTreeNodes に追加されました。変更はすべて,前のバージョンとの下位互換性を保持しています。
4 つのプロパティと 8 つのメソッドを持つ MultiSelect が追加されました。
TListView - TTreeView の CreateTreeNodes に相当する CreateListItems が追加されました。
TStatusBar - ステータスパネルの直接の親コントロールがフォームでない場合でも,サイズグリップが表示されるようになりました。ステータスバーの右下隅がフォームの右下隅の領域内にある限り,サイズグリップが表示されます。
TDateTimePicker に,標準の日付/時刻形式文字列を使用して日付値の形式を制御する新しい Format プロパティが追加されました。
THeaderControl に,列のドラッグをサポートするいくつかの新しいプロパティおよびイベントが追加されました。新しい HotTrack プロパティを使うと,ユーザーがマウスを使って一時停止したときにヘッダーセクションを強調表示できます。
TToolBar に,メニュー項目に対応するボタンをツールバーに登録するための Menu プロパティが追加されました。ユーザーがカスタマイズダイアログを使ってツールバーをカスタマイズすると,いくつかの新しいイベントが応答します。
Contnrs.pas
TObjectList,TComponentList,および TClassList に,Last および First が追加されました。これらは型キャスト関数です。
TStack,TQueue,TObjectStack,および TObjectQueue の Push は,単純にスタックにプッシュした項目を返す関数になりました。この機能は Push/Peek の組み合わせとみなしてください。これは,プッシュするときにその項目を直接作成する場合に非常に便利です。
TBucketList および TObjectBucketList は,単純なハッシュテーブルです。
Controls.pas
TCustomListControl は,項目のリスト(コンボボックス,リストボックス,およびリストビュー)を表すコントロールの新しい共通基本クラスです。TCustomListControl には,リストを操作するための多くの新しいメソッドが用意されていて,これらはすべての下位クラスに継承されます。
TDragObjectEx,TDragControlObjectEx,および TDragDockObjectEx は,ドラッグ動作の終了時に自動的に解放される 3 つの新しいドラッグオブジェクトです。これらは,TDragObject,TDragControlObject,および TDragDockObject にそれぞれ対応しますが,これら従来のオブジェクトはドラッグ動作の終了時に解放されないという点が異なります。
TControl に,ClientToParent および ParentToClient の 2 つの新しいメソッドが追加されました。これらのメソッドを使うと,ピクセルを親または子のいずれかにマッピングできます。これらのメソッドは,ClientToScreen および ScreenToClient と非常に良く似た機能を持ちます。
TWinControl に,HDC の代わりにキャンバスを使用する PaintTo メソッドの新しいオーバーロードが追加されました。
TModalResult が Forms.pas からこのファイルに移動されました。これに加えて,次のサポート関数が追加されました。
IsPositiveResult()
IsNegativeResult()
IsAbortResult()
IsAnAllResult()
StripAllFromResult()
DbCtrls.pas
TDBLookupListBox および TDBLookupComboBox に,ユーザーが空白(NULL)値を割り当てられるようにする新しい NullValueKey プロパティが追加されました。
TDBComboBox に,AutoComplete および AutoDropDown プロパティが追加されました。
TDBListBox に,新しい AutoComplete プロパティが追加されました。
TOpenDialog に,ファイルのオープン/保存用のダイアログの制御を拡張する OptionsEx プロパティが追加されました。
ExtCtrls.pas
TImage-TImage コントロールのサイズに関係なくイメージのアスペクト比を保持する Proportional プロパティが追加されました。
Forms.pas
TApplication(および TApplicationEvents)に,システム全体の設定に対する変更に応答する新しい OnSettingChange イベントが追加されました。
TForm は,新しいプロパティ,AlphaBlend,AlphaBlendValue,TransparentColor,および TransparentColorValue により,レイヤ化フォームをサポートするようになりました。
TScreen に,デスクトップの作業領域を取得するためのプロパティのセット(WorkAreaRect,WorkAreaTop,WorkAreaLeft,WorkAreaHeight,および WorkAreaWidth)が新しく追加されました。これに加え,新しいメソッドのセットを使って,どのモニタがポイント,矩形,またはウィンドウに最もよくマッチするかを調べることができるようになりました。
TMonitor は,どのモニタが一次モニタであるかを指定したり,WorkareaRect および BoundsRect プロパティを提供することで,マルチモニターサポートを拡張します。
AutoDragDocking のサポートが追加されました。これにより,アプリケーションの自動ドッキングを簡単に無効にできます。また,Delphi のオプションダイアログに,このプロパティを設定するためのフラグが追加されました。
TModalResult が Controls.pas に移動されました。
Graphics.pas
TFontRecall,TPenRecall,および TBrushRecall が追加されました。これらを使って,フォント,ペン,およびブラシをすばやく保存および復元できます。これらのクラスは,通常は TPersistent クラスといっしょに動作する(Classes からの)TRecall から派生します。
システムカラーがソートされて見やすくなりました。
標準の 16 色に加えて,次の 4 つの色が追加されました。
clMoneyGreen
clSkyBlue
clCream
clMedGray
ImgList.pas
Draw,DrawOverlay,および GetIcon メソッドのオーバーロードが追加され,イメージリストプロパティの設定をオーバーライドできるようになりました。
IniFiles.pas
INI ファイルが,ストリームを使ったバイナリデータの読み取り/書き込みをサポートするようになりました。
TMemIniFile において,文字列の大文字/小文字を区別するかどうかを制御できるようになりました。
THashedStringList は TStrings の新しい下位クラスで,パフォーマンスを向上させるために内部ハッシュテーブルを使用します。
Masks.pas
EditMask および Text でカスタム型を使用できるようになり,プロパティエディタがさらに便利になりました。
Menus.pas
TMenuItem に,ユーザーがメニュー項目を選択したときに自動的にそのメニュー項目のチェックを付けたり外したりする新しい AutoCheck プロパティが追加されました。
Registry.pas
TRegistry が,ストリームを使ったバイナリデータの読み取り/書き込みをサポートするようになりました。
StdCtrls.pas
OnCloseUp および OnSelect が,TCustomComboBox(および TComboBox)に追加されました。OnCloseUp は,コンボボックスのドロップダウンリストが閉じたときに発生します(OnDropDown と逆の動作と考えてください)。OnSelect は,コンボボックスのドロップダウンリストから何かが選択されたとき(または,上または下スクロールによってコンボボックスの内容が変化したとき)に発生します。コンボボックスに,AutoComplete プロパティ(デフォルトは True)が追加されました(AutoComplete プロパティは,SBCS 文字についてのみ有効です)。
TListBox は,2 つの新しいスタイル,lbVirtual および lbVirtualOwnerDraw をサポートするようになりました。これらのスタイルは,項目を格納しない仮想リストボックスのスタイルです。仮想リストボックスに対しては,Count プロパティを使って項目数を設定し,新しい OnData,OnDataFind,および OnDataObject イベントを使って項目(および関連オブジェクト)を指定します。
TypInfo.pas
RTTI 情報を持たないオブジェクトに対して GetPropInfo を安全に呼び出せるようになりました。この場合は,単に nil が返されます。
FreeAndNilProperties が追加されました。FreeAndNilProperties は,任意の RTTI 対応オブジェクトを取り,そのオブジェクトの各プロパティを解放してそこに nil を設定します。また,このオブジェクトがプロパティ参照を行っている可能性のあるオブジェクトもすべてクリアするので,最初にそれらに nil を設定します。
新しい RTL ユニットおよび機能
いくつかの関数が System ユニットに移された一方で,多くの System 関数が新しい Variants ユニットに移動されました。RTL 関数のオーバーロードバージョンが新規に多数追加され,AnsiString パラメータ(SysUtils)に加えて Trim や WideFormat などの WideString パラメータがサポートされるようになりました。
Variants.pas
この新しいユニットには,Variants を操作するための多くのユーティリティが含まれています。このユニットには System ユニットから移動されたコードが多く使用されているので,自分のコードで Variants を使用している場合は,Variants を uses 節に追加する必要があります。また,このユニットには,新しいカスタムバリアント型に加えて,いくつかの新しいバリアントサポートルーチンも含まれています。
クロスプラットフォーム開発をサポートするために,Variants ユニット内のユーティリティは,Windows API を直接呼び出すことはしなくなりました。その代わり,新しいユニット VarUtils.pas に,Variants.pas 内のルーチンに対してプラットフォームに依存しない基盤を提供する低レベルのルーチンが含まれています。VarUtils.pas 内の汎用コードは完全な Windows コードではないので,その使用には注意が必要です。Windows 呼び出しと汎用コードをいっしょに使うと,問題が発生することがあります。
ConvUtils.pas
計量単位を変換するためのルーチンのコレクションが追加されました。
StdConvs.pas
ConvUtils.pas 内のルーチンで使用するグローバル変数のセットが追加されました。
DateUtils.pas
日付/時刻関数のコレクションが追加されました。
StrUtils.pas
この新しいユニットは,SysUtils.pas に含まれている関数に加えて,文字列関数を含んでいます。
FMTBCD.pas
この新しいユニットは,2 進化 10 進(BCD)値を操作するためのユーティリティを含んでいます。
Math.pas
拡張パラメータの処理を高速化するために const が追加されました。また,多くの定数および関数が新しく追加されました。
System.pas
System ユニットには,多くの新しいルーチンが追加されました。そのほとんどは,クロスプラットフォーム開発と,Windows および Linux において使用される異なる文字エンコードシステム間の変換サポートを提供します。Variants をサポートするルーチンは,新しい Variants ユニットに移動されました。
COM インターフェース以外のインタフェースをサポートするために,IInterface が追加されました。
SysUtils.pas
SysUtils ユニットがアップグレードされ,CLX のクロスプラットフォーム機能がサポートされるようになりました。ネイティブ Windows API によって従来提供されていたいくつかのサービスを,SysUtils ルーチンが提供するようになりました。ただし,このようなルーチンの多くはソースファイル内で Linux 固有の領域に記述されているので,Windows バイナリにはコンパイルされません。
カスタムバリアントのサポート
バリアントに対してカスタムデータ型を定義できるようになりました。この場合,型が Variants に割り当てられる一方で,演算子のオーバーロードを行うことになります。新しいバリアント型を作成するには,TCustomVariantType クラス(またはその下位クラス TInvokeableVariantType または TPublishableVariantType のいずれか)を継承して,新しいバリアント型をインスタンス化します。
カスタムバリアントを作成する方法については,カスタムバリアントの定義を参照してください。
カスタムバリアントの例は,2 つの新しいユニットに示されています。
VarCmplx ユニットは,複素数のカスタムバリアントです。バリアント型では,加算演算子,減算演算子,乗算演算子,除算演算子(整数除算ではない),および 否定演算子を使った直接操作がサポートされます。また,Real,Imaginary,Radius,Theta,および FixedTheta の 5 つのプロパティがサポートされます。バリアント型は,整数型,浮動小数点型,文字列型,TDateTime 値,および論理値との間でキャスト可能です。これに加え,VarCmplx ユニットは,複素数のバリアントを操作する多くのグローバル関数を実装します。
VarConv ユニットは,ConvUtils ユニットで使用されているような,計量単位のカスタムバリアントを実装します。Convert カスタムバリアントは,Convert カスタムバリアントと数値の間,または 2 つの Convert カスタムバリアントの間で,加算,減算,乗算,および除算をサポートします(ただし,異なるユニットを使用する 2 つの Convert カスタムバリアントを乗算することはできません)。Convert バリアント型は,これらの演算を行うときに自動的にユニットを調整します。Convert バリアント型は,OleStr 型,String 型,および Double 型にキャストできます。また,Convert バリアント型は,数値,ユニット型,ユニット名,ユニットが属す計量単位ファミリー,ファミリーの名前,および同じファミリー内の別のユニットに変換されたときの値を取得するための,Value,Type,TypeName,Family,FamilyName,および As プロパティをサポートします。
トランスレーションツールの改良
統合翻訳環境(ITE)という呼び名に代えて,トランスレーションツール(トランスレーションマネージャ,リソース DLL ウィザード,およびトランスレーションリポジトリを含む)という名称が使用されるようになりました。トランスレーションマネージャは,IDE 外で使用可能な,スタンドアロンの実行形式ファイルとなりました。IDE の外部で使用されるトランスレーションマネージャは,外部トランスレーションマネージャ(ETM)と呼ばれ(etm60.exe),Delphi をインストールしていない翻訳者に渡すことができます。
トランスレーションマネージャおよび ETM のダイアログボックスに,いくつかの機能が追加されました。
ユーザーが翻訳を行うときにフォームの表示およびビジュアルなサイズ変更を可能にするフォームビューア。
プロジェクトを整理するための,[環境],[ファイル],および[ワークスペース]の 3 つの新しいタブ。
[ファイル],[プロジェクト],および[ツール]コマンドに対応する追加のメニューおよびツールバーボタン。これらのコマンドは,トランスレーションマネージャを IDE の内部または外部のどちらで実行しているかに応じて変わります。
配布に関する変更
Delphi 5 では,ユーザーは,自動的に必要なライブラリを含める InstallShield を使ってアプリケーションと一緒に適切なパッケージ(.BPL)を配布することで,実行時パッケージを配布していました。
Delphi 6 には,InstallShield Express 3.0 が付属します。このプログラムは,Windows インストーラ(MSI)テクノロジに基づいており,マージモジュールを使ってアプリケーションを配布します。マージモジュールとは,ランタイムライブラリをインストールするのに必要なファイルおよびロジックを含んだ MSI コンポーネントです。Delphi のライブラリには,Delphi のマージモジュールが解決されるように設計されている相互依存関係があります。
InstallShield 3.0 を使ってアプリケーションを配布し,各 Delphi マージモジュールのライブラリ依存関係を表示する操作については,アプリケーションの配布およびマージモジュールを参照してください。
ヘルプシステムの拡張性
標準 Windows ヘルプビューア以外のヘルプビューアにヘルプ要求を渡すことが可能になり,Windows ベースのアプリケーションと Linux ベースのアプリケーションの両方のヘルプアプリケーションを作成できるようになりました。次の新しい機能が追加されました。
新しいインターフェース。アプリケーションとヘルプビューアとのやり取りを可能にします。HelpIntfs.pas に定義されているこれらのインターフェースには,IExtendedViewer,ISpecialHelpWinViewer,IHelpManager,IHelpSystem,IHelpSelector,および ICustomHelpViewer があります。
ヘルプマネージャ。登録ビューアのリストを管理し,要求をビューアに渡します。
VCL は,WinHelp とやり取りを行うための ICustomHelpViewer の実装を提供します。
Delphi 7
IDE の変更点
コンパイラメッセージ
新しい[表示|追加のメッセージ情報]コマンドは Borland の Web サイトからコンパイラメッセージ情報のダウンロードや参照を行うためのメッセージヒントウィンドウを表示します。
新しい[プロジェクト|オプション|コンパイラメッセージ]ページの機能で、コンパイラ警告の制御を行う機能が向上されました。
コンポーネントパレットの変更点
新しい CLX 専用バージョンの[システム]ページは,Delphi の CLX アプリケーションを開くときに表示されます。ここには,いくつかのディレクトリコンポーネントとファイルコンポーネントが含まれています。以前のバージョンでは,[システム]ページは VCL アプリケーションの場合にのみ表示され,システムレベルのアクセスを行うコンポーネントが含まれていました。
新しい[Indy Intercepts]ページと[Indy I/O ハンドラ]ページが追加され,オープンソース Internet プロトコルコンポーネントが提供されます(Professional 版および Enterprise 版)。
新しい[IW 標準],[IW データ],[IW クライアント側],[IW コントロール]ページは Web ベースアプリケーションを開発するための IntraWeb コンポーネントを提供します。
[Rave]ページは,アプリケーションにレポート生成機能を追加するコンポーネントを提供します。
コンポーネントページを水平にスクロールしてさらにアイコンを表示すると,新しいドロップダウンのメニューボタンでその他のアイコンのリストを表示することができます。
支援機能の変更点
コード補完機能がより高速になりました。また,〔Ctrl〕キーを押しながらリスト内の識別子をクリックすることによって,コード補完リストから項目の宣言に移動することができます。
新しい HTML コード補完機能が追加されました。コードエディタ内の有効な HTML 要素と属性を自動的に表示します(Professional 版および Enterprise 版のみ)。
OpenTools API を使うことによって,独自のコード補完マネージャを作成することができます。詳細については,「IDE の拡張」を参照してください。
[ツール|エディタオプション|支援機能]ページでは支援機能ツールで表示するシンボルの色を設定できます。
デバッガに関する変更点
監視式に次の機能が追加されました。
監視式をグループごとに管理できるように監視式ウィンドウに複数のタブが設定できるようになりました。これによりデバッグ作業をより簡単に行うことができます。監視式グループを追加するには,監視式ウィンドウを右クリックし,[グループの追加]を選択します。
監視式と値の列ヘッダーを非表示にすることができるようになりました。列ヘッダーを表示/非表示するには,監視式ウィンドウを右クリックし,[カラムヘッダーを表示する]を選択します。
個々の監視式の使用可能または使用不可を切り替えられるチェックボックスが追加されました。
[ツール|デバッガオプション|イベントログページ]には次の新しいオプションが加わりました。
[イベントログカラーの使用]はイベントログ内に表示されるイベントメッセージを種類別に色分けするときに使用します。
デバッグ中のプロセスからモジュール(exe,dll,ocx 等)がロードまたはアンロードされる度に,モジュールメッセージをイベントログに書き込めるようになりました。これらのイベントログは,以前は,[プロセスメッセージ]オプションで制御していました。
[実行|実行時の引数]ダイアログボックスの新しいオプション,[作業ディレクトリ]には,デバッグ時で使用する作業ディレクトリを指定することができます。
その他の改良点
プロジェクトマネージャでグループ内の任意のプロジェクトを右クリックし,[ここから下をメイク]または[ここから下を再構築]を選択することによって,部分的にコンパイルできます。
メッセージビュー]は,複数のタブによって異なる種類のメッセージ(作成,検索など)を表示します。
[表示|コンポーネント一覧では,〔Ctrl〕キーを押すことによって複数の項目を選択できます。
新しい[ツール|エディタオプション|ソースオプションページ]では次を行うことができます。
Pascal,C++,C#,HTML,XML など,ソースの種類ごとに異なるエディタオプションを設定します。
コードエディタ内にタブとスペース文字を表示します。
コードテンプレートを編集します。
この新しいページには,以前の[エディタオプション]ダイアログボックスの[一般],[表示],[支援機能]ページにあったオプションがいくつかあります。
[ツール|エディタオプション|色]ページ内,コードエディタの色設定において色グリッドの代わりに,[前景色]と[背景色]をリスト内から選択できるようになりました。
〔Alt〕+〔Page Down〕と〔Alt〕+〔Page Up〕を押すと,コードエディタ,監視ウィンドウ,メッセージ表示など,タブで区切られたビューを循環的に表示します。これらのキーボードショートカットは,デフォルト,DOS IDE,および BRIEF エミュレーションに含まれています。
Delphi はメインメニューを2 トーンで表示するようになりました。
Web 技術の変更点
Delphi にはAtoZed Software のIntraWeb が含まれるようになりました。IntraWeb を使うと,標準形式ツールを使用したWeb サーバーアプリケーション開発を行うことができます。またIntraWeb を使うと,Web Broker およびWebSnap アプリケーションのページを開発することもできます。詳細については,「IntraWeb を使用したWeb サーバーアプリケーションの作成」を参照してください。Delphi のEnterprise 版にはIntraWeb 製品の完全版が含まれています。Delphi のProfessional 版にはIntraWeb 製品の一部が含まれています。
Delphi ではWeb Broker,WebSnap,SOAP のターゲットタイプとしてApache 2.0 をサポートするようになりました。
Borland は,Web サーバーアプリケーションおよびWeb サービスのターゲットタイプとして,Win-CGI を使用することはお勧めしていません。その代わりに,通常のCGI,ISAPI/NSAPI,Apache をターゲットタイプとして使用することをお勧めします。既存のWin-CGI プロジェクトをIDE で修正およびコンパイルすることは可能ですが,Win-CGI の特定機能における互換性は保証していません。
Web サービス
Web サービスには以下の拡張機能が加えられています。
新しい UDDI ブラウザ
新しい UDDI ブラウザは UDDI レジストリのエントリを基に WSDL ドキュメントを検索してインポートすることができます。
SOAP ヘッダー
新しいクラスおよびインターフェースにより,クライアントとサーバーの間でメッセージを送受信するための SOAP エンベロープにヘッダーの読み出しや挿入を行うことができます。詳細については,「SOAP ヘッダーの定義と使用法」および「クライアントアプリケーションのヘッダー処理」を参照してください。
添付ファイル
Web サービスアプリケーション(クライアントとサーバーの両方)は,添付ファイルを扱えるようになりました。添付ファイル(TSOAPAttachmentの下位オブジェクト)は,マルチパートフォームの一部として SOAP でコード化されたメッセージで送信されます。アプリケーションが添付ファイルを受け取ると,それをユーザーのアプリケーションが利用できる一時ファイルに保存します。
型サポート
TRemotable に追加された 2つの新しい仮想メソッド ObjectToSOAP および SOAPToObject を オーバーライドし、カスタマイズすることによって、リモート可能なオブジェクトと、そのSOAPでの表現との相互変換ができるようになりました。
Web サービスリクエストに応答するときに起こりえる例外に対応する例外オブジェクト(ERemotableException インスタンス)は,SOAP Fault エレメントからの情報をより多く含むようになりました。
リモータブルタイプのクラスをレジストリに登録すると、そのインボーカブル・インターフェースも自動的に登録されます。
TXSDecimal には,XML とネイティブの型の間の変換をより簡単にする新しい AsBcd プロパティが含まれています。同様に,TXSHexBinary には,新しい AsByteArray プロパティがあります。時間値を表すリモートタブル・クラスは,ミリ秒の精度を、より高く表現するようになりました。
その他の拡張機能
THTTPReqResp の新規イベントでは,HTTP メッセージが送信される前、および送受信中にそれらをインターセプトして,進行状況を監視できるようになりました。
THTTPSoapPascalInvoker は,要求されたメソッドが実行される前後に処理できるイベントを公開できるようになりました。
インボーカブル・インターフェースと WSDL ドキュメント間のマッピングに対して,より多くの制御が可能になりました。TWSDLHTMLPublish は,イベントでパブリッシュされる WSDL を生成する制御できるようになりました。また,関数の戻り値とパラメータ名,名前空間の使用,およびデフォルトの SOAP アクションとのマッピングもできます。クライアント側では,RPC 形式のコード化に加えて,リテラルコード化もサポートされるようになりました。
新しいインターフェース,IRIOAccess により,インボーカブル・インターフェースを実装しているリモートオブジェクトにアクセスできます。
IOPConvert インターフェースには,Encoding という新しいプロパティが含まれています。これによって,クライアントと Web サービスプロバイダの間で渡されるコード化されたメッセージで使う文字セットを指定することができます。
DataSnap アプリケーションに影響する Web サービスの変更点があります。詳細については,「データベース技術の変更点」を参照してください。
TLinkedRIO コンストラクタは,デバッグの便宜のために,呼び出す各メソッドに対して自動的に個々のファイル名を生成するようになりました。
TOPToSoapDomConvert には SOAP エンベロープのデシリアライゼーション時にデバッグを可能にする 2 つの新しいイベントが加わりました。
インボーカブル・インターフェースにメソッドのオーバーロードが定義可能になりました。
COM の変更点
[タイプライブラリの取り込み]ダイアログボックス([プロジェクト|タイプライブラリの取り込み])を使用して,.NET アセンブリの CoClass のラッパーを作成できます。そこで作成されたラッパーは,Microsoft 社の .NET Framework の相互運用性を持つ機能を使用して通常の COM サーバーとして使用できます。
データベース技術の変更点
dbExpress ドライバは,Informix SE,Oracle 9i,DB2 7.2,InterBase 6.x,および MySQL 3.23.49 に対応するように更新されました。MSSQL 2000 用の新しいドライバもあります。
データベースコンポーネントには新しいものおよび変更されたものがいくつかあります。詳細については,「コンポーネントライブラリの変更点」を参照してください。
Borland では SQL Links をお勧めしていません。今後 SQL Links に対する拡張機能は行われず,次バージョンの Delphi には搭載されなくなります。Borland は Delphi で SQL サーバーのデータベースにアクセスするときは dbExpress を使用することをお勧めします。
DataSnap
DataSnap アプリケーションでは,IAppServer からIAppServerSOAP を使用するように変更されたため,IAppServer のインターフェースにあるいくつかの曖昧さが回避されます。TSoapConnection のUseSOAPAdapterプロパティは,以前のバージョンのDelphi で開発されたサーバーに対するクライアントを開発するために使えます。また,TSoapConnection は,Web サービスのリクエストを実行するプロセスの中のさまざまな個所でクライアントアプリケーションをカスタマイズするための新しいイベントを公開します。
複数のデータモジュールを持つアプリケーションサーバー内から特定の SOAP データモジュールを識別できるようになりました。SOAPServerIID プロパティを使用するかデータモジュールのインターフェースをURL の最後に追加します。
SOAP接続コンポーネントを使用して,アプリケーションサーバーの拡張されたインターフェースを呼び出すことができるようになりました。SOAPServerIID のプロパティおよび GetSOAPServer メソッドを使用します。
DataSnap はCORBA 接続をサポートしなくなりました。
コンポーネントライブラリの変更点
Windows XP テーマのサポート
VCL アプリケーションはWindows Common Controls バージョン6 のサポートを有効にするコンポーネントを含むようになりました。アプリケーションは,明示的なマニフェストがあった場合,自動的にWindows XP の新しいコントロールを使用します。詳細についてはCommon Controls およびXP テーマを参照してください。
新しいユニット
新しい DBClientActns ユニットには,TClientDataSetApply,TClientDataSetUndo,および TClientDataSetRevertと言うクライアントデータセット処理のための 3 つのアクションコンポーネントが追加されました。
新規コンポーネント
コンポーネントパレットの[dbExpress]ページには,単純な 2 層データベースアプリケーション(TSimpleDataSet で TSQLClientDataSet を置き換え)で使用する TSimpleDataSet が含まれます。
コンポーネントパレットの[Dialog]ページには,Windows 標準ページ設定ダイアログボックスを提供する TPageSetupDialog が含まれます。
コンポーネントパレットの[Additional]ページには,色を設定するメニューやツールバーのための TXPColorMap,TStandardColorMap,および TTwilightColorMap が含まれます。
新しい CLX バージョンでは,コンポーネントパレットの[System]ページに新しいディレクトリとファイルコンポーネントが含まれています。
コンポーネントパレットの新しい[Indy Intercepts]ページと[Indy I/OHandlers]ページは,インターネットプロトコルを提供します(Professional 版および Enterprise 版)。
変更されたコンポーネント
新しい CLX バージョンの TOpenDialog と TSaveDialog は,プレビュー表示などの追加機能をサポートするために拡張されています。
VCL バージョンの TCustomForm の新しい2つのプロパティである,ScreenSnap と SnapBuffer は,フォームを移動したときに画面の端へのスナップを制御します。
TCustomComboBoxEx には新しい AutoCompleteOptions プロパティが加わり,コンボボックスのユーザーキーストロークに対する応答を有効にします。
CLX ダイアログオブジェクトである TOpenDialog および TQtDialog では Qt ダイアログのかわりに,Windows のコモンダイアログボックスを使用できるようになりました。この動作は UseNativeDialog プロパティ(デフォルト値 は true)により制御されます。
廃止されたコンポーネント
廃止,もしくは、将来的に廃止される機能 コンポーネントの詳細については,Delphi7 ディレクトリの readme.txt ファイルを参照してください。
ランタイムライブラリの変更点
Classes ユニット
新しい例外クラスのEFileStreamError が追加され、EFOpenError は,EFileStreamError から派生するようになりました。この新しいクラスはFileName パラメータを取ることができます。その結果として,例外メッセージテキストには,エラーが起こったファイルの名前が含まれるようになりました。
TStrings クラスは,ValueFromIndex とNameValueSeparator という2 つの新しいプロパティが追加されました。
TThread.CheckThreadError メソッドは,可視性が private から protected に緩和されました。
Math ユニット
Math ユニットのClearExceptions 手続きに,新しいデフォルトパラメータであるRaisePending が追加されました。
StdConvs ユニット
StdConvs ユニットでは,サポートされている重量単位にストーン(1ストーン = 14ポンド)が加わりました。
StrUtils ユニット
StrUtils ユニットでは,マルチバイト文字セット(MBCS)サポートに関連する次の変更点を含んでいます。
以前のバージョンまでのLeftStr,RightStr,およびMidStr は,AnsiString をパラメータに取り、MBCSをサポートしていませんでした。このバージョンから、AnsiString と、WideString をパラメータに取れるように,オーバーロード定義されMBCSを正しく取り扱えるようになりました。この変更によりバイナリデータを扱う為にこれらの関数を使用していたコードは,正しく動作しなくなります。そのような場合は,以下で説明する新しいバイトレベル関数を使うように変更する必要があります。
新しい関数のLeftBStr,RightBStr,およびMidBStr は,これまでLeftStr,RightStr,およびMidStr によって提供されていたバイトレベルの操作機能を提供します。
新しい関数のAnsiLeftStr,AnsiRightStr,およびAnsiMidStr は,対応するWideString 関数でオーバーロードされない点を除いて,新しい関数のAnsiStr LeftStr,RightStr,およびMidStr と同じです。
StrUtils ユニットにはPosExという新しい文字列検索関数があります。
SysUtils ユニット
SysUtils ユニットには,数値,日付時刻値,および通貨値のフォーマットおよび解析を行うスレッドセーフであるオーバーロードされたルーチンが含まれるようになりました。新しいルーチンは,グローバル変数からではなく,TFormatSettings データ構造体からローカライゼーション情報を取得するため,スレッドセーフになります。このデータ構造体は使用前に設定しておく必要があります。指定されたロケールからデータ構造体を設定するために,新しい関数である GetLocaleFormatSettings が提供されています。
VarCmplx ユニット
VarCmplx には,新しい関数のVarComplexLog2,VarComplexLog10,VarComplexLogN,VarComplexTimesImaginary,およびVarComplexTimesRealが含まれています。
Variants ユニット
VarIsError 関数と VarAsError 関数が追加されました。.
EVariantError 例外は,バリアントに関する例外の基本クラスで、より詳細な情報をもてるようになりました。
新しいグローバルな Variant 制御変数の NullEqualityRule,NullMagnitudeRule,NullStrictConvert,NullAsStringValue,および PackVarCreation が追加されました。
コンパイラの変更点
Delphi dcc32 コンパイラでサポートするコンパイラ警告に,Unsafe_Type,Unsafe_Code,および Unsafe_Cast の 3 つが加わりました。これらの警告はデフォルトで無効ですが,コンパイラ指令 {$WARN UNSAFE_CODE ON},コンパイラコマンドラインスイッチ (dcc32 -W+UNSAFE_CODE),および IDE の[プロジェクト|オプション|コンパイラメッセージ]ページで有効にすることができます。
この機能は Microsoft 社の .NET プラットフォームのマネージドコード環境にコードを移植するためのものです。マネージドコード環境で言う「Unsafe」とは,JIT (Just-In-Time) コンパイラの静的分析実行で、その処理を確認できないという意味です。このようなコードは,JIT コンパイラが実行時の動作を確認するための情報が不充分なため,セキュリティ上の危険性を伴う可能性があります。安全でないコードの例としては,ポインタ操作やメモリの上書きなどがあります。
Rave レポートのサポート
このバージョンの Delphi から Nevrona社 から提供される Rave レポートを含むようになりました。アプリケーションに Rave レポートのコンポーネントを追加すると,そのアプリケーションの中でレポートを生成することができます。詳細については,Rave レポートでのレポートの作成を参照してください。
ModelMakerのサポート
ModelMaker ツールは,クラスおよびインターフェースの設計,構築,および保守を簡易化するのに役立ちます。ModelMaker では,プロジェクト・ソースコードの作成および修正が可能な,UML 形式ダイアグラムの作成機能も提供されています。詳細については,「ModelMaker によるクラスおよびコンポーネントの設計」を参照してください。
Delphi のEnterprise 版にはModelMaker ソフトウェアからのModelMaker が搭載されています。Delphi のProfessional 版にはModelMaker のトライアルバージョン(30
日間)が搭載されています。ModelMaker の機能はDelphi のどちらの版でも同じです。
説明書の変更点
すべての説明書ファイル(PDF,HTML,および INT)の配布は,インストール CD ではなく,Delphi Companion Tools CD で配布されるようになりました。説明書は CD から直接アクセスするか,選択したフォルダにコピーすることもできます。
印刷サイズの制約から,『開発者ガイド』の第 V 部「カスタムコンポーネントの作成」は,『コンポーネント開発者ガイド』の作成時に削除されています。新しい説明書は,オンラインヘルプおよび Delphi 対象ツール CD 内の PDF ファイルとして利用できます。
Object Pascal 言語は,Delphi 言語と呼ばれるようになりました。オンラインヘルプと説明書はそれに従って変更されました。
『Object Pascal 言語ガイド』は『Delphi 言語ガイド』に変更されました。
Delphi チュートリアルの正確性を維持するために,これらは『Quick Start』および『開発者ガイド』から削除されました。チュートリアルは Delphi 対象ツール CD 内では PDF ファイルとして用意されています。
Delphi オンラインヘルプのトピックの中には,Kylix および C++Builder ユーザー向けの C++ の構文およびコード記述例が含まれています。これらの例は,Delphi 開発においては無視してください。
Delphi 8 / Kylix
ネイティブ / Windows プラットフォームではないので割愛します。
Delphi 2005
IDE
IDE は,Delphi for .NET,Delphi for Win32,および C# アプリケーションの開発をサポートするようになりました。IDE のツールバーに,現在の開発環境を示すアイコン Delphi for .NET (Delphi for .NET), Delphi for Win32 (Delphi for Win32),または C# (C#)が表示されます。
IDE でファイルを更新および保存すると,カレントディレクトリの非表示ディレクトリ __history に複数のバックアップファイルが作成されるようになりました。[ ツール | オプション | エディタオプション]ページの新しい[バックアップファイルの作成]および[ファイルバックアップ制限]オプションを使用して,バックアップファイルの作成方法を制御します。デフォルトでは,最大 10 個のバックアップファイルが作成されます。
新しい[履歴マネージャ]ページを使用して,複数のバックアップバージョン,保存済みのローカルな変更,アクティブファイルの未保存の変更のバッファなど,ファイルのさまざまな旧バージョンを表示して比較できます。旧バージョンを現在のバージョンに復元したり,同期スクロールを使って 2 つのファイルバージョン内を移動することができます。
新しい構造ビューには,コードエディタに表示されるソースコードや HTML の階層,またはデザイナに表示されるコンポーネントが表示されます。ソースコードや HTML の構造が表示されている場合は,項目をダブルクリックしてコードエディタ内の対応する宣言または場所にジャンプできます。コンポーネントが表示されている場合,コンポーネントをダブルクリックすると,それがフォーム上で選択されます。コードに構文エラーがあると,ビューの[エラー]フォルダに表示されます。
コンポーネントウィザードのインポートを使用して,既存の ActiveX,.NET,または VCL コンポーネントを新しいパッケージまたは既存のパッケージにインポートできます。
新しい環境オプションを使用して,ドッキングされていないフローティングウィンドウと[デザイン]タブのどちらに VCL フォームを表示するかを選択できます。[ ツール | オプション | 環境オプション | Delphi オプション | VCL デザイナ]を選択し,[埋め込みデザイナ]オプションのチェックをはずすと,フローティング VCL フォームが有効になります。
コードエディタが表示されたときに,オブジェクトインスペクタにフォーム情報が維持されるようになりました。
ツールパレットの[検索]テキストボックスは,フィルタアイコン Tool Palette Filter Icon にかわっています。ツールパレットに表示される項目をフィルタするには,ツールパレット内の任意の場所をクリックし,検索する項目の名前を入力していきます。検索フィルタを削除するには,フィルタアイコンをクリックします。
[ ツール | |オプション]の新しい[ツールパレット]ページと[色]ページを使用して,ツールパレットの外観を管理します。これにより,ツールパレットのいくつかのコンテキストメニューコマンドがなくなっています。
コードエディタ
リファクタリング機能を使用すると,意図するコードの動作を変更せずに,コードを再構築したり変更することができます。リファクタリングにより,コードを整理して,判読性とパフォーマンスを向上させることができます。Delphi 2005 のリファクタリングには,メソッドの抽出,シンボルの名前変更,変数やフィールドの宣言,ユニットと名前空間の検索などがあります。
新しい同期編集機能 Sync Edit を使用して,コード内で重複する識別子を同時に編集できます。たとえば label1 など,重複する識別子を含むコードブロックを選択して,左マージンに表示されている[同期編集モード]アイコン Sync Edit icon をクリックすると,重複するすべての識別子が強調表示され,カーソルが最初の識別子に移動します。
コードエディタのブックマークは,ファイルを閉じても維持されるようになりました。コードエディタのコンテキストメニューで[ブックマークのクリア]コマンドを選択すると,すべてのブックマークがファイルから削除されます。
[ ツール | オプション | エディタ設定 | 支援機能]ページに新しい[Error Insight の有効化]オプションがあります。Error Insight は,無効なコードと HTML を赤色の波形の下線で自動的に強調します。強調表示されたテキストの上にマウスを移動すると,ヒントウィンドウにエラーの原因が表示されます。
[ ツール | オプション | エディタ設定 | 支援機能]ページに新しい[Help Insight ヒント]オプションがあります。コードエディタでシンボルの上にマウスを移動すると,ヒントウィンドウにシンボルの簡単な説明が表示されます。追加情報があれば,ヒントウィンドウにリンクが表示されます。
〔Ctrl〕+〔/〕を使用して,コードエディタで選択したコードブロックをコメント化できるようになりました。コードブロック内の各行の先頭に // が付加されます。〔Ctrl〕+〔/〕を押すと,コードブロックの 1 行めの先頭に // が付いているかどうかに基づいて,スラッシュが追加または削除されます。Visual Studio または Visual Basic のキーマッピングを使用している場合は,〔Ctrl〕+〔K〕+〔C〕を使用してください。
デバッグ
IDE は,Borland .NET Debugger と Borland Win32 Debugger の両方をサポートするようになりました。IDE は,現在のプロジェクトタイプに基づいて適切なデバッガを自動的に使用します。ただし,プロセスにアタッチしたり([ 実行 | プロセスにアタッチ]を使用),プロセスをロードする([ 実行 | プロセスのロード]を使用)ときに,どちらかのデバッガを手動で選択できます。
コマンドラインからデバッグする場合は,新しいコマンドラインスイッチの debugger=[borwin32|bordonet] を使用して,Borland Win32 Debugger または Borland .NET Debugger を選択できます。
プロジェクトグループ内のクロスプラットフォーム(Win32 と .NET)のデバッグがサポートされ,デバッガは可能な限り共通のユーザーインターフェースを共有します。
新しい Borland.dbkasp.dll により,ASP.NET アプリケーションのデバッグ機能が強化されています。
[モジュール]ウィンドウに複数のアプリケーションドメインが個別のプロセスとして表示されるようになりました。ドメインノードをクリックすると,ウィンドウの右側に名前空間,クラス,およびメソッドのスコープがツリービューで表示されます。
[モジュール]ウィンドウ内のモジュールペインをモジュール名,ベースアドレス,またはパスに基づいてソートできるようになりました。それには,対応する列ヘッダーをクリックします。
[ローカル変数]ウィンドウで,Delphi Win32 アプリケーションのデバッグ時に,現在のフレームにないローカル変数を表示できるようになりました。これまで,この機能は,Delphi .NET,C#,および C++ アプリケーションのデバッグ時にのみ使用できました。また,変数名と値が個別の列に表示され,わかりやすくなっています。
[ブレークポイント一覧]ウィンドウに,ブレークポイントを個別に有効または無効にできる新しいチェックボックスと,ブレークポイントを管理するツールバーが追加されています。さらに,[ブレークポイント一覧]ウィンドウでは,条件,パスカウント,およびグループをインプレース編集できるようになりました。それには,対応するフィールドで現在の値をクリックします。
Delphi Win32 アプリケーションをデバッグする場合,[呼び出し履歴]ウィンドウに,デバッグ情報がないスタックフレームに関する情報が表示されるようになりました。
[ブレークポイントの設定]ダイアログボックスでブレークポイントをカスタマイズする場合は,新しい[呼び出し履歴のログ]チェックボックスを使用して,ブレークポイントに達したときにデバッグイベントログに呼び出し履歴の一部または全部を表示できます。
[デバッガ例外通知]ダイアログボックスに,実行を停止または続行したり,例外オブジェクトのデバッグインスペクタを表示したり,CPU ビューの表示 を表示するためのオプションが追加されています。
マネージコードをデバッグする場合は,[CPU]ウィンドウに MSIL(Microsoft Intermediate Language)命令が表示されるようになりました。[CPU]ウィンドウのコンテキストメニューに,MSIL コードの表示を切り替える[混合 IL コード]コマンドが追加されています。
[FPU]ウィンドウの SSE ペインに,SSE(Streaming SIMD Extensions)レジスタが表示されるようになりました。SSE ペインのコンテキストメニューにある[表示形式の指定]コマンドを使用して,レジスタの内容をクワッド,ダブルクワッド,シングル,またはダブルワードで表示できます。
すべてのデバッガウィンドウが Unicode 対応になり,各国文字を表示したり処理できるようになりました。
ECO フレームワーク
ECO フレームワーク が ASP.NET アプリケーションと ASP.NET Web サービスアプリケーションでサポートされるようになりました。
ECO 空間デザイナに,既存の(ECO 以外の)データベース用のコードとオブジェクトリレーショナルマッピングを生成するツールが追加されています。
ECO 空間デザイナには,既存の ECO プロジェクトを現在のリリースにアップグレードするためのツールがあります。詳細については,「旧リリースの ECO フレームワークプロジェクトの更新」を参照してください。
[ECO パッケージ選択]ダイアログボックスで,選択したパッケージのヘルプヒントに,パッケージ内のすべてのクラスが表示されるようになりました。
ECO 空間デザイナで,コンポーネントのヘルプヒントには,完了したタスクと完了する必要があるタスクが表示されます。
ECO モデルを DLL に作成し,その DLL を別のプロジェクトで参照できます。
新しい PersistenceMapperProvider コードテンプレートを使用して,スレッドセーフなデータベース接続プーリングを行い,複数の ECO 空間インスタンスで 1 つの PersistenceMapper を共有できるクラスを生成できます。
HTML
新しい DOM ベースの HTML フォーマットツールでは,HTML フォーマットの機能が強化されています。
HTML タグエディタでは,内部 HTML だけでなく,タグ全体を編集できるようになりました。
HTML タグエディタを使用して,ほとんどの HTML タグを編集できるようになりました。ただし,body,tbody,tr,caption,および tfoot は除きます。
構文強調表示とコード補完(〔Ctrl〕+スペース)を CSS(Cascading Style Sheet)ファイルで使用できるようになりました。
新しい構造ビューには,コードエディタに表示されている HTML の階層が表示されます。構造ビューで要素をダブルクリックすると,コードエディタ内のその要素の場所に移動します。
この製品には 2004 年 8 月バージョンの HTML Tidy が付属しています。
ASP.NET Web 開発
ASP.NET Deployment Manager を ASP.NET アプリケーションに追加して,配布プロセスで利用できます。Deployment Manager を使用して,配布に必要なファイルを決定し,必要に応じてファイルリストを変更し,選択した配布先ディレクトリにファイルをコピーできます。
新しい Borland.dbkasp.dll により,ASP.NET アプリケーションのデバッグ機能が強化されています。
DB Web コントロールに,ナビゲーション API と Navigation Extender コンポーネントが用意されました。これらを使用して,設計時に標準の Web コントロールをナビゲーションコントロールに変換できます。
DB Web サウンドコンポーネントを使用すると,インストールされているメディアプレーヤを利用してアプリケーションにサウンドを追加できます。サポートされているサウンドフォーマットは,.wav,.mp3,.wma などです。
DB Web ビデオコンポーネントを使用すると,インストールされているメディアプレーヤを利用してアプリケーションにストリーミングビデオを追加できます。
DB Web コントロールウィザードにより,テンプレートを使用して,既存の DB Web コントロールを拡張したり,ユーザー独自の DB Web コントロールを作成することができます。Delphi 用と C# 用のコントロールを個別に構築できます。複数の Web コントロールを含む DB Web コントロールライブラリも作成できます。
DB Web コントロールに ECO 対応のデータソースコンポーネントが追加されており,ECO アプリケーションで DB Web コントロールを使用できます。ECODataSource コントロールは,ECO 持続化層と DB Web コントロールをブリッジします。
テンプレートエディタを DataList コントロールと DataGrid コントロールのコンテキストメニューから使用できるようになりました。
プロジェクトマネージャのコンテキストメニューに,プロジェクトフォルダ内にフォルダを作成するコマンド([ 新規作成 | フォルダ]),プロジェクトに追加のファイルを作成するコマンド([ 新規作成 | その他]),およびプロジェクトフォルダ内のすべてのファイルを表示するコマンド([すべてのファイルを表示])が新しく追加されました。
新しい[URL の選択]ダイアログボックスを使用して,URL 参照を詳細に制御できます。このダイアログボックスは,オブジェクトインスペクタで,URL プロパティ(Image Web コントロールの ImageURL プロパティなど)の省略符ボタンをクリックすると表示されます。ユーザー指定の URL,ドキュメントからの相対 URL,またはルートからの相対 URL を指定およびプレビューできます。
新しい[サーバーコントロールとして実行]コマンドは,HTML 要素をサーバーコントロールに変換します。これにより,これらの要素をプログラムで制御できます。このコマンドは,id="id" 属性と runat="server" 属性を .aspx ファイルに追加し,分離コードファイル内で要素を宣言します。このコマンドを使用するには,デザイナで HTML 要素を右クリックします。
〔Shift〕キーを押してコントロールをドラッグすることで,Web フォーム上の複数のコントロールを選択して移動できるようになりました。
データベース開発
[ストアドプロシージャ]ダイアログ - BdpCommand コンポーネントの CommandType プロパティを StoredProcedure に設定し,オブジェクトインスペクタの下部の[デザイナバーブ]領域にある[コマンドテキストエディタ]をクリックすると,[ストアドプロシージャ]ダイアログボックスが表示されます。このダイアログボックスを使用して,使用するストアドプロシージャを指定したり,入力パラメータを設定したり,ストアドプロシージャを実行することができます。出力パラメータがある場合は,ストアドプロシージャを実行すると表示されます。
Sybase 12.5 のサポート - BDP.NET に,Sybase 12.5 をプロバイダとしてサポートする Borland.Data.Sybase 名前空間が組み込まれています。これにより,Sybase 用のデータベースアプリケーションを開発する際に,バリエーション豊富なコンポーネントデザイナ,設計時のライブデータなどの BDP.NET のさまざまな機能を利用できます。
プロバイダの強化 - さまざまな更新が加えられ,サポートされるプロバイダの信頼性とパフォーマンスが向上しています。
BdpCopyTable - BdpCopyTable クラスを使用すると,プログラムによってプロバイダ間でデータを移行できます。BdpCopyTable はデータ構造のマップ,主キーの作成,およびデータのコピーを行います。現在のところ,このクラスで外部キーの作成や依存オブジェクトのコピーを行うことはできません。
複数テーブルの解決 - DataHub クラスと DataSync クラスが追加されたことで,一連の DataAdpater を介してデータベースアプリケーションを複数のデータプロバイダに接続できます。 DataSync クラスにより,複数のテーブルにまたがってトランザクションを解決するようなコミット動作を指定できます。
データリモート機能 - DataHub クラスや DataSync クラスを追加された RemoteConnection クラスや RemoteServer クラスと組み合わせて使用することで,複数のコンピュータまたはドメイン上で稼動するアプリケーションが相互に通信できる多層分散データベースアーキテクチャを開発できます。 DataHub クラスと RemoteConnection クラスはクライアントアプリケーションの一部として,リモートに置かれた DataSync クラスと RemoteServer クラスに接続します。
BdpDataAdpater でテーブルと列のマッピングがサポートされるようになりました。
データエクスプローラの更新
データエクスプローラは,データプロバイダ間のデータの移行をサポートします。テーブルのコンテキストメニューには,[データの移行],[テーブルのコピー],および[テーブルの貼り付け]コマンドがあります。これらを使用して,データテーブルをプロバイダからコピーし,別のプロバイダに新しいテーブルとして貼り付けることができます。
ストアドプロシージャのドラッグアンドドロップ - ストアドプロシージャをデータエクスプローラのプロバイダからデザイナ内のフォームにドラッグできます。この操作により, BdpConnection コンポーネントと BdpCommand コンポーネントが追加および構成され,取得されたストアドプロシージャパラメータが自動的に入力されます。
メタデータサービス - データエクスプローラは,データベーススキーマの表示と変更に使用できるさまざまなメタデータサービスを備えています。データエクスプローラのコンテキストメニューを使用して,テーブルからデータを取得して表示したり,新しいテーブルを追加したり,既存のテーブルを削除したり,既存のテーブルのデータ構造を変更することができます。ビューに関連付けられているデータを取得できます。ストアドプロシージャのパラメータを表示および変更(入力のみ)したり,ストアドプロシージャを実行することもできます。
VCL for .NET のデータベースサポートの更新
BDE for .NET - BDE for .NET は,パスを指定しなくても DLL を動的にロードできるように更新されています。また,BLOB 操作のパフォーマンスが向上し,これまで .NET の実装になかったクラス( TUpdateSQL , TNestedTable , TStoredProc )が追加されています。
dbExpress - dbExpress で更新された点には,コアドライバの拡張,メタデータ機能の強化(スキーマ名の検索やバグの修正など),.NET に移植された TSimpleDataSet ,コマンドテキストエディタの拡張, TSQLStoredProc のパフォーマンスの向上, IListSource を使用する新しい TDataSet コンポーネントなどがあります。
dbGo - dbGo が .NET に移植されており,ADO データベースアプリケーションの .NET Framework への移行がサポートされます。
DataSnap - DataSnap コンポーネントの TLocalConnection , TConnectionBroker ,および TSharedConnection が .NET に移植されています。
その他のデータベースサポートの更新
型付きデータセットのサポートの強化 - プロジェクト全体をコンパイルしなくても,型付きデータセットをスタンドアロンのアセンブリにコンパイルできるようになりました。型付きデータセットは Web サービスからのデータセットをサポートします。プログラムマネージャのコンテキストメニューからリレーションコレクションエディタとテーブルコレクションエディタにアクセスできるようになり,型付きデータセットの変更がより簡単になりました。.NET の[データセットプロパティ]ダイアログボックスに簡単にアクセスして,型付きデータセットの構造,プロパティ,および制約を表示できます。
オブジェクトインスペクタから, SQLConnection コンポーネントの ConnectionString プロパティの接続文字列エディタにアクセスできます。
ビジュアルコンポーネントライブラリ(VCL)
.NET Framework をサポートするために,WebSnap や IntraWeb などの多くの Win32 VCL コンポーネントが更新されています。
Delphi 言語拡張機能
コンテナの反復処理に使用できる新しい for-in-do ステートメントが Delphi に追加されています。詳細については,『Delphi 言語ガイド』の「宣言と文」を参照してください。
コンパイラが関数と手続きのインライン化をサポートするようになりました。詳細については,『Delphi 言語ガイド』の「手続きと関数の呼び出し」を参照してください。
識別子に英数 Unicode 文字を使用できるように Delphi 言語が拡張されました。メモ:Unicode 文字は,クラスの published 部の識別子またはパブリッシュメンバーで使用される型では使用できません。
Delphi 言語が 1 つの名前空間の複数のユニットの集約をサポートするようになりました。詳細については,「Delphi での名前空間の使い方」を参照してください。
Delphi for .NET コンパイラが動的に割り当てられる多次元配列をサポートするようになりました。詳細については,『Delphi 言語ガイド』の「構造化型」を参照してください。
strict private
strict protected
abstractクラス
sealedクラス
ソースコントロールの統合
StarTeam 統合により,Delphi プロジェクトと同様に Delphi プロジェクトグループをソースコントロールの管理下に置くことができます。
StarTeam 統合は,StarTeam クライアントのユーザーインターフェースの大部分を Delphi 2005 開発環境に組み込んでいます。これらの埋め込み StarTeam 要素から,コンテキストメニューやタブ付きペインを介して,クライアントのメインウィンドウ(「プロジェクトビューウィンドウ」とも言う)にあるほとんどのコマンドと情報にアクセスできます。埋め込み StarTeam 要素を開くには,[ StarTeam | 埋め込み StarTeam]を選択します。
StarTeam 統合は,Delphi 2005 の履歴マネージャと連携して,アクティブファイルのローカルバージョン情報と StarTeam バージョン情報の両方を表示します。
テスト
Delphi 2005 には,オープンソーステストフレームワークである DUnit と NUnit の機能が統合されています。
DUnit の機能を使用して,Delphi プロジェクトにテストケースとテストスイートを追加できます。DUnit は GUI テストランナーを備えており,これを IDE から起動して,プロジェクトテストを対話型で実行できます。DUnit はコンソールモードのテスト機能も備えています。
NUnit の機能を使用して,C# プロジェクトにテストケースとテストスイートを追加できます。NUnit は GUI テストランナーを備えており,これを IDE から起動して,プロジェクトテストを対話型で実行できます。NUnit はコンソールモードのテスト機能も備えています。
テストケースウィザードを使用して,DUnit および NUnit テストフィクスチャを構築できます。
テストケースウィザードを使用して,テストスイートに個別のテストケースを追加できます。
トランスレーションツール
[ ツール | オプション]ダイアログボックスに,トランスレーションツールのオプションが追加されています。
トランスレーションツールのウィンドウが IDE 内にドッキングされるようになりました。
See Also:
BDS 2006 (Delphi 2006) / Turbo Delphi
IDE
新しいメモリマネージャ : 新しいメモリマネージャにより,起動時間,実行速度,ハイパースレッドパフォーマンスが大幅に向上しています。
さまざまな機能のパフォーマンスの向上 : このリリースでは,[検索|Uses の検索],[名前空間のインポート],[クラスの検索],[パラメータの変更]のパフォーマンスが大幅に強化されています。
パラメータの変更リファクタリング : このリファクタリングを使用して,メソッドパラメータを追加,削除,順序変更できます。パラメータの変更リファクタリングは,Delphi for Win32 と Delphi for .NET で使用できます。
メッセージビュー : メッセージビューは自動的にスクロールし,新しい項目が表示されます。
プロジェクトリポジトリの強化 : 入門プロジェクト,デモ,テンプレート,またはよく使用するほかのファイルをオブジェクトリポジトリに追加して,[新規作成]メニューから使用できるようになりました。
フォームデザイナ
デザインガイドライン : フォーム上のコンポーネントを移動すると,デザインガイドラインが表示され,コンポーネントの位置揃えを補助します。
フォーム配置ツール : この新しいビューは,フォームデザイナの右下隅に表示されます。このビューを拡大し,フォームの実行時位置をすばやく変更できます。
コードエディタ
新しいコードテンプレート : コードテンプレートは,よく使用するコード構造の入力作業を自動化します。Developer Studio 2006 は,サポート対象のすべての言語にテンプレートライブラリを提供しています。新しいテンプレートを追加するには,[ ファイル | 新規作成 | その他 | その他のファイル | Code Template ]を選択します。
囲みテンプレート : 選択したコードブロックを右クリックし,[囲む]を選択すると,そのコードを囲むテンプレートの候補が表示されます。
迅速なテンプレート編集 : ソースコードにコードテンプレートを追加した場合は,〔Tab〕キーを押してフィールドや挿入ポイントに順に移動しながら,テンプレートにロジックをすばやく入力できます。
ブロック補完 : コードの編集時に必要であればブロックを閉じるコードが自動的に追加されます。
メソッド間の移動 : ホットキーを使用して,ソースコード内のメソッド間をすばやく移動できます。〔Ctrl〕+〔Alt〕+〔↑〕と〔Ctrl〕+ 〔Alt〕+〔↓〕は,それぞれ前のメソッドと次のメソッドに移動します。〔Ctrl〕+ 〔Alt〕+〔Home〕と〔Ctrl〕+〔Alt〕+〔End〕は,それぞれソースの最初のメソッドと最後のメソッドに移動します。〔Ctrl〕+〔Alt〕+〔Q^L〕は,クラス内制限をオン/オフにします。クラス内制限は,メソッド間の移動を現在のクラスだけに適用する機能です。
コードエディタのマージン領域の強化 : コードエディタのマージン領域がわかりやすく整理されました。
差分の強調表示 : 最後に保存されてから変更された行は,コードエディタの対応するマージン領域が黄色で強調表示されます。変更されて現在の編集セッション中に保存された行は,対応するマージン領域が緑色で強調表示されます。
その他のすべてのページの終了 : ページタブを右クリックし,[すべての残りのページを閉じる]を選択すると,そのタブ以外のすべてのページを閉じることができます。
デバッガ
リモートデバッグ : リモートデバッグは,ネイティブ Win32 アプリケーション,マネージアプリケーション,および ASP.NET アプリケーションで使用できます。
シンボルテーブル管理 : デバッグする特定のモジュールで,シンボルテーブルをロードする順序を指定できます。検索するシンボルテーブルを限定して,デバッグ処理の速度を上げることもできます。
監視項目の展開 : 監視しているオブジェクト内のメンバーや要素の値を調べることができるようになりました。監視しているオブジェクトには,展開されたツールチップが表示されます。
CPU ビュー : CPU ビューで,複数の項目を選択し,クリップボードにコピーできるようになりました。
ロード順のソート : モジュールビューで,モジュールをロード順にソートできるようになりました。
暗黙的に開いたファイルを閉じる : デバッガは,デバッグセッションで自動的に開いたファイルを閉じるようになりました。
ECO フレームワーク
ECO ステートマシン : ECO ステートマシン図が追加され,クラスの動作をモデル化できるようになりました。ECO ステートマシン図は,entry/exit アクション,移行の効果,OCL ガード式,並行ステートマシンをサポートします。
ECO アクション言語 : ECO アクション言語は,副作用を実行できるように拡張された OCL(Object Constraint Language)です。ステートマシン図で ECO アクション言語を使用すると,コードを記述するのではなく,図自体で完全に動作を指定できます。
OCL 式エディタ : OCL 式エディタは,ECO WinForm デザイナと ECO UML 図で使用できます。
既存のデータベースの変換と ECO によるラップ : ECO 空間デザイナに,既存のデータベースから ECO モデルを作成するためのツールが用意されました。このウィザードは,データベースの選択と OR マッピングのカスタマイズを手順にしたがって実行します。
モデリング
Together UML ツール : 新しい種類の図やコード構造(インターフェース,列挙,構造体など)をモデルビューから作成できます。使用できる図や構造として,クラス図,ユースケース図,シーケンス図,コラボレーション図,状態図,アクティビティ図,コンポーネント図,配置図,クラス,インターフェース,構造体,列挙,デリゲート,名前空間,オブジェクト,制約,メモがあります。
Together エンジン : コアエンジンが書き換えられて,実行速度と信頼性が向上しています
ASP.NET Web 開発
参照先アセンブリの表示 : Deployment Manager は,現在のプロジェクトが参照するすべてのアセンブリを表示できるようになりました。
外部ファイルの追加 : [外部ファイル]ダイアログボックスを使用して,配布する外部ファイルを簡単に選択できるようになりました。
マークアップソースの維持 : MSHTML コントロールを使ってマークアップ文書を編集する場合に,ホワイトスペース,ユーザー指定のタグと属性フォーマット,終了タグが維持されるようになりました。
デフォルトのレイアウトの変更 : デザインエディタのデフォルトのレイアウトをグリッドレイアウトまたはフローレイアウトに変更できるようになりました。デフォルトのレイアウトを変更するには, [ ツール | オプション | HTML/ASP.NET ] オプションを選択します。
Cassini : Developer Studio 2006 は,Cassini デバッグ Web サーバーのサポートが強化されました。構築済みのサーバーが IDE に組み込まれています。
データベース
dbExpress
dbExpress Unicode のサポート : MSSQL ドライバが Unicode をサポートするようになりました。
ConnectionString プロパティ : dbExpress の ConnectionString プロパティを使用すると,すべてのデータベースオプションと接続情報を 1 つの接続文字列で渡すことができます。
小数点記号のカスタマイズ : 小数点記号を指定できるようになりました。
MSSQL の戻り値 : ストアドプロシージャからの dbExpress MSSQL の戻り値がサポートされています。
TSQLQuery のサポート : TSQLQuery の OUT パラメータと IN パラメータがサポートされています。
BDP.NET の更新された点
コネクションプーリングのサポート : 既存のプールの接続を使用することで,接続時間を短縮できるようになりました。コネクションプーリングのオプションは,[接続エディタ]ダイアログボックスにあります。
調停エラーダイアログ : データベースの削除,挿入,または更新操作中にエラーが発生した場合は,[調停エラー]ダイアログボックスを使用して,使用するデータソースを決定したり,操作を完全に中止するか,それとも次の更新を続行するかを決定することができます。
一般的なデータベース機能
MySQL 4.0.24 BDP プロバイダのサポート
カスタマイズ可能な SQL 型マッピングによるデータの移行
ISQLSchemaCreate での CREATE/ALTER/DROP に対する QuoteObjects のサポート
ISQLExtendedMetaData での関連オブジェクトと ForeignKey のサポート(ORACLE,Interbase,MSSQL,Sybase)
次の Oracle 9i データ型のサポート : TIMESTAMP,TIMESTAMP WITH TIME ZONE,TIMESTAMP WITH LOCAL TIME ZONE,INTERVAL YEAR TO MONTH,INTERVAL DAY TO SECOND
VCL
新しいコンポーネント :
TTrayIcon
TGridPanel
TFlowPanel
新しいクラス :
TCustomTransparentControl
TMargins
TPadding
Delphi 言語拡張機能
演算子のオーバーロード
非仮想メソッドの宣言
通常のインスタンスメソッド
パラメータリストが空でないコンストラクタ
静的なメソッドとプロパティ
メソッドを持つレコード
クラスヘルパー
StarTeam 統合
検索 : StarTeam 統合は,Borland Search 機能にアクセスできるように拡張されています。
差分表示/Merge : スタンドアロンの StarTeam クライアントがインストールされていない場合でも,埋め込み StarTeam クライアントの 差分表示機能と Visual Merge 機能を使用できます。
CaliberRM 統合
統合 : IDE から CaliberRM サーバーに直接ログオンできます。ログオンしたら,要件管理機能を使用して,要件を追加,削除,または更新できます。
ソースコードファイルへの要件のリンク : IDE 内でソースコードファイルに要件を直接リンクできます。
See Also:
Delphi 2007 / R2
Delphi 2007 の新機能については、DocWiki を御覧下さい。
RAD Studio の新機能(Delphi for Win32 2007)
また、Delphi 2005 ~2007 の間に行われた変更はこちらでも知る事ができます。
See Also:
Delphi 2009
Delphi 2009 の新機能については、DocWiki を御覧下さい。
Delphi 2009 および C++Builder 2009 の新機能
See Also:
Delphi 2010
Delphi 2010 の新機能については、DocWiki を御覧下さい。
Delphi 2010 および C++Builder 2010 の新機能
See Also:
Delphi XE
Delphi XE の新機能については、DocWiki を御覧下さい。
Delphi XE および C++Builder XE の新機能
See Also:
Delphi XE2
Delphi XE2 の新機能については、DocWiki を御覧下さい。
Delphi XE2 および C++Builder XE2 の新機能
See Also:
Delphi XE3
Delphi XE3 の新機能については、DocWiki を御覧下さい。
Delphi XE3 および C++Builder XE3 の新機能
See Also:
Delphi XE4
Delphi XE4 の新機能については、DocWiki を御覧下さい。
Delphi XE4 および C++Builder XE4 の新機能
See Also:
Delphi XE5
Delphi XE5 の新機能については、DocWiki を御覧下さい。
Delphi XE5 および C++Builder XE5 の新機能
See Also:
Delphi XE6
Delphi XE6 の新機能については、DocWiki を御覧下さい。
Delphi XE6 および C++Builder XE6 の新機能
See Also:
Delphi XE7
Delphi XE7 の新機能については、DocWiki を御覧下さい。
Delphi XE7 および C++Builder XE7 の新機能
See Also: