Passage paramètre de scrolling

Résolu
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
-
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
-
Je désire passer en paramètre une donnée provenant d'un changement de valeur d'un scroll.

La partie récuperation de la variable fonctionne
Private
Sub HScrollBar1_ValueChanged(
ByVal sender
As
Object,
ByVal e
As
System.EventArgs)
Handles HScrollBar1.ValueChanged
   traitement(HScrollBar1.Value.ToString(), e)
   Label1.Text = HScrollBar1.Value.ToString()

End
Sub
mais lors du passage des parametres pour traitement j'ai un souci avec e car ma fonction de traitement fait du dessin et n'accepte pas le e de mon event
Private

Function RafraichitHorizonArtificiel(
ByVal angle
As
Single,
ByVal e
As
System.Windows.Forms.PaintEventArgs)

   'code
end function
Quelqu'un aurait-il une idée ?
Merci

8 réponses

Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour

Dans l'event de changement : hScrollBar1_ValueChanged


Tu appel : Dessine(HScrollBar1.Value)

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour

Si tu mettais ta procédure Traitement, ce cerait mieux pour t'aider.

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
En fait la fonction traitment c'est la fonction  : RafraichitHorizonArtificiel(ByVal angle AsSingle,
ByVal e
As
System.Windows.Forms.PaintEventArgs)

Qui recoit en parametre la valeur du Hscroll  : "angle" mais je n'arrive pas à convertir :
en
ByVal e As System.Windows.Forms.PaintEventArgs

En VB6 c'est beaucoup plus simple ...
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour

Si tu utilise l'objet graphics, prend me.CreateGraphice si ton param vaut nothing, sinon, tu utilise l'object passé en param.

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
Voila mon code d'essai Form1 + Hscrollbar1+label1
un mouvement de hscrollbar doit me dessiner un camembert  sur form1 (en théorie) car je n'arrive pas à utiliser les handles pour dessiner le camembert


Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load



AddHandler
HScrollBar1.ValueChanged,

AddressOf



Me
.hScrollBar1_ValueChanged




End



Sub








Private



Sub
hScrollBar1_ValueChanged(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)Label1.Text = HScrollBar1.Value.ToString()

dessine(HScrollBar1.Value)


End



Sub






Public



Function
dessine(

ByVal
valeur

As



Single
)


Dim
e

As
System.Windows.Forms.PaintEventArgs


Dim
rect

As



New
Rectangle(0, 0, 200, 200)e.Graphics.FillPie(Brushes.Cyan, rect, 0, valeur)


End



Function























 
Messages postés
14852
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 janvier 2022
160
Bonjour

Bon voici la modification Que je te conseille :

Public
Function dessine(
ByVal valeur
As
Single,  Optional ByVal e
As System.Windows.Forms.PaintEventArgs=nothing)


Dim rect
As
New Rectangle(0, 0, 200, 200)Dim lGraphic as Graphics=nothing

if e is nothing then

    lGraphic=me.CreateGraphic

else

    lGraphic=e.Graphics

End If

lGraphic.FillPie(Brushes.Cyan, rect, 0, valeur)

if e is nothing then

    lGraphic.dispose

end if

End
Function


Pour l'appeler :

Depuis repaint : Dessine(HScrollBar1.Value,e)


Depuis l'event du scroll : Dessine(HScrollBar1.Value)

Il est plus facile de batiser quelqu'un que de la convertir. (surtout en programmation)
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)

<fon></fon>
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
il m'indique  "Erreur 1 'CreateGraphic' n'est pas un membre de 'mscomm.Form1'. C:\mscomm\affichage\Form1.vb 20 24 mscomm
Messages postés
223
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
3 juin 2019
1
ok ça marche , mais comment je fais pour rafraichir la fenetre à chaque modif du curseur ?