TWebBrowser にモードレスの印刷ダイアログ ボックスを表示させる方法はたくさんありますが、モーダルな印刷ダイアログ ボックスを表示するにはどうすればよいでしょうか? HTMLページを印刷したいので、モーダルダイアログが必要です。
これに関するあなたのアイデアを本当に感謝します。
ありがとう!
TWebBrowser にモードレスの印刷ダイアログ ボックスを表示させる方法はたくさんありますが、モーダルな印刷ダイアログ ボックスを表示するにはどうすればよいでしょうか? HTMLページを印刷したいので、モーダルダイアログが必要です。
これに関するあなたのアイデアを本当に感謝します。
ありがとう!
モードレス ダイアログを表示する方法がたくさんある理由が思いつきません。モードレス印刷ダイアログが表示されている間、Web ブラウザーとの対話を続行する必要があるのはなぜですか?
プログラムで印刷を開始したいが、ユーザーがプリンターを選択する必要がある場合は、次を使用します。
ExecWB(OLE_CMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
ユーレカ!私はそれを解決しました。
方法は次のとおりです。
モードレス印刷ダイアログを表示すると、Delphi でフォームの呼び出しを無効にできます。次に、OnCommandStateChange イベントを使用して、ユーザーが [印刷] ダイアログを印刷またはキャンセルしたことを検出できます。
コード例:
WebBrowser1.OnCommandStateChange:=WebBrowser1CommandStateChange;
WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER,
vaIn, vaOut);
procedure TForm1.WebBrowser1CommandStateChange(Sender: TObject; Command:
Integer; Enable: WordBool);
begin
if Enabled then
Enabled:=false
else begin
Enabled:=true;
WebBrowser1.OnCommandStateChange:=nil;
end;
end;
このコードの信頼性がよくわからないので、私のソリューションをテストするようお願いします。
ありがとう!