ME.PRINT

hhhp2004 Messages postés 173 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 13 octobre 2007 - 31 janv. 2004 à 00:09
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 2 févr. 2004 à 17:24
hhhp2004

j'ai 2 questions :

1. On a le code suivant :

Private Sub Command1_Click()

For x = 1 To 100
Me.Print x
Next

End Sub

il va apparetre sur le form les chiffres de 1 a 100. Mais on ne peut voir que a peu pres 55, le reste est plus bas et on ne peut pas les voir.
Comment qu'on fait pour les voir toutes ?

2. On a le code suivant :

Private Sub Command1_Click()

For x = 1 To 100
Text1.Text = x
Next

End Sub

Pour quoi avec ce code, dans text1.text apparit juste la derniere chiffre qui est 100 ? au lieu d'apparetre toutes comme dans me.print ...

Merci

6 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
31 janv. 2004 à 12:32
labout
Salut
Me.print imprime au fur et à mesure.
Text1.TExt =I
Affiche la valeur de I dans text1.Text mais à chaque nouvelle valeur
de I écrase la précédente donc seule la dernière valeur apparaitra dans textBox1.text

Pour voir toutes les valeurs il suffit de poser un listbox dans la feuille

For x = 1 To 100
List1.additem i
Next

Quant à me.print ne sert qu'au debuggage donc c'est sans importance.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 févr. 2004 à 13:31
me.print ne sert pas qu'au débuggage mon chèr ami !!
Il sert à écrire sur une fenêtre. On s'en sert donc souvent pour débugger mais ce n'est pas ca seul utilité. Et il ne faut pas laisser hhhp2004 avec une réponse comme ca !! Chaque comportement de VB( enfin presque tous) a une explication et celle-ci mérite d'être donnée :
Donc je m'y colle :
ME.print écrit le texte qu'elle reçoit en argument sur le fond de la fenetre et revient à la ligne après.
Donc au bout de x tours de boucle (55 dans ton cas), Me.print ecrit en dessous de la feuille. Si tu agrandis ta fenêtre vers le bas, tu en verras plus
A noter que la propriété AutoRedraw de ta feuille doit être à True si tu veux que le texte écrit sur la partie non-visible de la feuille le soit qd tu agrandit la feuille. En effet, Qd Autoredraw est à False, toute sortie graphique (Me.Print, ME.line, ...) qui sort de la partie visible de la fenetre est perdu (non redessiner automatiquement au redimensionnement de la feuille, d'ou le nom de la propriété Autoredraw)
Ais-je été clair ??
Christophe R.
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
2 févr. 2004 à 13:42
labout
Monsieur Christophe,
J'ai repondu à la question posée.
Il est très rara d'utiliser me.print pour afficher du texte dans une fenêtre.
Pour plusieurs raisons: On ne peut le placer ou l'on veut.
Lors du dépassement de la fenetre il est invisible.
Une appli pro n'utilise pratyiquement jamais cette fonctionnalité.
J'ai d'autre part donné une solution nettement plus élégante et pro contrairement à vos écrits.

Bye
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 févr. 2004 à 17:00
Ben scuse moi mais si tu as besoin de faire une appli qui "dessine", tu n'es pas obligé de le faire dans un pciturebox, tu peux le faire directement sur ta form ...
ET pour info tu peux mettre ton print ou tu veux en utilisant avant me.currentX et me.currentY pour placer le point d'insertion graphique ou tu veux ...
Sur ce, ciao, monsieur le "Appli Pro"

Christophe R.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
2 févr. 2004 à 17:14
labout

La question ne portait pas sur le pictureBox et encore moins pour une appli de dessin.
Afficher 500 valeurs avec un Me.print c'est la meilleure méthode avec un écran en 1600 x 1200 !!
J'ai donné une solution plus efficace avec le code, je ne me suis pas contenté de bla bla
J'ai pour habitude de répondre aux questions de la manière la plus claire et la plus efficace pour le cas exposé sans noyer le demandeur.

Voilà Monsieur le donneur de leçon.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 févr. 2004 à 17:24
Ben moi je voulais juste qu'il comprenne POURQUOI son code lui donnait un tel résultat. Maintenant je suis d'accord avec toi, ta solution d'utiliser un list est très bonne ... Je ne le conteste pas mais je me suis juste permis de te préciser que Me.Print ne sert pas qu'au déboguage d'une appli (ce n'est d'ailleurs pas une bonne solution de deboguage à mon avis, il vaut mieux utiliser Debug.print, mais bon, passons ...)

Bon maintenant je te laisse, car j'ai une appli à coder et j'ai plein de ME.Print à taper !! Je t'enverrais le résultat et tu me diras si ca a le gout d'une appli pro ou pas !!

Christophe R.
0
Rejoignez-nous