IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

déterminer l'imprimante selectionnee ?


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 246
    Points : 62
    Points
    62
    Par défaut déterminer l'imprimante selectionnee ?
    comment determiner l'imprimante selectionnee a partir du composant PrintDialog? j'ai trouver la methode Copie qui determine le nombre des copies a imprime mais quand je change l'imprimante, il ne le prend pas en consideration?? il prend l'imprimante par defaut.
    Merci pour vos aides.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par messahel Voir le message
    comment determiner l'imprimante selectionnee a partir du composant PrintDialog?
    Dans la listes des uses ajouter Printers
    l'imprimante sélectionnée est la valeur Printer.PrinterIndex;

    exemple avec quickreport
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if PrintDialog1.Execute then
     begin
       Imprimante.Caption:=Printer.Printers[Printer.PrinterIndex];
       QuickRep1.PrinterSettings.PrinterIndex:=Printer.PrinterIndex;
       QuickRep1.PrinterSettings.Copies:=Printer.Copies;
     end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    uses Printers;
    ....
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         ShowMessage(Printer.Printers.Text);
    end;
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 246
    Points : 62
    Points
    62
    Par défaut
    c'est bon maintenant pour la selection de l'imprimante choisie, mais le probleme c'est que la commande QuickRep.Print ne prend pas en consideration le nombre des copies, alors j'etais oblige de mettre QuickRep.Print dans une boucle de 0 jusqu'a QuickRep.PrinterSettings.Copies

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    si tu utilises le code que je t'ai fourni , cela doit pourtant fonctionner (je l'utilise depuis des années ou alors mes utilisateurs ne me l'on jamais dit , je doute )
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 246
    Points : 62
    Points
    62
    Par défaut
    mais dans le code que tu m'as fourni, je n'ai pas compris le mot Imprimante signifie quoi, je le declare comme quoi ? en plus ton code tout seul ne lance pas l'impression ?

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    imprimante , n'est qu'un Tlabel sur une form le caption aurait du te mettre sur la voie
    (j'aime bien indiquer à l'utilisateur sur quelle imprimante il est 'raccordé')
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 246
    Points : 62
    Points
    62
    Par défaut
    mais ton code tout seul ne lance pas l'impression, qu'est ce que j'ajoute ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Ah , mais à ce n'est pas la même chose .
    et en plus l'impression n'a rien a voir avec la sélection de l'imprimante !
    En général pour une impression j'ai un menu contenant 3 ou 4 options
    un peu comme ceci

    Impression
    Prévisualisation
    ---------------------
    Choix Imprimante
    Setup Imprimante
    (sachant que le Setup Imprimante est tres peu utilisé)
    j'ai ,en gros, les codes suivant pour chaque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // Impression 
    Quickrep1.Print
    //Previsualisation
    Quickrep1.Preview
    // Choix Imprimante
    if PrintDialog1.Execute then
     begin
       Imprimante.Caption:=Printer.Printers[Printer.PrinterIndex];
       QuickRep1.PrinterSettings.PrinterIndex:=Printer.PrinterIndex;
       QuickRep1.PrinterSettings.Copies:=Printer.Copies;
     end;
    // Setup Imprimante
    if PrinterSetupDialog1.Execute then
     begin
       Imprimante.Caption:=Printer.Printers[Printer.PrinterIndex];
       QuickRep1.PrinterSettings.PrinterIndex:=Printer.PrinterIndex;
       QuickRep1.PrinterSettings.Copies:=Printer.Copies;
       .....
     end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 246
    Points : 62
    Points
    62
    Par défaut
    Désolé, mais tu m'as pas compris, j'ai fais ton code de la selection de l'imprimante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ----------------------
    if PrintDialog1.Execute then
     begin
       Imprimante.Caption:=Printer.Printers[Printer.PrinterIndex];
       QuickRep1.PrinterSettings.PrinterIndex:=Printer.PrinterIndex;
       QuickRep1.PrinterSettings.Copies:=Printer.Copies;
     end;
    ---------------------
    et apres j'ai fais la commande QuickRep1.Print mais elle ne prend pas en consideration le nombre des copies, a chaque fois et quelque soit le nombres des copies, je tiens qu'un seul exemplaire.

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    as-tu vérifié la valeur de Printer.Copies ? en mode debug
    ou
    par exemple en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ShowMessage('Nombre de copies : '+inttostr(Copies))
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. [AC-2003] Déterminer l'imprimante active
    Par jmde dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/06/2014, 20h25
  2. Déterminer si une imprimante est locale ou réseau
    Par Passepoil dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 04/12/2009, 18h08
  3. comment déterminer l'adresse ip d'une imprimante
    Par Minoucha2006 dans le forum C#
    Réponses: 1
    Dernier message: 25/05/2008, 12h40
  4. Réponses: 1
    Dernier message: 15/03/2007, 18h36
  5. Déterminer l'adresse d'une application en mémoire
    Par Gib dans le forum x86 32-bits / 64-bits
    Réponses: 9
    Dernier message: 11/06/2002, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo