Delphi 3 トライアル版へようこそ =============================== README.TXT: 他には記載されていない重要な情報がこのファイルに収められています。必ず最後まで目をとおしてください。 Copyright (c) 1983 - 1997 by Borland International. All Rights Reserved. このファイルの内容 ------------------ 0. トライアル版について 1. サンプルプログラム 2. 重要な注意事項 3. 確認されている制約事項 0. トライアル版について ======================= トライアル版に含まれているプログラムは,日本語版 Delphi 3 Standard 版をもとに開発されています。製品の仕様は,改良のため予告なく変更することがあります。 ■トライアル版での制約事項は次のとおりです。 ・インストール後,30 日間のみ使用できます。初めてインストールを行って から 30 日間が経過した場合,再インストールしても使用できません。 ・1997 年 12 月 31 日まで使用できます。それ以降は,使用できません。 ・作成したアプリケーションは,Delphi の開発環境の中だけで実行できます。 ・コマンドラインツール,ユーティリティ,ソースコード,Windows API の オンラインヘルプは付属していません。 ・カスタマーサービス,テクニカルサポートは受け付けておりません。 ■ヘルプについて このトライアル版に含まれているヘルプは作成中のものであり,各ヘルプ項目の表題の右側にはトピック番号が表示されます。製品版では,これらが表示されることはありません。 [ 重要 ] トライアル版で作成したアプリケーションは,再配布できません。 なお,Delphi 3 製品版では,作成したアプリケーションは新たな契約や ライセンス料なしで配布することができます。 1. サンプルプログラム ===================== Delphi のサンプルプログラムは Delphi 3\Demos ディレクトリにインストールされます。各サンプルには,プロジェクトファイル.DPR が含まれます。 DelCtrls (Demos\ActiveX\Delctrls) Delphi の標準コンポーネントを含む ActiveX コントロール (Delphi Client/Server 版,Professional 版のみ) TRegSvr (Demos\ActiveX\Tregsvr) ActiveX サーバーの登録を行うユーティリティ (Delphi Client/Server 版のみ) Webbrows (Demos\Coolstuf) 新しいコンポーネント TToolBar,TCoolBar,TAnimate を使用した Web ブラウザ。この他にも Demos\Internet\html にブラウザが 含まれます。 (Delphi Client/Server 版のみ) HTTPDemo (Demos\Internet\HTTP) HTTP サーバーから内容を取得する Web ブラウザ。 (Delphi Client/Server 版,Professional 版のみ) EmpEdit (Demos\DB\Clientds) 編集可能な Emploeyee テーブルを作成するため,TClientDataSet を使用 している。クライアントアプリケーションは EMPEDIT.DPR。サーバー アプリケーションは SERVER.DPR。 (Delphi Client/Server 版のみ) WebServ (Demos\Webserv) 新しい Internet コンポーネントを使用した,ISAPI Web サーバーとして 使用できるデータベースアプリケーション。最初の Web ページには, 顧客と会社名のリストとともに,それぞれの会社へのリンクが表示 されます。 (Delphi Client/Server 版のみ) Ftp (Demos\Internet\Ftp) FTP サーバーのファイルの表示と取得を行う,File Transfer Protocol コンポーネントを使用したサンプル。 (Delphi Client/Server 版,Professional 版のみ) NNTPDemo (Demos\Internet\Nntp) ニュースグループ ブラウザ (Delphi Client/Server 版,Professional 版のみ) SimpMail (Demos\Internet\Simpmail) SMTP/POP メイルクライアント (Delphi Client/Server 版,Professional 版のみ) Chat (Demos\Internet\Chat) Internet を使用したチャットアプリケーション。Client/Server ソケット コンポーネントを使用。 (Delphi Client/Server 版,Professional 版のみ) DChat (Demos\Internet\Tcp) TCP コンポーネントを使用して,テキストをコンピュータから他の コンピュータに転送する例。 (Delphi Client/Server 版,Professional 版のみ) RichEdit (Demos\Richedit) TRichEdit コントロールを使用したサンプル DEMOS\DB このディレクトリには,DEMOS\DATA にあるデータベースを使用する サンプルプログラムがあります。 DEMOS\DOC このディレクトリには,マニュアルの説明で使われているサンプル プログラムがあります。 DEMOS\DATA このディレクトリには,サンプルプログラムが使用するテーブル が収められています。また,エリアス DBDEMOS のパスとして このディレクトリが設定されています。 2. 重要な注意事項 ================= アプリケーションの配布 ---------------------- Delphi で作成したアプリケーションを配布する前に Delphi 3\DEPLOY.TXT をお読みください。注意事項やガイドラインが記載されています。 オンラインヘルプについて ------------------------ WinHelp コンパイラの制約により,Windows API のヘルプトピックは Delphi ヘルプインデックスには表示されません。しかし,IDE の状況関知ヘルプでは Windows API ヘルプにも対応しています。 したがって,例えばコードエディタの中で API 関数にカーソルを置き,F1 を押せば,該当する Windows API のヘルプトピックが表示されます。Windows API のトピックを見たい場合は,Windows API ヘルプファイルを直接開いてください。なお,以下の手順で IDE のスピードバーにボタンを追加すれば,ヘルプの参照を簡単に行うことができます。 1) IDE のスピードバー上で右クリック 2) ポップアップメニューより [プロパティ(R)] を選択 3) [分類(A)] リストボックスより "ヘルプ" を選択 4) [コマンド(M)] リストボックスの "Windows API ヘルプ" のアイコンを IDE のスピードバーにドラッグ 5) [閉じる(C)] でダイアログを閉じる [Win 3.1] パレット上のコンポーネントに関するヘルプは,状況関知型ヘルプにリンクされていません。これらの旧バージョンのコンポーネントについての説明は,CD-ROM の \Delphi16\Runimage\Delphi\Bin\DELPHI.HLP を参照してください。 ActiveX パレットの VtChart および Graph コンポーネントのヘルプは,状況関知型ヘルプにリンクされていません。VtChart のヘルプは Delphi 3\OCX\Vci\Impress\Vcfi.hlp,Graph のヘルプは Delphi 3\OCX\Pinnacle\Graph.hlp を参照してください。 SQL モニタでは状況関知型ヘルプは使用できません。ヘルプはヘルプインデックスの SQL Monitor の項目から参照してください。 いくつかのデータベース関連のプログラム例には絶対パス名のディレクトリ名が含まれているため,このようなサンプルプログラムをコンパイルできるようにするにはパス名の変更が必要です。 COMCTL32 -------- Win32 パレットのコンポーネントでは,一部の機能(以下のリストを参照)が COMCTL32.DLL の最新バージョン(97年5月現在においては4.70)でなければ動作しないものがあります。特に TCoolBar と TDateTimePicker は4.70 もしくはそれ以降のバージョンでなければ使用することはできません。 4.70 より古い COMCTL32.DLL で使用した場合に生ずる各コンポーネントでの使用制限 TToolBar.DisabledImages TToolBar.Flat TToolBar.HotImages TToolBar.Images TTabControl.HotTrack TTabControl.ScrollOpposite TTabControl.TabPosition TPageControl.HotTrack TPageControl.ScrollOpposite TPageControl.TabPosition TListView.Checkboxes TListView.HotTrack TListView.GridLines TListView.RowSelect TListItem.Checked TProgressBar の Min,Max,Position プロパティは 0 から 65535 の間にある必要があります。 ActiveX とリモートデータセットの配布について -------------------------------------------- (a) StdVCL ユニット,それに IStrings,IProvider,あるいは IDataBroker インターフェースを使用 (b) Delphi の Font,Color,Strings あるいは Picture をプロパティページ で使用 配布するアプリケーションあるいはライブラリが上記に当てはまる場合は,Borland standard VCL タイプライブラリを一緒に配布しなければなりません。このライブラリには2つの形式があります。STDVCL32.DLL とスタンドアロンのタイプライブラリ STDVCL32.TLB です。これらはファイルは Windows のシステムディレクトリに収められています。Delhpi のプロパティページを使用するアプリケーション/ライブラリは必ず STDVCL32.DLL を同梱するようにしてください。なお,単に (a) に示したインターフェースを使用するだけのプログラムならば STDVCL32.TLB を入れるだけで構いません。プログラムの実行には,その環境に STDVCL32.DLL あるいは STDVCL32.TLB が登録されていなければなりません。プログラム内で DLL/TLB を登録する方法は Demos\ActiveX ディレクトリのサンプルプログラム TREGSVR を参照してください。 (TREGSVR サンプルは Client/Server 版のみ付属。) Win32 シェルエクステンション ---------------------------- Win32 シェルエクステンションではスレッドモデルが "Apartment" に設定されているエクステンションオブジェクトを必要とします。TComObjectFactory.UpdateRegistry はレジストリにこのエントリを自動的に作成しないので,該当するコントロールの CLSID の下に "ThreadingModel" キーを作成し,データとして文字列 "Apartment" を設定してください。なお,TComObjectFactory.UpdateRegistry をオーバーライドして,これらの設定を行うこともできます。以下は COPYHOOK シェルエクステンションのプログラム例です。 procedure TCopyHookFactory.UpdateRegistry(Register: Boolean); var ClsID: string; begin ClsID := GUIDToString(ClassID); inherited UpdateRegistry(Register); if Register then begin CreateRegKey('CLSID\' + ClsID, 'ThreadingModel', 'Apartment'); CreateRegKey('directory\shellex\CopyHookHandlers\' + ClassName, '', ClsID); end else DeleteRegKey('directory\shellex\CopyHookHandlers\' + ClassName); end; OpenGL の使用 ------------- OpenGL グラフィックスライブラリを使用するアプリケーションもしくはライブラリでは 8087 コントロールワードの Overflow,Zero Divide および Invalid Operation 例外がマスクされている必要があります。OPENGL ユニットを使用した場合,これは自動的に設定されます。OPENGL ユニットを使用しないアプリケーションを使う場合(OpenGL を使う ActiveX コントロールを使う等)は,次のコードをユニットの初期化部に記述してください。 Set8087CW($133F); InterBase ODBC ドライバ ----------------------- InterBase の全てのバージョンに ODBC 2.50 ドライバが含まれるようになりました。 データベースエンジン(BDE) ------------------------- SNoTableName などの定数の記述は BDEConst ユニットに移動しました。 Oracle 7.2 もしくは Oracle 7.3 のクライアントドライバを使用している場合は,BDE Administrator を起動し,環境設定|Drivers|Native|ORACLE を選択し,VENDOR INIT 項目の値を "ORA72.DLL" もしくは "ORA73.DLL" に変更してください。結果セットを返すストアードプロシージャは Oracle 7.3 でのみサポートされいます。 JPEG イメージの使用 ------------------- 設計時に JPEG イメージを使用するには,[コンポーネント(C)|コンポーネントのインストール(I)] で 新規パッケージを作成します。ユニットファイル名には CD-ROM の \INFO\EXTRAS\JPEG\JPEG.PAS を指定し,パッケージをインストールします。実行時にアプリケーションで JPEG を使用するには JPEG ユニットをアプリケーションの uses 節に指定します。 VCL ヘルプファイル ------------------ VCL のヘルプファイル (VCL3.HLP) は状況関知のヘルプをサポートするため,VCL3JUMP.HLP というファイルを使用します。このファイルを消してしまうとヘルプを呼び出すことができなくなります。もし削除してしまった場合は CD-ROM の Runimage からコピーし直してください。 リソースモジュールを使用する ---------------------------- スタートアップにおいて通常,アプリケーションはシステムのロケールをチェックし,言語/国に対応するリソースモジュールを探します。アプリケーションで任意のリソースモジュールを使用したい場合は,以下をレジストリに設定します。 1) HKEY_Current_User\Software\Borland\Delphi\Locales キーを開く。 2) 設定したいアプリケーションを絶対パス名の文字列として追加する。 3) データ値として,使用するリソースモジュールの拡張子名を設定します。 アプリケーションはシステムのロケールを使用する前に,この拡張子をもつリソースを探してロードします。 リソースモジュールに関する説明は,ヘルプトピック "Localizing Resources" の "Using Resource Modules" を参照してください。 3. 確認されている制約事項 ========================= インストールとアンインストール ------------------------------ 既に IDAPI32.CFG に設定されているエリアスの情報は Delphi 3 をインストールしても変更されません。Delphi 3 のインストール後は,エリアス "DefaultDD" が Delphi 3\Demos\OBJREPOS ディレクトリに設定されているようにしてください。 Delphi 3 をインストールした環境にインストールされていた,Delphi 2.0 あるいは C++Builder をアンインストールすると,Delphi 3 に関連するいくつかの設定やコンポーネントが削除されてしまいます。この場合は Delphi 3 を再インストールするようにしてください。 Delphi に付属の NetManage Internet Control Pack は Visual Basic や PowerBuilder などの開発ツールにも付属しています。これらのコンポーネントも Delphi のアンインストール時に削除されてしまいます。この場合は Delphi を再インストールしてください。 Delphi 3 のインストール後に C++Builder をインストールしたときは,IDAPI32.CFG のいくつかのエリアスを再設定しなければならない場合があります。特に,エリアス IBLOCAL の SERVER NAME は C:\Program Files\Borland\Delphi 3\Demos\Data\EMPLOYEE.GDB に設定されていなければなりません。このような問題に対処するため,C++Builder をインストールする前に,IDAPI32.CFG を保存しておくことをお勧めします。 統合開発環境と VCL ------------------ TToolBar の ImageList プロパティで設定されているイメージが変更されたとき,TToolButton は適切なサイズに変更されません。これを回避するには,イメージを変更するのではなく,イメージをImageList からいったん削除し,新しいイメージに置き換えるようにします。 マイクロソフトの COMCTL32.DLL の問題により,TListView の Arrange メソッドは動作しません。そのため,ViewStyle が vsIcon か vsSmallIcon に設定されているときにリストを配置することが困難となります。なお,コンポーネントの動作自体には問題ありません。 CheckBoxes は ViewStyle が vsList か vsReport に設定されているときのみお使いください。 TLabel.ParentFont プロパティは Windows NT 4.0 上では使用できません。 TForm.FormStyle プロパティを fsStayOnTop にする場合,他にも FormStyle が fsStayOnTop に設定されているフォームがあると,正しく動作しません。この場合,どちらのフォームも常に最前面に表示されるようにはなりません。 OS の問題により,TImageList.ResourceLoad メソッドはアイコンおよびカーソルファイルを読み込めません。 Windows NT 4.0 上で,TOpenDialog.AllowMultiSelect を True にした場合,最大で20個までのファイルだけが返ります。この不具合は Service pack 2 にて修正されています。 データベース ------------ Database Desktop は ODBC データソースに対して自動生成したエリアスは表示しません。ODBC ドライバに関しては手動で作成したエリアスを使ってください。 Microsoft ODBC 3.4 を使ってデータベースに2重に接続すると,Delphi はシャットダウンすることがあります。これは ODBC 3.4 のバグによるもので,ODBC 3.5 ではこの問題は修正されています。 DbiUseIdleTime は BDE ではサポートされなくなりました。代わりに DbiSaveChanges を使ってください。 Local SQL の問い合わせ中の項目名に引用符を含むものには,テーブル修飾子かエリアス名をつける必要があります。例えば: (悪い例) select name AS "First Name" from customer (OK) select name AS customer."First Name" from customer (OK) select name AS c."First Name" from customer c キャッシュアップデートを使う場合,インデックス付きのテーブル項目に対して行われた変更は,更新内容が書き込まれるまで反映されません。 クライアントデータセット上の TField オブジェクトに対する Constraint プロパティーは無視されます。 マスター/リンクテーブルに対してキャッシュアップデートを行う場合,TQuery はマスターレコードが移動する毎にリンク問い合わせを再実行します。 カスタム制約に指定された浮動小数点形式は Windows の地域設定と矛盾します。カスタム制約では小数点記号としてピリオド(.)をお使いください。 ストアードプロシージャでは出力 BLOB パラメータはサポートしていません。 データベースエクスプローラでは,テーブルのドラッグアンドドロップはメタデータのみコピーします。データ自体のコピーは将来のリリースでサポートする予定です。 TClientDataSet の日付グルーピングは,このバージョンではサポートされていません。 リモートデータモジュールの FormCreate イベント内で例外が発生した場合,例外は対話的に表示されます。このようなイベントに対処するには,"try ... except" 節でくくることをお勧めします。 テーブルレベルの制約はデータベースエクスプローラのディクショナリに保存してから Delphi で読み出します。(DRIntF.INT の UpdateDataSet を使う。)Delphi から制約を保存する機能は将来のリリースでサポートされる予定です。 データベースエクスプローラは MVS や AS/400 上の DB2 はサポートしておりません。 BDE 環境設定で Oracle SQL Link ドライバに対して BLOB SIZE パラメータを設定する場合には,データロスを防ぐためにサイズに1を加えてください。例えば,32K のデータを読み出す場合には BLOB SIZE を 32 ではなく 33 にセットします。 Informix を使用されている方は,最新バージョンのクライアント DLL (例えば ISQLT07C.DLL) を Informix 社から入手してください。そうしないと SQL エクスプローラ使用中に一般保護例外(GPF)が発生する可能性があります。 Informix 7.2 サーバー上で,次のレコードに移動しようとして Next メソッドを使って BLOB 項目を開いた場合,サーバーがクラッシュします。これは Informix 7.2 のソフトウェアに起因する問題です。 CT-Lib ドライバは Sybase 10.0.4 EBF7033 以上のバージョンに対して動作します。 Sybase ドライバをキャッシュアップデートまたはクライアントデータセットで使用する場合で実数または浮動小数点数の項目を使う場合には,BDE Administrator で ENABLE BCD を True に設定してください。 Sybase CT-Lib ドライバを使用する場合,テキスト項目が空白か否かをチェックするために pbBlank パラメータを使うことはできません。パラメータは常に False を返します。また 空白の BLOB は常に空白ではないと表示されます。 データベースエクスプローラで Oracle のシーケンスを見るには,BDE Administrator でENABLE BCD を False に設定します。 デシジョンサポートコンポーネント -------------------------------- [デシジョン SQL の設定] ダイアログで,現在ログイン中のユーザーのものではないテーブルを参照した場合,誤った文法の SQL 文が生成されることがあります。例えば以下のようなものです。 "OwnerName.TableName" ("OwnerName"."TableName" となるのが正しい) この現象が起きた場合は,TDecisionQuery.SQL プロパティの文字列リストエディタで誤っている箇所を修正してください。但し,再び [デシジョン SQL の設定] ダイアログを開くと,修正した箇所が上書きされてしまうので注意してください。 この問題の影響で,デシジョンキューブを実行したときにエラーメッセージが表示されることがあります。エラーメッセージ "The query fields cannot be automatically mapped to dimensions and summaries." が表示された場合は [デシジョン SQL の設定] で必要なフィールド名,グループ,次元タイプを設定してください。 Intersolve の ODBC-Oracle ドライバの問題により,"--" がコメントとして翻訳されてしまう現象が発生します。Intersolve のドライバを使用している場合は,"--" で始まる行をクエリーの後に移動してください。これらの行はデシジョンキューブが使用するため,削除はしないでください。 Access ドライバ --------------- いくつかの機能がこのリリースでは実装されていません。BCD(2進化10進数)は未サポートです。キー違反テーブルを DbiAddIndex で作ることはできません。(これ以外の DbiAddIndex 機能はすべてサポートされています。)QBE,異種結合問い合わせ,それに Local SQL エンジンを使った問い合わせはサポートされていません。SDK では DbiDoRestructure と DbiRegenIndex は利用できません。 Acccess ドライバは DAO 3.5 (Access 97) をサポートしていません。Access 95 から Access 97 へアップグレードされる場合には, DAO 3.0 はマシン上に残っていますので Access ドライバは正しく動作します。Access 95 をインストールしていなくて,Access 97をインストールする場合には,Access ドライバは動作しません。 DAO 3.0 (Access 95) はスレッドセーフではないため,すべてのデータベース機能はアプリケーションの主スレッドで動作しなければなりません。 MS Access は,排他制御で開かれているテーブルを開くことはサポートしていません。従って,TTable.Exclusive が True に設定されているテーブルが開かれてしまうと,ユーザーは同じセッションの中ででもこのテーブルを開くことはできなくなります。 BLOB を問い合わせのパラメータに使うのは,BLOB データが 256 バイト未満の場合のみにしてください。 Database Desktop が InterBase テーブルを Access にコピーする場合,テーブルとデータのインデックスはコピーされません。テーブルがインデックスを含んでいた場合には,"パラメータが無効です"というエラーがでます。 Paradox テーブルから構造を流用する場合には,Database Desktop は1次インデックスを Access のテーブルにコピーしません。 Internet -------- Web サーバーアプリケーションから Paradox または dBASE のテーブルを BDE 経由でアクセスするには,Web サーバーがテーブルが収められているディレクトリに対して,適切なアクセス権を持っているかどうか確認してください。アクセス権の制御については使用しているサーバーおよびその設定によって異なります。詳細は使用しているサーバーのマニュアルを参照してください。 ActiveX ------- ActiveX コントロールを生成した後は,タイプライブラリのインターフェースをデュアルインターフェースから dispinterface に変更してはいけません。ActiveX をサポートするクラスは dispinterface からの継承をサポートしていません。 Delphi で作成した ActiveX コントロール/Active フォームは以下のアプリケーションにおいて動作確認されています。 Delphi 3, Delphi 2.0, Borland C++Builder, Visual Basic 4 Visual Basic 5, Access 95, Access 97, ActiveX Control Pad 1.0 Visual C++ 4.2, Visual C++ 5.0, Internet Explorer 3.01, FrontPage 2.0 Internet Explorer における確認済みの問題点として,IE のブラウザ内で最初に実行された ActiveX コントロールで矢印キーが動作しないという問題があります。これを回避するには,いったんそのコントロールから移動して,元に戻るようにします。 Internet Explorer 3.0 における ActiveX のダウンロード機能に関わるいくつかの問題点は,バージョン 3.02 で修正されています。IE 3.02 は Delphi の CD-ROM の IE3 ディレクトリに収められています。使用している IE のバージョンを確認するには,[ヘルプ(H)|バージョン情報(A)] のダイアログで確認してください。 ActiveForm の名前を変更するには,以下の手順に従ってください。 1) オブジェクトインスペクターでフォームの名前を変える。 2) タイプライブラリエディタで CoClass の名前を変える。 3) コードエディタで,フォームの初期化部分にあるファクトリ生成の呼び出し部分の Class_xx を変える。例えば,フォームの名前を MyForm から YourFomr に変えた場合は,以下のように呼び出し部分を変更します。 変更前: TActiveFormFactory.Create(ComServer, TActiveFormControl, TYourForm, Class_MyForm, 1, '', OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL); 変更後: TActiveFormFactory.Create(ComServer, TActiveFormControl, TYourForm, Class_YourForm, 1, '', OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL); タイプライブラリエディタでは TSafeArray 型のプロパティ,あるいは TSafeArray 型の値を返す関数を作成することはできません。TSafeArray の代わりに OleVariant を使用してください。 クイックレポート ---------------- 変換処理における制約により,Delphi 2.0 で作成された複雑なレポートは Delphi 3 で正しく読み込めない場合があります。 動的にロードされたライブラリ ---------------------------- Windows NT はライブラリ(DLL)を正しく開放できない場合があります。 これはライブラリが,次に説明するように動的にロードされた場合にのみ発生します。なお,この現象は Windows NT 4.0 Service Pack 2 では修正されています。 動的にロードされたライブラリが他に2つのライブラリを使用していて,その2つのライブラリも他のライブラリを使用している場合にこの問題が現われます。 例えば,アプリケーションが DLL1, DLL2, DLL3, DLL4, DLL5 の順に5個の DLL を動的にロードしたとします。そして,これらの DLL の間に以下のような依存関係があるとします。 DLL5 は DLL4 を使用; DLL4 は DLL3 を使用 DLL5 は DLL2 を使用; DLL2 は DLL1 を使用 最初の3個の DLL(DLL1-3) が正しくロードされたが,DLL4 は DLL3 の欠落したエントリポイントを呼び出したとします。この場合 DLL5 は単純にロードに失敗します。2度目にライブラリをロードしようとしたときに,Windows は DLL1 を開放してしまうため,アプリケーションはおそらくクラッシュします。 この問題は Delphi IDE で,パッケージのインストールの際に影響します。パッケージが静的にロードされる,配布済みのアプリケーションにおいては影響ありません。Delphi を Windows NT 3.51 あるいは SP2 をインストールしていない Windows NT 4.0 で使用している場合は,この問題の影響を避けるため,コンポーネントをインストールあるいは再コンパイルするときは,必要なパッケージがすべて更新されているかどうか確認するようにしてください。 /********************** README.TXT 終わり *************************/