IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Déssiner sur une form


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut Déssiner sur une form
    Je fais du visual basic depuis 4 - 5 semaines, et j'ai décidé de créé un démineur...

    Seulement comme vous pouvez vous en douter, j'ai un petit soucis

    Pour mon prog, j'ai besoin de "déssiner" l'aire de jeu, de 10 * 10 cases par exemple, mais je ne vois pas comment je dois faire

    Une fois qu'elle est faite, je peux utiliser les coordonées de la souris pour déterminer sur quelle case l'utilisateur a cliqué et vérifer la présence de bombe avec une matrice. Malheureusement, je suis bloqué !

    J'ai une deuxième question :
    J'ai voulu faire une horloge à aiguilles en utilisant sin et cos (je vois pas comment faire autrement). Les aiguilles tournent, mais de manières anarchiques. Je me suis dis que l'erreure pouvais provenir des valeures renvoyées par sin() et cos().

    J'ai donc fais ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Text1_Change()
       Label1.Caption = Sin(Text1.Text)
    End Sub

    Losque je donne une valeur, sin() m'en renvoie une mais qui n'est ni des degrés, ne des radians, ni des grades ... Je dois faire quoi ?

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Boinjour Morbazan,

    On dessine sur une Form exactement comme on dessine sur une PictureBox.

    Pour faire ce que tu veux faire, tu as les méthodes Line et Circle à ta disposition.... et c'est facile (il te suffit d'y aller pas à pas)... A toi de mériter ce que tu fais, donc.

    Pour ce qui est d'une rotation d'un trait (chaque aiguille de ton horloge n'est jamais qu'un trait) et l'utilisation de la trigonométrie, je veux bien que ce soit un peu plus complexe et te donner dans ce cas un petit coup de pouce.

    Voilà donc un code :

    Une Form et un Timer Timer1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Code :
     
    Option Explicit
    Private Const diametre As Integer = 100
    Private cy As Integer
    Private cx As Integer
    Private ancY As Single
    Private ancx As Single
    Private angle As Double
     
     
    Private Sub Form_Activate()
        Me.ScaleMode = vbPixels
        Me.AutoRedraw = True
        cx = Me.ScaleWidth / 2
        cy = Me.ScaleHeight / 2
        Me.Circle (cx, cy), diametre, vbWhite
        Timer1.Interval = 100
    End Sub
     
    Private Sub Timer1_Timer()
      Dim pi As Double, toto As Double
      pi = 4 * Atn(1)
      toto = (angle / 180) * pi
      Me.Line (cx, cy)-(ancx, ancY), Me.BackColor
      ancY = cy + Sin(toto - (0.5 * pi)) * diametre
      ancx = cx + Cos(toto - (0.5 * pi)) * diametre
      Me.Line (cx, cy)-(ancx, ancY)
      angle = angle + 1
    End Sub
    Pour le calcul de l'angle, je te laisse faire, quand même ... (il ne dépend que de l'heure).

    Bonne continuation...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    Ouch ... 10 minutes pour me repondre

    Bravo et merci beaucoup ucfoutu !

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut
    Citation Envoyé par Morbazan
    j'ai besoin de "déssiner" l'aire de jeu, de 10 * 10 cases par exemple, mais je ne vois pas comment je dois faire
    .....
    je peux utiliser les coordonées de la souris pour déterminer sur quelle case l'utilisateur a cliqué et vérifer la présence de bombe avec une matrice
    Citation Envoyé par ucfoutu
    Pour faire ce que tu veux faire, tu as les méthodes Line et Circle à ta disposition.... et c'est facile
    une suite de contrôle image (indexé) disposé en ligne par colonne pourait être plus pratique, l'index etant récuperable directement dans les subs, Private Sub ImageCases_Click(Index As Integer), MouseDown, MouseMove, MouseUp....
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour Francis,

    A voir... a voir ...
    Un petit tour alors vers le contrôle PictureClip et ses divisions
    Amitiés.

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par ucfoutu
    A voir... a voir ...

    Remarque amicale
    Il y a bien des fois plusieurs solutions à un même problème.
    Je suppose que ces bombes ne seront pas toujours au même endroit, en changent l'image, en mettant la propriété Tag de l'image "Bombe" ou "Rien", il lui sera pratique de gérer des réaction adéquate.
    Des contrôles images permettent de changer justement l'image contenue au lieu d'agir sur l'ensemble de l'aire du jeu.
    En ayant 2 PictureBox en réserve, un juste le décor de fond et l’autre décor de fond plus bombe, il lui serra facile de réinitialiser une nouvelle partie (en utilisant la fonction RND).
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    J'ai ouvert VB et je me suis rendu compte que je ne sais même pas utiliser picturebox pour déssiner ... pouvez vous me donner l'adresse son l'utilisation, je n'en ai pas trouvé.

    Et ucfoutu, merci pour ton code pour l'horloge, mais je me demande toujours en quelle unité sin et cos renvoie leur valeur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un bouton appartenant à une classe sur une form
    Par Julien_riquelme dans le forum Composants VCL
    Réponses: 2
    Dernier message: 05/09/2005, 13h10
  2. Dessiner un rectangle sur une forme
    Par Neo41 dans le forum MFC
    Réponses: 6
    Dernier message: 13/08/2005, 01h08
  3. Comment spécifier des raccourcis claviers sur une Form ?
    Par Sydaze dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/06/2005, 09h05
  4. Minimize Maximize perso sur une form autre que Application
    Par sdebrois dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 07/03/2005, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo