1

プロジェクト オプションで有効なランタイム テーマを実行したところ、TDCTree (TTreeView に似た古い Dream コンポーネントから) にヒントが表示され、ヒントを表示する必要がある別のノードにマウスが移動すると、何が得られますか?は:

---------------------------
Debugger Fault Notification
---------------------------
Project DRIVE:\path\to\project\MyApp.exe faulted with message: 'system exception (code 0xc000041d) at 0x73c84cad'. Process Stopped. Use Step or Run to continue.
---------------------------
OK   
---------------------------

設計時に項目を追加するときに項目にカーソルを合わせようとするたびに、IDE 内で同じ問題が発生すると思います。

プロジェクト オプションでランタイム テーマを無効にすると、例外はありませんが、「古いスタイルの XP ヒント」が表示されます。

アプリケーション自体は、イベント名「APPCRASH」で例外を発生させます。

「ランタイム テーマ」に関連する問題がかなり見られますが、これらの問題を無効にせずにこれらの問題を回避する方法は見当たりません。

オペレーティング システム: Windows 7 x64

Delphi: 2007 年 12 月と 2008 年 2 月の更新プログラムがインストールされた 2007

更新 1:

この問題を回避する 1 つの方法は次のとおりです。

Procedure TDCTreeToolTip.DoHideToolTip;
Begin
  Inherited;
  If FToolTipAdded Then
    if FTreeNode <> NIL then // fix
      DeleteToolTip(ToolTipID,FTreeNode.TreeView.Handle);
  FToolTipAdded:=False;
  FTreeNode:=Nil;
End;

ユニット「dcntree.pas」で。

DoHideToolTip への呼び出しの前に FTreeNode が "どういうわけか" NIL 処理されているように見えるため、"システム例外が発生します..."ランタイム テーマが有効になっている場合にのみ理由が説明されていません"

これをさらに調査する時間はありませんが、「トリガー」が見つかりました。「誰」がそれを引っ張っているのかを突き止める必要があります。

4

1 に答える 1

0

少なくとも今のところ、次の回避策しか使用できないようです。

Procedure TDCTreeToolTip.DoHideToolTip;
Begin
  Inherited;
  If FToolTipAdded Then
    if FTreeNode <> NIL then // fix
      DeleteToolTip(ToolTipID,FTreeNode.TreeView.Handle);
  FToolTipAdded:=False;
  FTreeNode:=Nil;
End;

ユニット「dcntree.pas」で。

于 2012-10-14T17:45:42.287 に答える