[déplacer VB.NET -> VBA] action touche et mesure de temps

Résolu
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011 - 20 janv. 2011 à 20:49
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 3 mars 2011 à 15:21
Salut tous le monde j'aurai besion de votre aide.
J'aimerai faire venir une image et lorsque j'appui sur une touche definie l'image parte et que VBA calcul le temps entre les 2 actions...

je sais c'est beaucoup
j'aimerai votre aide mais deja une id'ee : possible ou pas ?

merci d'avance kayis

70 réponses

kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
24 janv. 2011 à 20:51
Et je connais pas trop vb.net mais a mon avis sa risque d'etre pas simble de faire sa?
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
24 janv. 2011 à 21:01
Apparement tu est deja entrain de voire pour les figures

si tu trouve que sa n'unflue pas sur le temps de reaction et que tu ne trouves pas sa tres long a programmer je suis pas contre ;)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
25 janv. 2011 à 21:15
Salut
non ce n'est pas trop compliqué enfin
changes les règles du jeu
appuyer sur b ou v à force .....
Imports System.Drawing.Drawing2D
Public Class Form1
    Private centerpoint As System.Drawing.PointF
    Dim angle As Double

    Private radius As Double
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
        centerpoint.X = Me.Width / 2
        centerpoint.Y = Me.Height / 2
        radius = Me.Height / 8
        angle = 0
        Timer1.Enabled = True
        Timer1.Interval = 350
        Randomize()

    End Sub
    Private Sub drawforms(ByVal sides As Integer, ByRef gr As System.Drawing.Graphics)
        Dim points() As System.Drawing.PointF
        Dim anglediff As Double
        Dim thisangle As Double
        Dim iter As Integer
        Dim mypen As System.Drawing.Pen

        ReDim points(sides)
        anglediff = 360 / sides
        thisangle = angle
        mypen = New Pen(RandomRGBColor(), 3)
        Dim mybrush As SolidBrush = New SolidBrush(RandomRGBColor())
        For iter = 0 To points.Length - 1
            points(iter).X = radius * Math.Cos(DegreeToRad(thisangle)) + centerpoint.X
            points(iter).Y = radius * Math.Sin(DegreeToRad(thisangle)) + centerpoint.Y
            thisangle = thisangle + anglediff
        Next
        gr.DrawPolygon(mypen, points)
        gr.FillPolygon(mybrush, points)
    End Sub
    Private Function RandomRGBColor() As Color
        Dim m_Rnd As New Random
        Return Color.FromArgb(255, m_Rnd.Next(0, 255), m_Rnd.Next(0, 255), m_Rnd.Next(0, 255))
    End Function


    Private Sub drawforms3d(ByVal sides As Integer, ByRef gr As System.Drawing.Graphics)
        Dim points() As System.Drawing.PointF
        Dim anglediff As Double
        Dim thisangle As Double
        Dim iter As Integer
        Dim mypen As System.Drawing.Pen
        Dim edge_colors() As Color
        Dim mycolor As System.Drawing.Color
        mycolor = New Color
        ReDim points(sides)
        ReDim edge_colors(sides - 1)
        anglediff = 360 / sides
        thisangle = angle
        mypen = New Pen(Color.Black, 3)
        For iter = 0 To points.Length - 1
            points(iter).X = radius * Math.Cos(DegreeToRad(thisangle)) + centerpoint.X
            points(iter).Y = radius * Math.Sin(DegreeToRad(thisangle)) + centerpoint.Y
            thisangle = thisangle + anglediff
        Next
        gr.DrawPolygon(mypen, points)
        Dim path_brush As New PathGradientBrush(points)
        path_brush = New PathGradientBrush(points)
        path_brush.CenterColor = RandomRGBColor()
        gr.FillPolygon(path_brush, points)
    End Sub
    Private Function DegreeToRad(ByVal deg As Integer) As Double
        'traduit les degrée en radian
        Dim rad As Double

        rad = deg * Math.PI / 180
        DegreeToRad = rad
    End Function

    

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Invalidate()

    End Sub

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Dim iter As Byte
        iter = Rnd() * 10 + 3
        If Timer1.Enabled Then
            centerpoint.X = Me.Width / 2
            centerpoint.Y = Me.Height / 2
            drawforms3d(iter, e.Graphics)
            centerpoint.X = Me.Width / 2 + radius * 2.1
            centerpoint.Y = Me.Height / 2
            drawforms(iter, e.Graphics)
        End If
    End Sub
End Class

0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
25 janv. 2011 à 21:20
disosn que pour le sondage ben j'aimerai savoir pour la vitesse des deux mains... :S
donc si je change sa :S
0

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

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
25 janv. 2011 à 22:01
on peut faire moins rapide
Timer1.Interval = 2000
que veux tu faire ?
c'est peut etre mieux les images
appuyer sur b ou v c'est trop simple
modifies les règles du jeu
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
25 janv. 2011 à 22:03
jee cherche pas a faire compliqué
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
25 janv. 2011 à 22:41
bien
alors il faut afficher seulement couleur
bleu ou vert quel est le piege ?
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
25 janv. 2011 à 22:43
se troupper de touche lors des couleur et mettre des couleurs piege
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
25 janv. 2011 à 22:52
c'est quoi les couleurs piege ?
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
26 janv. 2011 à 07:05
exusse du retard :S

ben mettre des image de d'autres couleurs pour que les personne hesittent...
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
26 janv. 2011 à 20:25
voila ce que je propose
on présente au candidat la forme géomtrique
pendant 1 second pendant ce temps il faut
qu'il appuie sur b ou v
s'il a réussi on passe à l'image suivante avant
que la seconde soit écoulé
s'il n'a pas réussi de toute façon on passe
à l'image d'après
en tout il faut réussir avec 10 image
pour l'instant
Imports System.Drawing.Drawing2D
Public Class Form1
    Private centerpoint As System.Drawing.PointF
    Dim angle As Double
    Dim dt1 As DateTime
    Dim dt2 As DateTime
    Dim ts As TimeSpan
    Dim paletteblue() As System.Drawing.Color
    Dim palettegreen() As System.Drawing.Color
    Dim choosencolor As String
    Private radius As Double

    Private Sub InitPaletteBlue()
        ReDim Preserve paletteblue(10)
        paletteblue(0) = Color.LightBlue
        paletteblue(1) = Color.LightSteelBlue
        paletteblue(2) = Color.DeepSkyBlue
        paletteblue(3) = Color.DodgerBlue
        paletteblue(4) = Color.RoyalBlue
        paletteblue(5) = Color.Navy
        paletteblue(6) = Color.DarkBlue
        paletteblue(7) = Color.Blue
        paletteblue(8) = Color.SkyBlue
        paletteblue(9) = Color.CornflowerBlue
    End Sub
    Private Sub InitPaletteGreen()
        ReDim Preserve palettegreen(10)
        palettegreen(0) = Color.OliveDrab
        palettegreen(1) = Color.YellowGreen
        palettegreen(2) = Color.Chartreuse
        palettegreen(3) = Color.LightGreen
        palettegreen(4) = Color.ForestGreen
        palettegreen(5) = Color.PaleGreen
        palettegreen(6) = Color.DarkGreen
        palettegreen(7) = Color.Green
        palettegreen(8) = Color.Lime
        palettegreen(9) = Color.SpringGreen
    End Sub

    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        dt2 = DateTime.Now
        ts = dt2.Subtract(dt1)

        dt1 = DateTime.Now

    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
        centerpoint.X = Me.Width / 2
        centerpoint.Y = Me.Height / 2
        radius = Me.Height / 8
        angle = 90
        Timer1.Enabled = True
        Timer1.Interval = 1550
        Randomize()
        Me.KeyPreview = True
        InitPaletteBlue()
        InitPaletteGreen()
    End Sub
    
    

    Private Sub drawforms3d(ByVal sides As Integer, ByRef gr As System.Drawing.Graphics)
        Dim points() As System.Drawing.PointF
        Dim mrend As New Random
        Dim anglediff As Double
        Dim colornum As Integer
        Dim thisangle As Double
        Dim iter As Integer
        Dim coloriter As Integer
        Dim mypen As System.Drawing.Pen
        Dim edge_colors() As Color
        Dim mybrush As SolidBrush
        colornum = mrend.Next(0, 9)
        If choosencolor = "green" Then
            mybrush = New SolidBrush(paletteblue(colornum))
        Else
            mybrush = New SolidBrush(palettegreen(colornum))
        End If

        ReDim points(sides)
        ReDim edge_colors(sides)
        anglediff = 360 / sides
        thisangle = angle
        mypen = New Pen(Color.Black, 3)
        For iter = 0 To points.Length - 1
            points(iter).X = radius * Math.Cos(DegreeToRad(thisangle)) + centerpoint.X
            points(iter).Y = radius * Math.Sin(DegreeToRad(thisangle)) + centerpoint.Y
            thisangle = thisangle + anglediff
        Next
        gr.DrawPolygon(mypen, points)
        Dim path_brush As New PathGradientBrush(points)
        path_brush.CenterColor = Color.Black
        For coloriter = 0 To edge_colors.Length - 1
            If coloriter Mod 2 = 0 Then
                If choosencolor = "green" Then
                    edge_colors(coloriter) = paletteblue(colornum)
                Else
                    edge_colors(coloriter) = palettegreen(colornum)
                End If
            Else
                edge_colors(coloriter) = Color.Black
            End If
        Next
        path_brush.SurroundColors = edge_colors
        gr.FillPolygon(path_brush, points)
    End Sub
    Private Function DegreeToRad(ByVal deg As Integer) As Double
        'traduit les degrée en radian
        Dim rad As Double

        rad = deg * Math.PI / 180
        DegreeToRad = rad
    End Function

    

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        frame.Invalidate()

    End Sub

    
    Private Sub DrawBoard(ByRef gr As System.Drawing.Graphics)
        ' dessine la table du jeu en 3 dimension 
        Dim face(3) As Point
        Dim margin As Integer
        Dim edge_colors(3) As Color
        Dim mrend As New Random
        Dim colornum As Integer
        margin = 8
        colornum = mrend.Next(0, 9)
        If mrend.Next(0, 3700) Mod 5 = 0 Then
            choosencolor = "blue"
        Else
            choosencolor = "green"
        End If
        face(0).X = 0
        face(0).Y = 2 * margin
        face(1).X = face(0).X + margin
        face(1).Y = face(0).Y - margin
        face(2).X = face(1).X + 2.5 * radius
        face(2).Y = face(1).Y
        face(3).X = face(0).X + 2.5 * radius
        face(3).Y = face(0).Y

        Dim path_brush As New PathGradientBrush(face)
        path_brush.CenterColor = Color.Black
        If choosencolor = "green" Then
            edge_colors(0) = palettegreen(colornum)
        Else
            edge_colors(0) = paletteblue(colornum)
        End If
        edge_colors(1) = Color.Black
        If choosencolor = "green" Then
            edge_colors(2) = palettegreen(colornum)
        Else
            edge_colors(2) = paletteblue(colornum)
        End If
        edge_colors(3) = Color.Black
        path_brush.SurroundColors = edge_colors
        gr.FillPolygon(path_brush, face)

        face(0).X = 0
        face(0).Y = 2 * margin
        face(1).X = face(0).X + 2.5 * radius
        face(1).Y = face(0).Y
        face(2).X = face(1).X
        face(2).Y = face(1).Y + 2.5 * radius
        face(3).X = face(0).X
        face(3).Y = face(2).Y

        path_brush.Dispose()
        path_brush = New PathGradientBrush(face)
        If choosencolor = "green" Then
            path_brush.CenterColor = palettegreen(colornum)
        Else
            path_brush.CenterColor = paletteblue(colornum)
        End If

        If choosencolor = "green" Then
            edge_colors(0) = palettegreen(colornum)
        Else
            edge_colors(0) = paletteblue(colornum)
        End If
        edge_colors(1) = Color.Black
        If choosencolor = "green" Then
            edge_colors(2) = palettegreen(colornum)
        Else
            edge_colors(2) = paletteblue(colornum)
        End If
        edge_colors(3) = Color.Black
        path_brush.SurroundColors = edge_colors
        gr.FillPolygon(path_brush, face)
        face(0).X = 2.5 * radius
        face(0).Y = 2 * margin
        face(1).X = face(0).X + margin
        face(1).Y = face(0).Y - margin
        face(2).X = face(1).X
        face(2).Y = face(1).Y + 2.5 * radius
        face(3).X = face(0).X
        face(3).Y = face(2).Y + margin
        path_brush = New PathGradientBrush(face)
        If choosencolor = "green" Then
            path_brush.CenterColor = palettegreen(colornum)
        Else
            path_brush.CenterColor = paletteblue(colornum)
        End If
        If choosencolor = "green" Then
            edge_colors(0) = palettegreen(colornum)
        Else
            edge_colors(0) = paletteblue(colornum)
        End If
        edge_colors(1) = Color.Black
        If choosencolor = "green" Then
            edge_colors(2) = palettegreen(colornum)
        Else
            edge_colors(2) = paletteblue(colornum)
        End If
        edge_colors(3) = Color.Black
        path_brush.SurroundColors = edge_colors
        gr.FillPolygon(path_brush, face)
        frame.Width = face(0).X + margin
        frame.Height = face(3).Y
        
       
    End Sub
    
    Private Sub frame_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles frame.Paint
        Dim m_Rnd As New Random
        If Timer1.Enabled Then
            DrawBoard(e.Graphics)
            centerpoint.X = Me.frame.Width / 2
            centerpoint.Y = Me.frame.Height / 2
            drawforms3d(m_Rnd.Next(3, 10), e.Graphics)
            frame.Left = m_Rnd.Next(40, Me.Width - frame.Width * 1.1)
            Me.frame.Top = m_Rnd.Next(40, Me.Height - frame.Height * 1.1)
        End If


    End Sub
End Class
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
26 janv. 2011 à 22:02
super bonne idée! trop Fort!

j'aime !
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
28 janv. 2011 à 19:16
Au faite... Jvoulais te remercié pour ton aide et je suis desollé du retard :(

jvoulais aussi de dire que tu est un chic type de m'avoir aidé tres volontairement!

merci bcp

amicalement kayis
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
29 janv. 2011 à 14:29
SAlut dit il y a un truc que je ne comprends pas c'est le handles de :


Private Sub frame_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles.frame.Paint
Dim m_Rnd As New Random
If Timer1.Enabled Then
DrawBoard(e.Graphics)
centerpoint.X = Me.frame.Width / 2
centerpoint.Y = Me.frame.Height / 2
drawforms3d(m_Rnd.Next(3, 10), e.Graphics)
frame.Left = m_Rnd.Next(40, Me.Width - frame.Width * 1.1)
Me.frame.Top = m_Rnd.Next(40, Me.Height - frame.Height * 1.1)
End If

VB.net dit qu'ils ya un problemen mais je ne sais pas lequel :S
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
29 janv. 2011 à 20:06
je n'ai encore fini
je vais t'envoyer encore un code améliorée
mais ce n'est pas si simple la thérorie d'un coté
la pratique de l'autre
maintenant voila les règles du jeu
il y a 3 sortes d'images
1 formes géometriques couleur bleue(différentes teintes de bleue) sur fond vert(différentes teintes de vert)

2 formes géometriques couleur verte(différentes teintes de verte) sur fond bleu(différentes teintes de bleu)

3 formes géometriques ni bleu ni vert

l'image est exposée pendant 2 seconds
si c'est une image verte et j'ai appuyé la touche
v ou V on cacule le temps entre l'apparition
de l'image et le key press le résultat gardé dans
un tableau
si je me suis trompé et qu'il me reste du temps(j'ai 2 secondes) je corrige mais c'est compté comme une faute
il faut arriver à 10 images avec minimum de fautes
il se peut aussi un résultat comme çà
12 images ont été exposé (2 images je n'ai pas eu
le temps de corriger) et j'ai 4 fautes
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
29 janv. 2011 à 20:27
totalement pour avec les regles
sauf que tu crois pas qu'une semaine serai plus aproprié (je trouve que 2 seconde sa fait un peu long non? :S)
sionon c'est super =)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
29 janv. 2011 à 20:37
sauf que tu crois pas qu'une semaine serai plus aproprié (je trouve que 2 seconde sa fait un peu long non? :S)
sionon c'est super =)


ah une semaine c'est plus court LOL
1 secondes et demi ça va
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
29 janv. 2011 à 20:44
lol excuse lapsus ;) oui voila =)
0
kayis06s Messages postés 52 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 3 mars 2011
30 janv. 2011 à 17:28
Salut si je peux aider a une chose ou une autre ... Je suis la ;)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
31 janv. 2011 à 10:06
merci
0
Rejoignez-nous