名前 題名 ▼ Mr.XRAYさん > ▼ takaさん,お手数おかけします.スミマセン. > やっと重い腰を上げました (^^; > > Windows 7 U64(SP1) + Delphi XE(UP1) Pro + Adobe Reader DC > でテストしました. > テストしたのは以下のサンプルです. > IDE でコンパイルして実行.PDF 文書を表示するだけでフォームを閉じると > EXE 終了時に例外が発生しました. > PDF 文書を表示しなければ例外は発生しませんでした. > > [02_PDF 文書のフォームへの表示] > http://mrxray.on.coocan.jp/Delphi/plSamples/720_Acrobat.htm#02 > > taka さんの OnloseQuery コードを追加して実行してみました. > 例外は発生しなくなりましたが,メモリリークが発生しました. > で,Delphi XE5(UP2) Pro で同じように実行してみました. > 今度は例外も発生しました. > > ん ? AcroPDF1.free が操作できない ? メモリリーク ? > > TAcroPDF = class(TOleControl) > TOleControl = class(TWinControl, IUnknown, IOleClientSite,.... > > となっています.ああぁ〜 ! もしかして... > で思い出しました.昔同じ様な現象を経験したことがあります. > 以下のサンプルです.参照カウンタです. > > [コンポーネント TplExplorerFolderView のソースコード] > http://mrxray.on.coocan.jp/Delphi/plSamples/947_ExplorerBrowser.htm#list5 > > てなわけで以下のようにしてみてください. > > procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); > begin > //TAcroPDF の参照カウンタがインクリメントされていないようなので > //解放破棄操作される前に AddRef しておく > AcroPDF1.ControlInterface._AddRef; > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link