喫茶XRAYトップページ

[スレッド全体
]

[12134] Re15:PDFの表示終了時のエラー返信 削除
2018/8/8 (水) 22:58:49 Mr.XRAY
▼ takaさん,どうもです.

taka さんの

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := True;
  if Assigned(AcroPDF1) then
  try
    FreeAndNil(AcroPDF1);
  except
    AcroPDF1 := nil;
  end;
end;

のコードがなかったら気が付かなかったでしょうね.
やはりプログラムというのはコードを書いて,それが実行されるわけですから,
具体的なコードがあるというのは強力です.
コードがなければ抽象的な話になってしまいますから.

> 修正コードみました。
> Delphiのインポートツールのバグなんですね。


ある意味ではやむを得ないということもあるかも知れません.
操作対象の COM オブジェクトはパーションによって機能が変わってきますから.
で,修正コードについて書いていませんでした.AcroPDFLib_TLB.pas にある

  TAcroPDF = class(TOleControl)
  private
    FIntf: IAcroAXDocShim;
    function  GetControlInterface: IAcroAXDocShim;

の FIntf が TAcroPDF のコンテナの実体ですので,destructor を override
して以下のように強制的に nil にしました.
この nil も AcroPDF1 := nil; がヒントです (^^;

destructor TAcroPDF.Destroy;
begin
  FIntf := nil;
  inherited;
end;


[12153] Re16:PDFの表示終了時のエラー返信 削除
2018/8/16 (木) 11:25:32 mountain079
▼ Mr.XRAYさん▼ takaさん

返信遅れて申し訳ございません。


色々と試していただき、誠にありがとうございます。

今回は急ぎの対応でしたので、tWebBrowserでしのぎましたが、
原因も追究していただけたようで、今後は再度AcroPDFでの作成を行っていきたいと思います。


私も皆様のお役に立てるよう、日々勉強に励みます。

本当にお世話になりました。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82