Title : [TPrinters] détecter annulation/erreur impression
Bonjour et Joyeuse Année au forum et à tous ses membres !
Voici ma question : j'ai une appli qui imprime quelques lignes et en même temps, elle doit stocker directo dans un fichier texte toutes ces infos printées.
Jusque là, rien de compliqué et ça tourne impec.
Mais, je me suis rendu compte d'un cas de figure qui peut très bien arriver :
Si jamais l'utilisateur lance l'impression et que par exemple l'imprimante n'est pas allumée, hé bien j'ai en effet du pilote de la printeuse un message d'alerte et bien entendu rien ne s'imprime...
Or c'est là le noeud du problème, car si rien ne s'imprime, au contraire l'enregistrement des quelques lignes prévues d'être imprimées sont quant à elle bien imprimées.
Autrement dit : lorsqu'ensuite l'utilisateur allume son imprimante et recommence l'impression, devinez...
Hé oui, cela ensuite dans le fichier texte représente deux fois la même chose, présentement cela n'est pas acceptable.
Je me suis documenté sur la classe TPrinters, mais rien de trop significatif quant aux résultats.
J'ai commencé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ... if Printer.Aborted then MessageDlg('Le travail d''impression n''a pas terminé l''impression', mtInformation, [mbOK], 0);Je pensais au travers du F1 avoir enfin trouvé une parade :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if Printer.Printing = true then ShowMessage('OK !') else ShowMessage('NO !!!');
Mais manque de chance, bien que cela stoppe le printage au tout début, je ne sais pas comment faire pour récupérer une variable ou autre afin de m'en servir utilement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=VK_ESCAPE) and Printer.Printing then begin Printer.Abort; MessageDlg('Impression annulée', mtInformation, [mbOK],0); end; end;
Autrement dit : comment faire pour récupérer le message d'erreur du pilote de l'imprimante afin d'ensuite s'en servir... ?
A vrai dire, je ne sais pas trop comment m'y prendre et vers la bonne direction et ce n'est pas très cohérent
J'ai encore tartiné le premier message de ce topic, ne m'en veuillez pas de trop, je ne sais pas faire court.
Merci d'avance de vos idées, heuuuu pas trop compliquées
Partager