The Delphi Bug List

Entry No.
601
VCL - 一般 - OleCtnrs - TOleContainer
TOleContainer の実装に深刻な欠陥があるか、または OLE と MDI に一般的な問題がある
1.02 2.01 3.0 3.01 3.02 4.0 4.01 4.02 4.03 5.0 5.01 6.0 6.01 6.02 Kylix 1.0
N/A N/A N/A N/A N/A Absent Absent Absent Absent Exists Exists Unknown Unknown Unknown N/A
解説
Reported by Eivind Bakkestuen; checked by David Christiansen
以下の手順を試してください:
D5 の demos/activex/olectnrs ディレクトリにある olemdi プロジェクトを使用します。デザイン時に mdichild の olecontainer にワード文書を挿入してください。プログラムを実行します。メニューから "新規作成" を2回選択し、「現在の OLE オブジェクトを削除しますか?」の質問には OK を選択し、ワード文書を挿入してください(実際には挿入するオブジェクトの種類は関係ないように思います)。プログラムを終了し、「オブジェクトの変更を保存しますか?」には "いいえ" を選択してください。2回目の "いいえ" 選択後、アクセス違反が発生します。

プログラムはとても単純で小さいものなので、TOleContainer が深刻な欠陥を持っているか、OLE と MDI に一般的な問題が存在するか、どちらかだという印象を持ちました。この問題の情報源へのポインタを歓迎します。(私はこれは MDI プログラム内で TOleContainer を使用する場合の問題だと思っています)

私はこの問題を、Office 97 と Office 2000 とを使用して、Win95・Win98・NT4・Win2000 で確認しました。どの場合も同じ結果になりました。
解決策 / 回避方法
Piotr Wozniak コメント:
私の環境では、この問題はコード1行で解決しました:TOLEContainer の生成直後に AllowActiveDoc := False を書きました。

この発想はここから得ました: http://www.elists.org/pipermail/delphi/1999-August/000519.html
(訳注:リンク切れ(?)です。http://www.elists.org/pipermail/delphi/1999-August/001230.html あたりだと思います。)
Latest update of this entry: 2000-11-09
本家 The Delphi Bug List のエントリーはこちら
The Delphi Bug List 日本語訳 へ