PSet en VB2005?

Résolu
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007 - 26 oct. 2006 à 16:28
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007 - 27 oct. 2006 à 04:58
Salut,
j'ai un gros logiciel que j'ai fais sous VB6 qui utilisait très souvent la picturebox pour y dessiner des graphiques (genre des fonctions comme x^2). Mais là je veux continuer mon projet en VB2005, la picturebox existe toujours mais les commandes pset et line ne semble plus être disponible. Dans quoi je dois dessiner mon graphique?

merci :)

10 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2006 à 16:37
Extrait du MSDN2005







Méthode Line



Dans Visual Basic 6.0, la méthode Line est utilisée pour dessiner un
rectangle en spécifiant les coordonnées des coins supérieur et inférieur
gauches, avec un argument
B
optionnel. La propriété
FillColor est utilisée pour remplir un rectangle d'une couleur unie, et
la propriété FillStyle remplit le rectangle de hachures croisées.


Dans Visual Basic 2005, la méthode <mshelp:link tabindex= "0" keywords="M:System.Drawing.Graphics.DrawRectangles(System.Drawing.Pen,System.Drawing.RectangleF[])">DrawRectangles</mshelp:link>
est utilisée pour dessiner la bordure d'un rectangle, et la méthode <mshelp:link tabindex="0" keywords="M:System.Drawing.Graphics.FillRectangle(System.Drawing.Brush,System.Drawing.Rectangle)">FillRectangle</mshelp:link>
est utilisée pour le remplir. FillRectangle utilise un objet <mshelp:link tabindex ="0" keywords= "F:System.Drawing.Imaging.ColorAdjustType.Brush">Brush</mshelp:link>
comme un paramètre. <mshelp:link tabindex="0" keywords="T:System.Drawing.SolidBrush">SolidBrush</mshelp:link> remplace la
propriété FillColor et les membres de la classe <mshelp:link tabindex ="0" keywords= "T:System.Drawing.Drawing2D.HatchBrush">HatchBrush</mshelp:link>
remplacent la propriété FillStyle .




Méthode PSet



Dans Visual Basic 6.0, la méthode PSet est utilisée pour modifier la
couleur d'un pixel sur un formulaire ou un contrôle PictureBox. Si la
propriété DrawWidth a une valeur supérieure à 1, la méthode PSet
dessine un cercle plein. Un paramètre optionnel est utilisé pour spécifier la
couleur ; s'il est omis, le paramètre ForeColor est utilisé.


Dans Visual Basic 2005, il n'existe aucun équivalent de la méthode
PSet. Pour modifier la couleur d'un seul pixel sur un formulaire ou sur
le contrôle PictureBox, utilisez la méthode DrawEllipse pour
dessiner un cercle avec une hauteur et une largeur de 1 pixel. Pour dupliquer
les fonctionnalités de PSet lorsque DrawWidth est supérieur à 1,
utilisez la méthode FillEllipse.













---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2006 à 17:24
DrawRectangle fait partie de la classe Graphics comme DrawLine, FillRectangle, et plein d'autres fonctions.

Pour les utiliser, il faut créer un nouveau graphique dans ta picturebox :

        Dim g As Graphics = MaPictureBox.CreateGraphics

        g.DrawRectangle(Pens.Beige, New Rectangle(15, 15, 100, 85))

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007
26 oct. 2006 à 17:08
J'ai pas les méthodes DrawRectangle et DrawEllipse avec mon picturebox, est-ce que c'est bien pour le picturebox? En passant, j'utilise VB2005 Express Edition.
0
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007
26 oct. 2006 à 21:11
Ah cool, sa marche bien ;) Mais là j'ai une autre question, comment ont fait pour faire des scaleWith, scaleTop et etc. J'ai vu ScaleTransform mais sa pas lair de faire la même chose.
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2006 à 21:33
scaleWidth et scaleTop n'existe plusen .NET et ne doivent certainement pas avoir de remplacant, étant donner qu'il n'existe plus qu'un seul système de coordonnées en .NET c'est le pixel.

ScaleTransform semble bien etre l'application d'un facteur d'echelle, malgré les noms hautement scientifiques employer dans le msdn.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007
26 oct. 2006 à 22:15
Ya quelques choses que je comprend pas de scaletransform, j'ai les lignes suivantes :

g.ScaleTransform(10, 10)

g.DrawRectangle(Pens.Black,

New Rectangle(5, 5, 10, 10))

Normalement le 1/4 de mon rectangle devrais être visible, mais non, il est presque qu'en plein centre, comme si j'avais écrit scaleTransform(40,40). Et si j'écrie scaleTransform (5,5) c'est comme si j'écrit scaleTransform(60,60). Donc plus mon chiffre est petit, plus mon scale est grand.
0
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007
26 oct. 2006 à 22:48
On dirais que scaleTransform à plus lair de faire un sorte de zoom. Par exemple, un scaleTransform (1,1) ne change rien, tandis que (2,2) alors l'image est 2 fois plus grosses.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 oct. 2006 à 22:52
Oui, c'est dans ce sens là que je l'avais compris

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007
26 oct. 2006 à 23:10
Dans ce cas là c'est pas très pratique. Il faudrait ou bien que je me crée une fonction pour transformer de pixel à plan cartésien, ou créer un nouveau composant plan cartésien.
0
drnicholas001 Messages postés 37 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 21 avril 2007
27 oct. 2006 à 04:58
Ben je dois avouer que le picturebox de VB2005 est pour moi une énorme déception. Je suis vraiment perdu dans la nouvelle, comment est-ce que je suis supposé faire des Pset ou Line ou Circle ou Cls? Et pour le resize la méthode du scaleTransform ("Zoom") donne pas des résultats super.

J'ai essayé de faire un composant de mon picturebox dans VB6 pour l'importer dans VB2005. Sa marche pas pire, mais on dirais que VB2005 veux pas prendre les méthodes que j'ai dicté pour mon controle (alors je peux pas faire un Pset par exemple) tandis que ce même controle sous VB6 marche bien. Comment je suis supposé le forcer à prendre mes methods? Et est-ce que sa peux causer des gros problèmes de compatibilité plus tard? Finalement, il existerais pas un objet pour faire mes graph?
0
Rejoignez-nous