2012-01-07 53 views
3

まず、プロパティエディタを一度も書いたことはありませんが、another questionのプロパティエディタを使用しています。そこで受け入れられた答えを参照してください。これはDelphi 7で、XE2の使用を開始しました。プロパティエディタが 7とXE2の両方と互換性があることを確認する必要があります。Delphi 7のプロパティエディタをDelphi XE2に変換

基本的にコレクションエディタです。各コレクションアイテムには、親フォームに独自の名前付きコンポーネントがあります。 XE2のプロパティエディタについては、バージョン7以降、何か新しいことはありますか?

私は、異なるバージョンのユニットを完全にコピーしたくありません。私はすべての可能なバージョンを1つのユニットに保ちたいと思っています。

編集

Delphi XE2は、Delphi 7と同じプロパティエディタを持っているように見えますが、私が直面した問題は、私は私のパッケージでDesignIDE含めたが、それが何かを見つけることができなかったということでしたので、私ToolsAPIフォルダをライブラリパスに追加する必要がありました。

しかし、これ以降は新しい問題が発生します。私はBPLのパッケージと必要な他の全体のコンセプトに迷ってしまいました

[DCC Fatal Error] ToolsAPI.pas(18): F1026 File not found: 'DockForm.dcu'

など

+0

既存のコードを移行する際にどのような問題がありますか? –

+0

デザインエディタユニットは見つかりません。デルファイの各バージョン(私が知る限り)は異なります.D7でプロジェクト用に作成したもの以外に、デザインエディタの作成については何も知らないのです。 –

+3

XE2で使用されるデザイン時単位 - 「DesignIntf​​」、「DesignEditors」、「DesignMenus」、「DesignWindows」などがD6に導入されたため、D7で使用されていました。 XE2でのデザインタイムプロパティ/コンポーネントエディタの作成は、D7と同じです。デシグネームのみのパッケージを作成し、 'DesignIDE'パッケージとコンポーネントのランタイムパッケージをRequiresリストに追加し、必要に応じてエディタクラスをコーディングし、' RegisterPropertyEditor() '、' RegisterComponentEditor() '、あなたのdesigntimeパッケージのエクスポートされた 'Register()'関数の中にあります。それでも問題が解決しない場合は、コードを表示してください。 –

答えて

4

DesignIntf​​、DesignEditors、DesignMenus、DesignWindowsはDesignIDE.bplの一部であり、\ Embarcadero \ RAD_Studio \ 9.0 \ lib \ win32 \ release \ designide.dcpにあります。しかし、があり、64ビットのにはdesignide.dcpがありません。そのため、これらのユニットを参照する64ビットパッケージをコンパイルするとエラーが発生します。

設計時パッケージと設計時パッケージが32ビットのみであるため、DesignIDEの64ビット版はありません(Delphi IDEはまだ32ビットのみです)。したがって、常にデザインタイムパッケージを64ビットではなく32ビットに設定してください。 :)

マイク

+0

それでした!すべての64ビットリファレンスを削除して動作しました:D 64ビットオプションが選択されていることを指摘しておきました。 –

3

DockForm.pasソースコードは、Delphi XEにもデルファイXE2でもない可能です。

あなたは、これはSOおそらく、それはすでにデルファイXE2と一緒に配布され、いくつかのパッケージ内にコンパイルされて含まれている

デルファイ2010年に同様の問題に適用するに掲載answerを受け入れてみてください。

+0

+1。 DesignIde.dcpをdesigntimeパッケージのrequiresセクションに追加してください。 –

関連する問題