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

VB 6 et antérieur Discussion :

[Impression] PictureBox et Graphiques


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut [Impression] PictureBox et Graphiques
    Bonjour à toutes et à tous,

    Tout d'abord je tiens à m'excuser auprès de Zazaraignée et OhMonBato pour mon silence radio de ces dernières semaines. Loin de moi l'envie de ne pas répondre, mais le boulot étant ce qu'il est, je n'ai vraiment pas eu le temps de venir leurs répondre.

    Ceci étant je le ferais bientôt, sinon pour résoudre mon prblème qui n'en plus tellement un au moins pour la culture générale...


    ______________________________________________________

    Passons au choses sérieuses...

    Voici ce qui m'amène parmis vous.


    Mon projet avance bien pour ceux qui m'auraient suivis pas à pas dans son déroulement. Il ne me reste plus à vrai dire q'une seule chose à mettre au point.
    L'impression d'un rapport concernant les tir effectués.

    J'ai choisis d'utiliser le format PDF pour se faire. Facile, transportable. Optimal en somme.


    Je résume ma situation.
    Je possède une form nommé "Form-AperçuAvantImpression" qui vous l'aurez deviné sert de mise en page de mon rapport.
    Sur cette form est disposé quelques label identifiant ci et là les caractéristiques importantes...
    Et surtout une PictureBox, contenant elle une courbe(la pression en fonction du temps par exemple).

    Pour remplir cette PictureBox une simple boucle for suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For I=Debut To Fin
    Picture_PressionTemps.Line= (x1,y1)-(x2,y2),vbBlue
    Next I
    On peut difficilement faire plus simple!

    Evidement j'ai définie l'ensemble des scale avant la boucle for comme tel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Picture_PressionTemps.ScaleLeft=0
    Picture_PressionTemps.ScaleTop=-20
    Picture_PressionTemps.ScaleWidth=2
    Picture_PressionTemps.ScaleHeight=-20
    Pourquoi ces valeurs, une petite explication s'impose.

    Pour mes scaletop et scaleheight égaux respectivement à 20 et -20, cette valeur est en faite une pression max que je récupère. Ici 20 Bars(pour ceux qui ont suivis mon projet, vous aurez deviné que ce ne sont pas des valeurs définitive, là je m'entraine sur la petite soeur du système ). Et pour le scalewidth=2 c'est parce que je fais l'acquisition de données pendant 2ms.
    Voilà pour ca.


    Je précise que ce petit bout de code est sur le Form_AperçuAvantImpression_Load() et que j'ai placé la propriété du PictureBox.AutoRedraw=TRUE.


    Aussi simplement que ça. Une form, un PictureBox avec un graphique fait de PictureBox.Line et quelques label.






    Maintenant passaons à la partie qui fait défaut.
    Je place un bouton Imprimer sur la form qui doit, logiquement, m'imprimer dans un fichier PDF le contenu de ma Form_AperçuAvantImpression.
    Le code est on ne peut plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Bouton_Imprimer_Click()
    PrintForm
    End Sub
    Difficile là aussi de faire plus simple...



    Cela marche. Disons plutôt que VB ne me génère aucune erreur, PDFCreator se lance correctement, crée un fichier PDF correctement et me l'affiche.
    Et là il y a comme un problème.

    En effet l'impression de la form se fait correctement. On voit tout. Les labels, le bouton Imprimer et la PictureBox...
    Toutes ces bebêtes placées au bon endroit sur la feuille PDF.

    Le problème réside dans l'affichage des courbes à l'intérieur de ma PictureBox.
    Il y a bel et bien ma courbe de pression en fonction du temps qui s'imprime sur mon PDF mais... elle n'est pas au bon endroit dans ma PictureBox.
    J'entends par là qu'elle à les bonnes dimensions. Par exemple si j'avais une PictueBox de 1cm x 1cm la courbe ferait 1cm x 1cm. Si j'avais une PicureBox de 15cm x 15cm, la courbe aurait les mêmes dimensions.
    Non simplement elle n'est pas "centrée" par rapport à la PictureBox.
    En l'occurence elle s'affiche en partant du haut à gauche de la page PDF quelques soit l'emplacement de la PictureBox...

    Je précise aussi qu'elle n'apparait que dans la PictureBox (d'ailleurs j'ai cru depuis deux jours qu'elle n'aparaissait pas étant donné que j'avais mis ma PictureBox au centre de ma form... de fait il n'y avait pas "un bout" de courbe dans ma PictureBox puisqu'elle était tracée depuis le haut à gauche...).




    Donc en résumé, ce que j'ai pu en déduire avec des termes que j'espere sont appropriés.
    Le conteneur est donc ma PictureBox. Le contenant est ma courbe.
    Les propriétés de mon conteneur tel que les scale et les dimensions sont correctes.
    Les propriétés Scale de mon contenant sont bonnes étant donée que la courbe apparait à la taille de la PictureBox.

    Ce qui n'est pas correct ce sont les propriétés left, top de mon contenant.
    En effet je ne sais pas comment "dire" à VB de tracer la courbe dans la PictureBox, enfin plutôt à l'endroit où est situé ma PictureBox...
    Je pense que vous avez saisie la nuance


    => Parmis mes différents essai j'ai essayé de mettre une image dans ma PictureBox(plutôt qu'une suite de ligne...). Miracle ô grand miracle, lors de l'impression, l'image est exactement là où il le faut, c'est à dire dans la picturebox, où que se trouve cette dernière...
    De fait je me demande si je ne suis pas tombé dans une sorte de faille de VB.
    Et d'autre part je me demande si il n'y aurait pas moyen de "grujer"(feinter) la chose en créant une photo de ma courbe et en la passant comme image à ma picturebox avant de lancer le PrintForm. De fait j'aurais contourné le problème...



    Voilà où je suis rendu. Je sens que je tourne autour du pot mais je n'arrive pas à boucler la boucle...
    Estce que vous auriez une idée sur la question ???
    Estce que mon idée de contournement est faisable ? Viable surtout ?

    Enfin... je compte sur vos lumières


    D'avance merci


    Cordialement
    ~~ La Praline ~~
    ... un choco qui se rend fou mais qui a bientôt finit !!!

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut La Paline
    Tu as un PictureBox "Previsu", à l'interieur (et non dessus) tu as des PictureBoxs "segment" de courbe.
    Question:
    Avant l'impression, l'affichage à l'ecran de ton PictureBox "Previsu", lui il est juste ?
    Si oui, le probléme est la sortie imprimante via le PDF ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Bonjour et merci de ton attention

    Citation Envoyé par ProgElecT
    Tu as un PictureBox "Previsu", à l'interieur (et non dessus) tu as des PictureBoxs "segment" de courbe.
    Hum...
    [reflechis...]
    Exactement... J'ai une PictureBox contenant des segments qui une fois assemblés les uns aux autres forment une courbe...

    Citation Envoyé par ProgElecT
    Question:
    Avant l'impression, l'affichage à l'ecran de ton PictureBox "Previsu", lui il est juste ?
    En effet avant de lancer PrintForm la courbe s'affiche belle et bien au bon endroit...
    C'est pour cela que je ne comprend pas par quel truchement du Saint Esprit la courbe se retrouve "en dehors" du cadre du PictureBox...

    Citation Envoyé par ProgElecT
    Si oui, le probléme est la sortie imprimante via le PDF ?
    Hum... là j'avoue que ton point d'interrogation me laisse perplexe ^^

    Je pense que c'est une faute de frappe et vais donc prendre ceci pour une conclusion
    Et si le problème viens de PDFCreator ca veut, en résumé, que je suis complètement dans la... panade ?!
    ... mouarf...

    Si je dois me taper de l'objet Printer pour tous le rapport j'y suis encore dans un siècle ^^


    Cordialement

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par La Praline
    Exactement... J'ai une PictureBox contenant des segments qui une fois assemblés les uns aux autres forment une courbe...
    Si oui, le probléme est la sortie imprimante via le PDF ?
    je demandai une confirmation, ne sachant pas si tu avais un "previsu" à l'ecran

    J'insiste, Tu as un PictureBox "Previsu", à l'interieur (et non dessus) tu as des PictureBoxs .......
    Interieur, dessus ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Tu fais bien d'insister...

    Je n'ai pas une PictureBox contenant d'autres éléments...

    J'ai une form qui contient une PictureBox(qui elle même contient des segments..).

    Mais c'est bien une Form "Previsu"...

    ... je répond à ta question ou pas ?
    * croise les doigts pour ne pas être à coté de la plaque *

  6. #6
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Ce serait pas tes propriétés ScaleTop et ScaleHeight qui serait erronées ?

    Si ScaleTop = -20 et ScaleHeigt = -20 comme tu l'écris cela veut dire que ton controle Picture peut tracer des données dont l'ordonnée est comprise entre -20 et -40 non ?

    Si c'est simplement une faute de frappe dans ton message alors la faille de VB, j'y crois pas trop, le bug de PDF Creator un peu plus, mais c'est juste d'instinct, sans rien pour argumenter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'impression des interfaces graphiques
    Par sikarce dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 22/10/2011, 10h18
  2. PictureBox et graphique
    Par Arnaud Malabeux dans le forum VB.NET
    Réponses: 7
    Dernier message: 19/05/2010, 13h56
  3. Réponses: 2
    Dernier message: 03/05/2010, 14h30
  4. Réponses: 3
    Dernier message: 25/03/2007, 21h43
  5. Impression tableau ou graphique croisé dynamique
    Par froutloops62 dans le forum Access
    Réponses: 4
    Dernier message: 13/12/2006, 17h30

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