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 :

[VB6] [Interface] Horloge 7 segments


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Août 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [VB6] [Interface] Horloge 7 segments
    J'essaye depuis quelque temps de programmer une horloge en visual basic, pour cela, je souhaiterais construire une fonction chiffre qui prend en
    parametre un entier compris entre 1 et 6 et retournant la valeur du chiffre
    de l'horloge (1 pour les dizaines des heures et 6 pour le chiffre des unités
    des secondes), (par exemple si l'heure du systeme est 23:45:13, la fonction
    chiffre (4) renvoie 5 et il est bien tard pour travailler).
    Puis a partir de cette fonction et de la procedure d'affichage "7 segments" et un contrôle timer je voudrais representer une horloge à affichage numerique : :

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Il existe des espèces d'afficheur représenté sous forme d'un rectangle contenant une multitude de petits points d'une certaine couleur qu'on doit trouver sur internet sous forme d'ocx.

  3. #3
    Candidat au Club
    Inscrit en
    Août 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je te remercie pour ta reponse mais helas d'après les instructions de mon devoir, je dois construire moi meme l'afficheur 7 segments.

  4. #4
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    si tu sais comment fonctionne un afficheur 7 segments, tu as ta fonction toute tracée !!

    Je pense qu'une classe serait plus pratique qu'une simple fonction, elle te permettrait d'encapsuler l'affichage de ton chiffre, tu n'aurais qu'à renseigner l'heure.

    Fais une classe qui simule exactement le fonctionnement d'un afficheur, je pense que c'est le plus simple mais surtout le plus logique.

    Quand tu passes 1 à une fonctioon de ta classe, elle renvoit 1&2 (les cotés droit correpondant au chiffre 1), ce qui affiche ton chiffre.

    Ta fonction de conversion se résume à un simple Select Case ou tu mets la correspondance entre un chiffre et les segments à afficher. Ensuite, à toi de savoir comment tu veux afficher cela, texte, images, dessin, ....



  5. #5
    Candidat au Club
    Inscrit en
    Août 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je te remercie pour ta reponse, mais il faut absolument que je passe par une fonction car c'est ce qui est demandé dans mon devoir.
    Sinon j'ai compris que pour capturer dans un label horaire, le chiffre des unités de l'horloge, il me fallait faire:

    horloge$ = Format(Time, "hhmmss")
    horaire.Caption = Mid$(horloge$, 1, 1)

    Mais je n'arrive pas a construire la fonction , j'ai bien essayé :
    for i=1 to 6
    horloge$ = Format(Time, "hhmmss")
    horaire.Caption = Mid$(horloge$, i, 1)
    next i

    mais ça ne marche pas !

  6. #6
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    Attends, qu'est-ce que tu essais de faire avec un label ??? Si tu veux simplement afficher l'heure dans ton label tu fais lbLabel.Caption = Time, maintenant si tu veux une fonction de conversion de chiffre en barres d'afficheur, c'est pas vraiment pareil !!!

    Qu'est-ce que tu veux obtenir exactement ?? Un afficheur 7 segments sur une form ??? Il te faudrait convertir les chiffres en autant de segments qui correspondent, et ensuite les afficher.

  7. #7
    Candidat au Club
    Inscrit en
    Août 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Pour l'afficheur sept segments, j'ai fait le programme suivant :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Public Sub setcol(valeur)
    If valeur = 0 Then
    Form1.ForeColor = vbBlack
    Else
    Form1.ForeColor = vbRed
    End If
    End Sub
     
    Public Sub chiffreLCD(valeur, longueur, hauteur, largeur, x As Integer, y As Integer)
    Select Case valeur
    Case 1: val1 = 0 + 2 + 0 + 8 + 0
    Case 2: val1 = 0 + 2 + 4 + 0 + 16 + 32 + 64
    Case 3: val1 = 0 + 2 + 0 + 8 + 16 + 32 + 64
    Case 4: val1 = 1 + 2 + 0 + 8 + 0 + 32 + 0
    Case 5: val1 = 1 + 0 + 0 + 8 + 16 + 32 + 64
    Case 6: val1 = 1 + 0 + 4 + 8 + 16 + 32 + 64
    Case 7: val1 = 0 + 2 + 0 + 8 + 16 + 0 + 0
    Case 8: val1 = 1 + 2 + 4 + 8 + 16 + 32 + 64
    Case 9: val1 = 1 + 2 + 0 + 8 + 16 + 32 + 64
    Case 0: val1 = 1 + 2 + 4 + 8 + 16 + 0 + 64
    Case Else: val1 = 0
    End Select
    setcol val1 And 16
    segmentH x, y - hauteur - largeur, longueur, largeur
    setcol val1 And 32
    segmentH x, y, longueur, largeur
    setcol val1 And 64
    segmentH x, y + hauteur + largeur, longueur, largeur
    setcol val1 And 1
    segmentV x - (longueur + largeur) / 2, y - (hauteur + largeur) / 2, hauteur, largeur
    setcol val1 And 4
    segmentV x - (longueur + largeur) / 2, y + (hauteur + largeur) / 2, hauteur, largeur
    setcol val1 And 2
    segmentV x + (longueur + largeur) / 2, y - (hauteur + largeur) / 2, hauteur, largeur
    setcol val1 And 8
    segmentV x + (longueur + largeur) / 2, y + (hauteur + largeur) / 2, hauteur, largeur
    End Sub
     
    Public Sub segmentV(x, y, hauteur, largeur)
    For j = -largeur / 2 To largeur / 2
    Line (x + j, y - hauteur / 2 + Abs(j))-Step(0, hauteur - 2 * Abs(j))
    Next
    End Sub
     
    Public Sub segmentH(x, y, longueur, largeur)
    For i = -largeur / 2 To largeur / 2
    Line (x - longueur / 2 + Abs(i), y + i)-Step(longueur - 2 * Abs(i), 0)
    Next
    End Sub
    Maintenant il me faut la fonction chiffre qui me permettra de l'afficher sur le form ou dans un label, peut importe

  8. #8
    Rédacteur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 608
    Points : 1 561
    Points
    1 561
    Par défaut
    Je verrais un truc comme ça : tu fais un groupe de 10 images représentant les chiffres de 0 à 9, indexées de 0 à 9.
    Ton horloge est 6 images indexées de 1 à 6.

    Dans le timer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim horloge as String
    Dim i as Integer,index as Integer
     
    horloge = Format(Time, "hhmmss") 
    for i=1 to 6
      'convertit la lettre en chiffre
      index = int(Mid(horloge, i, 1))
      'charge l'image qu'il faut
      champImage(i).picture = chiffres(index).picture
    next i

  9. #9
    Candidat au Club
    Inscrit en
    Août 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Salut !

    Je vous remercie tous de votre aide

    @+

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Sympa l'exercice !

    moi j'aurais, pour chaque chiffre à apparaitre collé sept shapes ligne sur mon form (segment( indice 1 à 7) un pour chaque segment, puis pour chaque caractère chiffre de zéro à neuf, j'associerai un array à sept éléments chaque élément correspondant à l'état visible ou non du segment

    par exemple
    0 => TabVis = (0,0,0,1,0,0,0)
    1 => TabVis = (0,0,1,0,0,0,1)
    ...
    etc en ayant pris soin de numéroter les segments dans leur indice de haut en bas et de droite à gauche...

    ensuite il suffit pour chaque ensemble de sept segments , de faire une boucle :
    for i = 1 to 7
    segment(i).visible = iif(TabVis(i) = 0,false,true)
    next
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ouais ben moi je ferai carément un activeX.
    Ce serait plus cool!

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    C'est sur que c'est simple mais c'est pas un peu gourmand en mémoire le coup des images et puis le temps de chargement me semble rallonger le process ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  2. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09
  3. [VB6] [Interface] Redimensionnement automatique
    Par ychalan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2002, 18h32
  4. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  5. [VB6] [Interface] Icones de boutons de barre d'outils
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 13/09/2002, 15h50

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