Eureka! Je l'ai résolu.
Voici comment:
Lorsque vous affichez la boîte de dialogue d'impression modales, vous pouvez désactiver le formulaire d'appel à Delphes. Vous pouvez ensuite utiliser l'événement OnCommandStateChange pour détecter lorsque l'utilisateur imprime ou annule la boîte de dialogue Imprimer.
code Exemple:
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;
Je vous prie de bien vouloir les gens à tester ma solution, comme je ne suis pas sûr de la fiabilité de ce code.
Merci!
J'ai un problème similaire. testé votre solution: le problème est 'WebBrowser1CommandStateChange' est déclenché 2 fois avant l'affichage de la boîte de dialogue d'impression. puis se déclenche à nouveau quand il se ferme. – kobik
Voir cette [réponse] (http://stackoverflow.com/a/8438967/960757), la question est formulée différemment mais le ['OLECMDEXECOPT_PROMPTUSER'] (http://msdn.microsoft.com/fr-fr/library /aa769937%28v=vs.85%29.aspx) option de commande avec ['PRINT_WAITFORCOMPLETION'] (http://msdn.microsoft.com/fr-fr/library/aa769937%28v=vs.85%29.aspx Le drapeau rendra le dialogue modal. – TLama