2012-04-19 3 views
0

Delphi 6で作成され、Indy 8インターネットVCLコンポーネントを使用したプロジェクトがあります。このプロジェクトをDelphi 2005にアップし、代わりにIndy 10コンポーネントを使用する必要があります。 Delphi 2005の古いインディコンポーネントを含むフォームを開くと、次の2つのエラーが発生します。 'プロパティOnLogItemが存在しません'、次に 'プロパティターゲットが存在しません'。これらの両方のエラーは、TIdLogDebug Indyコンポーネントと関係があります。 TIdLogDebugコンポーネントを使用する代わりに、TIdLogEventコンポーネントを使用する必要があると聞いています。ただし、このコンポーネントにはOnLogItemおよびTargetプロパティはありません。IIndy 8 to Indy 10 - TIdLogDebugコンポーネントを置き換えるもの

Indy 10のTIdLogEventコンポーネントで使用するイベントハンドラは、Indy 8のTIdLogDebugコンポーネントのOnLogItemイベントを置き換えますか?

自体がまだインディ10に存在するが、それはインディ8のTIdLogDebugよりも非常に異なっているあなたに

+0

Kenさん、私の質問を変更しました。うまくいけば、今はっきりしています。 – user1202134

答えて

3

TIdLogDebugありがとうございます。 Indy 9以降のTIdLogDebugには、TargetプロパティまたはOnLogItemイベントがありません。

Indy 8のTIdLogDebugは、Indyの唯一のロギングコンポーネントであり、複数のタイプの出力(ファイル、デバッガ、イベント)をサポートしていました。 Indy 9では、その機能を別々のTIdLogFile,TIdLogDebug、およびTIdLogEventのコンポーネントに分割しました(新しいTIdLogStreamコンポーネントが追加されました)。

Indy 9以降では、TIdLogEventコンポーネントを使用することで正しい置き換えになります。 TIdLogEventは、OnReceived,OnSentおよびOnStatusイベントを有する。 Indy 8は、TIdLogDebugのデータフローの異なる方向を区別せず、すべてが単一のOnLogItemイベントでファンネルされました。データフローの各方向のログメッセージには、異なるプレフィックスが付いていました。 Indy 9以降では、方向ごとに別々のイベントが使用されるため、古いOnLogItemイベントを直接置き換えることはできません。新しいイベントモデルに合わせてコードを更新する必要があります。

+0

ありがとうレミー、それは私の質問に完全に答えます。 – user1202134

関連する問題