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!

È stato utile?

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); 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top