dialogo di stampa TWebBrowser modale?
-
21-09-2019 - |
Domanda
ho trovato molti modi per rendere il TWebBrowser mostrano una finestra di dialogo non modale di stampa, ma come faccio a farlo indicatori un modale? Vorrei stampare una pagina html, è per questo che ho bisogno della finestra di dialogo modale.
Mi piacerebbe davvero apprezzare le vostre idee su questo.
Grazie!
Soluzione 2
Eureka! Ho risolto.
Ecco come:
Quando si mostra la finestra di dialogo non modale di stampa, è possibile disattivare il modulo chiamando in Delphi. Quindi è possibile utilizzare l'evento OnCommandStateChange per rilevare quando le stampe utente o annulla la finestra di dialogo Stampa.
Esempio di codice:
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;
vi chiedo gentilmente alle persone di provare la mia soluzione, come io non sono sicuro della affidabilità di questo codice.
Grazie!
Altri suggerimenti
Non riesco a pensare a una ragione per cui non ci sarebbe un sacco di modi per mostrare una finestra di dialogo non modale. Perché si vuole continuare a interagire con il browser web mentre è visualizzata una finestra di dialogo non modale di stampa?
Se si desidera avviare la stampa dal programma, ma è necessario all'utente di selezionare la stampante, utilizzare:
ExecWB(OLE_CMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);