hhhp2004
Messages postés173Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention13 octobre 2007
-
31 janv. 2004 à 00:09
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDerniè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 ...
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 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.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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.
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 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.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_labout
Messages postés1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 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.
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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 !!