ActiveX コントロールを使用TAcroPDF
して PDF ドキュメントを印刷します。アプリケーションはページを印刷しますが、2 ページを印刷する必要がある場合は、最初のページを印刷してからメッセージ ダイアログを表示し、ユーザーに紙をめくるように求めてから、2 ページ目を印刷します。概念は非常に単純ですが、原因不明で正常に実行できません。実際には最初のページが印刷されますが、ShowMessage ウィンドウがブリップし (すぐに非表示になります)、アプリケーションが起動したように見えます。その後、メイン アプリケーション ウィンドウの後ろに隠れていた失われた Showmessage ウィンドウを復元できますが、(奇妙なことに) showmessage ウィンドウとメイン アプリケーションの間でフォーカスを簡単に変更できます。ActiveX のため、プログラムが別のスレッドで実行されているように見えますか??? 「OK」ボタンをクリックすると、後のコードShowMessage('Please, turn the page');
が実行されます。誰が何が起こっているのか教えてもらえますか? 次に例を示します。
procedure TForm1.btn1Click(Sender: TObject);
begin
acrpdf1.src := Getcurrentdir + '\temp.pdf';
acrpdf1.PrintAll;
ShowMessage('Please, turn the page'); //it does not hover over main window, it hides behind
Form1.Color:=clRed; //it is executed after closing Showmessage window
end;