kacola
Messages postés30Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention10 janvier 2008
-
20 mai 2007 à 19:19
kacola
Messages postés30Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention10 janvier 2008
-
26 mai 2007 à 11:54
Bonjour,
J'ai une imprimante Canon MP780 avec deux bacs ( "cassette" - "Chargeur automatique").
J'ai besoin d'automatiser l'impression et donc entrer différents paramètres
- A5
- Chargeur automatique
- Paysage, etc..
J'ai trouvé pour tout sauf le chargeur automatique !.
Quelqu'un peut-il m'aider ?
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 23 mai 2007 à 08:40
Salut,
Effectivement cette partie n'est pas implémentée dans l'unité Printers.
Je me suis créé une autre unité (MyPrinters) en copiant Printers et en rajoutant le type, la propriété et les fonctions suivantes :
(C'est adapté à mon imprimante, mais le principe doit rester bon)
// Nouveau type
TPrinterSource = (psTiroir1, psTiroir2, psTiroir3, psManuel, psEnveloppe, psChargeur);
// Nouvelle propriété publique de l'objet TPrinter
...
property Source: TPrinterSource read GetSource write SetSource;
...
// Les fonctions : leur squelette est inspiré des autres fonctions comme l'orientation par exemple
function TPrinter.GetSource: TPrinterSource;
begin
GetPrinterIndex;
if DeviceMode = 0 then RaiseError(SInvalidPrinterOp);
case DevMode^.dmDefaultSource of
DMBIN_FIRST: Result := psTiroir1;
DMBIN_LOWER: Result := psTiroir2;
DMBIN_MIDDLE: Result := psTiroir3;
DMBIN_MANUAL: Result := psManuel;
DMBIN_ENVELOPE: Result := psEnveloppe;
DMBIN_CASSETTE: Result := psChargeur;
else Result := psTiroir1;
end;
end;
procedure TPrinter.SetSource(Value: TPrinterSource);
const
Sources: array [TPrinterSource] of Integer = (
DMBIN_FIRST,
DMBIN_LOWER,
DMBIN_MIDDLE,
DMBIN_MANUAL,
DMBIN_ENVELOPE,
DMBIN_CASSETTE);
begin
CheckPrinting(False);
GetPrinterIndex;
if DeviceMode = 0 then RaiseError(SInvalidPrinterOp);
SetState(psNoHandle);
DevMode^.dmDefaultSource := Sources[Value];
end;
Les constantes DMBIN_xxx sont déclarées dans l'untié Windows. A toi de choisir celles qui te seront utiles avec ton imprimante
kacola
Messages postés30Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention10 janvier 2008 26 mai 2007 à 11:54
Bonjour Kenavo,
Comment faire pour l'intégrer dans mon programme?
Faut-il que je crée une nouvelle unité MyPrinters? Comment fait-on?
(Je ne suis pas un expert avec Delphi!).